Ubuntu – How to use rhythmbox-client on LAN

networkingrhythmbox

A few days ago I had asked this question, and according to one suggestion, used rhythmote. It is a web-interface to change songs on a rhythmbox playing on some PC. However, its not what I had thought of, and I stumbled upon documentation for rhythmbox-client. I tried a few ways of using it, but was unsuccessful. Let me show you a few ways of how I did it. The rhythmbox is running at address 192.168.1.4, lets call it jukebox.

Passing the address as a parameter

Hoping that I would be able to see and browse through songs on the jukebox

rhythmbox-client 192.168.1.4

But, I get this message

(rhythmbox-client:8370):
Rhythmbox-WARNING **: Did not receive
a reply. Possible causes include: the
remote application did not send a
reply, the message bus security policy
blocked the reply, the reply timeout
expired, or the network connection was
broken.

(rhythmbox-client:8370):
Rhythmbox-WARNING **: Did not receive
a reply. Possible causes include: the
remote application did not send a
reply, the message bus security policy
blocked the reply, the reply timeout
expired, or the network connection was
broken.

SSH

ssh -l jukebox 192.168.1.4

rhythmbox-client --print-playing

Which spat this at me:

(rhythmbox-client:9389): Rhythmbox-WARNING **: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.

rhythmbox-client as root

gksudo rhythmbox-client 192.168.1.4

A rhythmbox client comes up, but with no music shown in the library. I am guessing this is running on my own computer.

Can anyon tell me how rhythmbox-client is to be run, and is it even correct of me to think that I can get a rhythmbox window showing the songs on the jukebox?

PS: There were a few other solutions mentioned, but I want to evaluate each and every one of them.

Thanks.

Best Answer

As far as I know, you need to grep the actual dbus-session of the machine that runs rythmbox. This is kind of tricky. I have installed a script at my server, which is run after boot automatically, and which saves the current dbus-address to a file in my homedir.

If I ssh to the machine later, I can just grep the session-adress from there.

I: Script to store dbus adress: name it "Get.Dbus.sh" and save it somewhere to your disk. Give it the following content:

set | grep DBUS_SESSION_BUS_ADDRESS > ~/.DBUS_temp

make it executable and add it to your start-items

II: Script to grep the current session: name it "Run.DBus.sh" and save it in e.g. /usr/local/bin/

Give it the following content:

source /home/YOUR_USERNAME/.DBUS_temp
export DBUS_SESSION_BUS_ADDRESS
$*

don't forget to make it executable

III: ssh to your machine and start the rhythmbox-client as follows:

Run.DBus.sh rhythmbox-client

This works here!