Coherence

Afterster edited this page Nov 5, 2013 · 1 revision

Coherence DLNA/UPNP MediaServer

What is Coherence?

  • a DLNA/UPnP MediaServer stand-alone application, which exports local/home or online media files via its backends to other UPnP clients.
  • an audio/video DLNA/UPnP MediaRenderer stand-alone application, based on the GStreamer framework .
  • Cadre: an image DLNA/UPnP MediaRenderer stand-alone application, to be used as a picture frame.
  • Mirabeau: a standalone UPnP bridge application, to share your UPnP content between two or more local networks over the Internet (work in progress).
  • The Inspector: a UPnP Device and Service analyzer/debugger tool, which can also be used as a UPnP ControlPoint.
  • Puncher: a command-line UPnP InternetGatewayDevice manipulation tool
  • Plugins or extensions for other applications to open them to the UPnP world, thanks to the framework (either as MediaServers, ControlPoints or MediaRenderers). This includes Totem, Nautilus, Eye Of Gnome, Rythmbox, Banshee, Elisa, amarok...

The media server supports Transcoding (experimental). The toolkit is known to work on various Linux flavors, BSD, (Open)Solaris and Windows. It can be installed either as a standard python source-code download or through various OS-specific packages.

Configuration

The Ampache backend has the following options:

  • name: the name this backend should show up on your UPnP clients, defaults to Ampache
  • url: the url to access your Apache’s XML-API Example: http://mydnsname.com/ampache
  • key: the password to access the XML-API, for use with Ampache 3.3 and earlier.
  • user: required username of the user you wish to authenticate to the XML-API with.
  • password: the password for the username.
  • version: optional, to define a different UPnP device version for that backend

Example config file

  <plugin active="yes">
    <url>ampache/ampache/server/xml.server.php</url>
    <backend>AmpacheStore</backend>
    <name>Ampache</name>
    <key>llama</key>
    <user>username</user>
    <password>username</password>
  </plugin>

The user and password are the same as the username and password you use to log into the web interface.

Python code

  coherence.add_plugin('AmpacheStore',
                       name='MyAmpache',
                       url='http://ampache-host/ampache/server/xml.server.php',
                       key='yourpassword')

DBus

  coherence_service = dbus.SessionBus().get_object('org.Coherence','/org/Coherence')
  coherence_service.add_plugin('AmpacheStore',
                               {'name':'MyAmpache,
                               'url'='http://ampache-host/ampache/server/xml.server.php',
                               'key'='yourpassword'},
                               dbus_interface='org.Coherence',
                               reply_handler=add_plugin_callback,
                               error_handler=error_callback)

Commandline

coherence --plugin=backend:AmpacheStore,url:http://ampache-host/ampache/server/xml.server.php,key:yourpassword

Multicast routing

You must setup a multicast route for UPnP messages, in this example with eth0 as the interface you want them to travel over.

route add -net 239.0.0.0 netmask 255.0.0.0 eth0

Troubleshooting

Running from the command line

To see of Coherence can connect to Ampache, run the following command. Be sure to change "ampache-host" to your Ampache host and add your RPC key after "key:"

coherence --plugin=backend:AmpacheStore,url:http://ampache-host/ampache/server/xml.server.php,key:YOURPASS_FROM_RPC_ACL

Then you should see something that resembles the following:

  Coherence UPnP framework version 0.5.8 starting... (coherence/base.py:251)
  WARN  webserver                   Oct 22 09:31:44  WebServer on port 59615 ready (coherence/base.py:106)
  WARN  mediaserver                 Oct 22 09:31:45  Ampache MediaServer (Ampache storage) activated (coherence/upnp/devices/media_server.py:521)