Plugin: Rhythmbox

  1. The Rhythmbox UPnP plugin
  2. Requirements
  3. Installation
    1. Coherence
    2. Rhythmbox
    3. Coherence Rhythmbox Plugin
      1. Debian, Ubuntu, and variants
      2. Manual Installation
    4. Configuring Rhythmbox
  4. Verification
  5. Troubleshooting
  6. Thanks To



The Rhythmbox UPnP plugin

For some time now there has been a UPnP plugin based on Coherence for Rhythmbox. It allows Rhythmbox to access UPnP/DLNA MediaServers on the network and will also export the Rhythmbox music collection to other UPnP/DLNA MediaRenderers such as the Sony Playstation 3.

The PS3 has been tested and works with this plugin. In the latest versions it even comes with nice device icons for visual identification ps3 parts.

This video shows Rhythmbox interacting with a Nokia n800.

Requirements

As of 2011-02-02 you will need:

  • Rhythmbox >= 0.13.3 or current trunk
  • Coherence version 0.40 or higher (tested with Coherence 0.6.6.2)

Installation

Coherence

First you will need to install Coherence. Currently (as of 2nd March 2009), it is recommended that you checkout the latest version from the Coherence Git repository as some distributions (notably Ubuntu) ship a version of Rhythmbox which requires a newer version of the Coherence plugin than that which is in their repository. Instructions for installing Coherence from the Git repo are available in the Coherence Documentation Department.

Rhythmbox

If your distribution ships a recent enough version then you can skip the following steps and go straight to the plugin install. Otherwise, either download the latest release or pull it from the git repository. Enter the newly created rhythmbox directory and issue the following commands as described here:

$ ./autogen.sh
$ make

after that a rhythmbox binary should have been created.
You can install it with sudo make install to /usr/local/bin or just run in locally with shell/rhythmbox (or ./rhythmbox).

Eventually you need to install a current totem-pl-parser too.
Simply download and unpack, then run the standard ./configure && make && sudo make install to install cell phone parts.

Coherence Rhythmbox Plugin

Debian, Ubuntu, and variants

An (outdated) version ofthe Coherence plugin for Rhythmbox can be installed with this command in Ubuntu Lucid Lynx (10.04):

$ sudo apt-get install rhythmbox-plugin-coherence

This command should work with recent versions of Debian and its variants as well.

Manual Installation

The Rhythmbox plugin directory is $libdir/rhythmbox/plugins/ (usually /usr/lib/rhythmbox/plugins). The per-user plugin directory is $HOME/.gnome2/rhythmbox/plugins/. Checkout a copy of the Coherence plugin's Git repository with this command, replacing "$plugindir" with one of the plugin directories:

$ git clone https://github.com/coherence-project/Coherence.git
$ cp Coherence/misc/Rhythmbox-Plugin/upnp_coherence/ $plugindir/upnp_coherence

Configuring Rhythmbox

Once the plugin is installed, it must be activated within Rhythmbox. The plugin can be activated by enabling DLNA/UPnP support in the Configure Plugins dialog ([Edit]->[Plugins]).

Once the plugin is activated, you should now see a new section/list in the left hand panel in Rhythmbox called 'Shared' and under that you should see any MediaServers which are on your local network. It may take a few moments for the MediaServers to be detected.

Verification

If you need to verify the plugin is active and operational, run Rhythmbox from the command line. Here is what a (working) installation looks like when it starts up:

$ rhythmbox
(rhythmbox:8141): Gtk-WARNING **: AudioCdSourcePopupCopyCd: missing action MusicAudioCDDuplicate
(rhythmbox:8141): Gtk-WARNING **: AudioCdSourcePopupCopyCd: missing action MusicAudioCDDuplicate
WARN  coherence                   Mar 02 23:20:29  Coherence UPnP framework version 0.6.1 starting... (coherence/base.py:275)
WARN  webserver                   Mar 02 23:20:29  WebServer on port 36527 ready (coherence/base.py:110)
WARN  rb_media_store              Mar 02 23:20:29  __init__ MediaStore {'no_thread_needed': True, 'urlbase': 'http://192.168.0.110:36527/8b0258c2-1434-4549-9d5d-9fcfcb10d3e3', 'db': <__main__.RhythmDBTree object at 0xa32ec84 (RhythmDBTree at 0x9c54018)>, 'plugin': <CoherencePlugin object at 0xa3a961c (RBPlugin at 0xa38f448)>} (coherence/MediaStore.py:297)
WARN  rb_media_renderer           Mar 02 23:20:29  __init__ RhythmboxPlayer {'shell': <rb.Shell object at 0xa204eb4 (RBShell at 0x9ae4050)>, 'no_thread_needed': True, 'urlbase': 'http://192.168.0.110:36527/918251f3-6436-4504-b088-7633f641a535'} (coherence/MediaPlayer.py:34)
WARN  rb_media_store              Mar 02 23:20:29  __init__ MediaStore initialized (coherence/MediaStore.py:380)
WARN  mediaserver                 Mar 02 23:20:29  Rhythmbox on 192.168.0.110 MediaServer (<upnp_coherence.MediaStore.MediaStore object at 0xaa3154c>) activated with 8b0258c2-1434-4549-9d5d-9fcfcb10d3e3 (coherence/upnp/devices/media_server.py:601)
WARN  rb_media_renderer           Mar 02 23:20:29  get_volume 1.0 (coherence/MediaPlayer.py:370)
WARN  mediarenderer               Mar 02 23:20:29  Rhythmbox on 192.168.0.110 MediaRenderer (RhythmboxPlayer'>) activated with 918251f3-6436-4504-b088-7633f641a535 (coherence/upnp/devices/media_renderer.py:121)
WARN  rb_coherence_plugin         Mar 02 23:20:29  found upnp server Rhythmbox on 192.168.0.110 (uuid:8b0258c2-1434-4549-9d5d-9fcfcb10d3e3) (coherence/__init__.py:154)
WARN  rb_coherence_plugin         Mar 02 23:20:31  found upnp server Coherence - Apple Trailers (uuid:ccc392aa-fbad-45bc-a4a5-9a0323dfb086) (coherence/__init__.py:154)

Troubleshooting

If the Rhythmbox MediaServer doesn't show up in your UPnP client you should:

  • add a multicast route to your network configuration, using the interface that connects the client computer to the network:
    sudo route add -net 239.0.0.0 netmask 255.0.0.0 eth0
    
  • disable for a short while any firewalls that protect your system
  • check your selinux configuration if enabled

Thanks To

Ender and Jonty for their notes on Ubuntu.