Rhythmbox HTTP-Fernsteuerung

Heute habe ich mich mal etwas umgeschaut, in wie fern es möglich ist, Rhythmbox fernzusteuern. Leider habe ich nur Möglichkeiten via Bluetooth gefunden. Da ich aber weder Bluetooth am Computer, noch ein Gerät zum steuern habe, habe ich mich mal hingesetzt und eine HTTP-Fernsteuerung geschrieben.

Das ganze funktioniert folgendermaßen: Via PHP Script wird ein Bash-Script aufgerufen, dass per Shell das Kommando rhythmbox-client aufruft. Jeweils mit einem Parameter, z. B. next (für den nächsten Song), previous (für den vorherigen Song) usw. Dieser Umweg ist nötig, da zuerst die DBUS-Session bzw. die Prozess ID gesucht werden muss.

Rhythmbox per iPod touch und Safari steuernHier mal ein kleiner Screenshot, wie das ganze auf meinen iPod aussieht. Und ich muss sagen, es ist doch recht komfortabel. Einfacher kann man Rythmbox nicht per Remote bedienen. ;)

So kann man mal eben schnell ein Lied am Rythmbox-Player am PC überspringen, wenn man mal wieder zu faul ist, vom Sofa aufzustehen. Einfach den iPod raus, Safarai an, und los.

Das einzige Problem besteht natürlich darin, dass mit diesem Webinterface der Rythmbox Player, der Apache2 Webserver sowie der PHP Interpreter auf einem System installiert sein müssen.

Somit läuft ein unnötiger Dienst, den man normal im Desktop-Betrieb eigentlich in der Regel nicht brauchen würde (zumindest kein normaler User, lediglich Webdesigner und -entwickler). Wer das verkraften kann, und wem keine Bluetooth Möglichkeiten zur Verfügung stehen, ist mit diesem Script ganz gut bedient.

Das Paket einfach herunterladen und in den Webroot entpacken. Danach mit einem Editor das Bashscript rythmcontrol.sh anpassen und dort die 2 Variablen $USER und $PASSWORD ändern. Der User und das Passwort ist das, des Users unter dem der Rythmbox Mediaplayer läuft. Anschließend das Script ausführbar machen und testen, voila! :)

Update, Mai 2009: Ich habe das Script noch auf meinem PC gefunden und aktualisiert. Hier ein komplettes Paket, mit dem fertigen Webinterface. Viel Spaß!

Kommentare (7)

Simon02.05.2009 um 13:44 Uhr

Artikel wurde soeben auf den aktuellen Stand gebracht. Downloadlink ist wieder verfügbar. :)

laDanz14.03.2010 um 12:39 Uhr

Gute Arbeit!
Das war genau das, was ich gesucht habe! (Ohne zu wissen, dass ich es suche ^^)

Grüße!

Lukas18.03.2010 um 10:35 Uhr

Hey,
Super Ding! Wollte bei uns in der Wohnung nen Musikserver aufbauen, mit dem alle Mitbewohner über Browser vom Notebook halt weiterschalten können. Dafür ist das Ding einfach nur super!!!
Überleg nur grad, ob es auch irgendwie möglich ist, da noch evtl nen Screen aufzubauen, der die Playlist anzeigt und ggf auch erweitern kann.
Leider hab ich von Shell-Commandos keine Ahnung. Wie kann man die richtigen Kommandos rausfinden?
Notwendig wären ‘Datei zu Playlist hinzufügen’ und halt alle Playlist-Funktionen…

Würd mich über ne Antwort freuen!
Cheers, Lukas

Simon19.03.2010 um 09:14 Uhr

Freut mich das das Teil doch noch so gut ankommt. :)

Das ganze läuft über den rhythmbox-client ab. Was dieser alles tolles kann, kann man sich mittels

rhythmbox-client –help

anzeigen lassen.

Das mit dem hinzufügen von Tracks ist durchaus möglich, der folgende Befehl spielt die MP3 “meinlied.mp3″ _sofort_ ab.

rhythmbox-client –play-uri=/home/user/meinlied.mp3

Alternativ funktioniert auch –enqueue, welches das Lied in vorerst nur in die Warteschlange schiebt.

Die Darstellung selbst müsste man dann noch in PHP oder ähnlichem realisieren. Der Client selbst bietet hier keine Möglichkeit.

Da RB die Playlist und die Musik DB als einfaches XML-File speichert ist es auch kein Problem diese auszulesen. Bei mir werden die Files (hier ein ArchLinux) unter

~/.local/share/rhythmbox

gespeichert. Hatte da auch vor längerem mal ein Script gebastelt, was die RB DB in ein lesbares HTML-Format umwandelt.

http://blog.simlau.net/sonstiges/php/rhythmbox-playlist-export.zip

Vielleicht ist das ja irgendwie hilfreich. Wenn Interesse besteht kann ich mich auch dem Teil auch wieder annehmen und mal was zusammenbasteln. ;)

Gruß, Simon

gerhard30.05.2010 um 20:59 Uhr

Hallo Simon,

Ich hab da ein kleines Problem mit dem Script. Ich hab alles nach Anleitung installiert, aber irgendwie fehlt der letzte Schritt. Mein System ist Ubuntu 10.04, apache2, php5.
Ich bekomme die index.php auch angezeigt im browser.
rbcontrol habe ich ebenfalls abgeändert, wenn rbcontrol im terminal ausführe bekomme ich auch die DBUS adresse angezeigt. Ebenfalls wird die current_song.txt korrekt erzeugt. rhythmbox-control funktioniert auch ohne probleme.
Nur die Bedienung über http will nicht laufen. Wenn ich index.php zum ersten mal öffne ist bei “current name” none eingetragen, man kann dan auf next drücken und die Seite wird neu aufgebaut, bei “current name” ist kein eintrag mehr zu sehen. Die Datei current_song.txt ist ebenfalls unverändert, auch wenn ein anderer song gespielt wird.

Eventuell hast du eine Lösung

Simon31.05.2010 um 02:05 Uhr

Hi Gerhard,

klingt für mich so als wäre das ein Rechteproblem, also bei der Kommunikation zwischen dem Apache2 und dem User, unter dem Rhythmbox läuft (www-data desktop-user).

Bitte führ mal folgende Befehle aus und poste die Ausgabe (Bitte vorher in der Zeile “#echo $DBUS_ADDRESS” in der Datei rbcontrol.sh das Kommentar entfernen)

# sudo su www-data
# sh /pfad/zu/rbcontrol.sh

Hier noch eine Version in der ich gerade mal den Passwortkram aus dem Script geworfen habe, vielleicht klappt es so (durchaus denkbar das sich in Ubuntu 10.04 etwas an den Paketen geändert hat).

Das ganze ist nun sauber mittels /etc/sudoers gelöst, so wie es sein sollte. Allerdings habe ich das noch nicht getestet, da ich gerade keine Linux VM mit Xorg und Rhythmbox da habe.

http://linux-dev.de/rhythmcontrol-beta.zip

Das werde ich später bei Gelegenheit noch machen…

Gruß, Simon

gerhard01.06.2010 um 00:35 Uhr

Hallo Simon,

Ich hab das neue Script ausprobiert. Ich glaube die fehlende Berechtigung /proc/$PID/eviron auszulesen lässt das ganze scheitern. Habe den Code auf http://forum.ubuntuusers.de/topic/rhythmbox-fernsteuerung/#post-2512317 gepostet.

Einen Kommentar hinterlassen

Dein Kommentar