VLC (in diesem Beispiel 2.2.1) verfügt über eine HTTP-Schnittstelle, über die Sie den aktuell abgespielten Titel abfragen können. Sie können es über die Befehlszeile aktivieren :
vlc --extraintf=http --http-host 0.0.0.0:8080 --http-password 'watpasswd'
oder über die GUI (diese Einstellungen bleiben durch Neustarts erhalten):
- Extras> Voreinstellungen, Einstellungen anzeigen: Alle
- Schnittstelle> Hauptschnittstellen, überprüfen Sie "Web"
- Schnittstelle> Hauptschnittstellen> Lua> Lua HTTP> Passwort
Sie können http://localhost:8080/requests/status.xml
in einem Browser besuchen, das Kennwort eingeben und sollten ein XML mit einem Abschnitt wie dem folgenden erhalten:
<category name="meta"> <info name="title">Jazz</info> <info name="filename">http://example.com/station</info> <info name="genre">smooth</info> <info name="now_playing">Jimmy Sommers - Fly Me To The Moon</info> </category>
Jetzt müssen Sie nur noch einen Cron-Job einrichten, um den Titel regelmäßig zu speichern.
#!/bin/bash vlc_status="$(curl --connect-timeout 15 --silent -u :watpasswd http://localhost:8080/requests/status.xml)" # Parse out now-playing track, escape named entities e.g. '&' track=$(echo "$" | xmlstarlet sel -t -v ".//info[@name='now_playing']" | xmlstarlet unesc) # Append new track to log file echo "$track" >> vlc_log.txt # Remove duplicates of new track if any # http://stackoverflow.com/a/1444448/ gawk -i inplace '!x[$0]++' vlc_log.txt