Mopidy-dLeyna

Mopidy-dLeyna is a Mopidy extension that lets you play music from DLNA Digital Media Servers using the dLeyna D-Bus interface.

This extension lets you browse, search, and stream music from your NAS, PC, or any other device running a UPnP/DLNA compliant media server. Compatible devices are discovered automatically on your local network, so there is no configuration needed.

Installation

On Debian Linux and Debian-based distributions like Ubuntu or Raspbian, install the mopidy-dleyna package from apt.mopidy.com:

apt-get install mopidy-dleyna

Otherwise, first make sure the following dependencies are met on your system:

  • D-Bus Python bindings, such as the package python-dbus in Debian/Ubuntu/Raspbian [1].
  • The dleyna-server package available in Ubuntu 14.04 and Debian “jessie”. For other platforms, please see the dLeyna installation instructions.

Then install the Python package from PyPI:

pip install Mopidy-dLeyna

Footnotes

[1]On some distributions such as Arch Linux, it may also be necessary to install the dbus-glib package.

Configuration

This extension provides a number of configuration values that can be tweaked. However, the default configuration should contain everything to get you up and running, and will usually require only a few modifications, if any, to match personal preferences.

Configuration Values

dleyna/enabled

Whether this extension should be enabled or not.

dleyna/upnp_browse_limit

The maximum number of objects to retrieve per UPnP Browse action, or 0 to retrieve all objects.

Note

Due to a known bug in Mopidy-dLeyna, this should not be set above 200 when using Kodi as a DLNA server.

dleyna/upnp_lookup_limit

The maximum number of objects to retrieve by ID in a single UPnP Search action, or 0 for no limit. Note that for this setting to have any effect, the media server must advertise that it is capable of searching for object IDs.

This is an experimental setting and may be changed or removed in future versions.

dleyna/upnp_search_limit

The maximum number of objects to retrieve per UPnP Search action, or 0 to retrieve all objects.

dleyna/dbus_start_session

The command to start a D-Bus session bus if none is found, for example when running Mopidy as a service.

Default Configuration

For reference, this is the default configuration shipped with Mopidy-dLeyna release 1.2.0:

[dleyna]
enabled = true

# maximum number of objects to retrieve per UPnP Browse action, or 0
# to retrieve all objects
upnp_browse_limit = 200

# maximum number of objects to retrieve by ID in a single UPnP Search
# action (if supported by device), or 0 for no limit
upnp_lookup_limit = 20

# maximum number of objects to retrieve per UPnP Search action, or 0
# to retrieve all objects
upnp_search_limit = 100

# command to start session bus if none found, e.g. when running Mopidy
# as a service
dbus_start_session = dbus-daemon --fork --session --print-address=1 --print-pid=1

Change Log

v1.2.0 (2016-09-23)

  • Add dbus_start_session configuration value for specifying the command to start a session bus. The default is to invoke dbus-daemon daemon directly, so dbus-launch is no longer needed (but is still supported for now).
  • Check for $XDG_RUNTIME_DIR/bus before starting a session bus.
  • Update installation dependencies.
  • Improve log messages if search is not supported.

v1.1.1 (2016-06-28)

  • Add workaround for partially retrieved browse results with Kodi 16.0 DLNA server.

v1.1.0 (2016-05-21)

  • Add upnp_lookup_limit configuration value (experimental).
  • Add support for albumartist queries.
  • Add support for minidlna “All Albums” collections.
  • Add track bitrate according to DLNA specification.
  • Add basic unit tests for library and playback providers.
  • Update documentation and build environment.
  • Various code refactorings and improvements.

v1.0.5 (2016-01-22)

  • Specify sort order when browsing.
  • Add apt.mopidy.com to installation options.
  • Remove Album.images property (deprecated in Mopidy v1.2).
  • Handle exceptions in dLeynaPlaybackProvider.

v1.0.4 (2015-11-03)

  • Handle uppercase characters in server UDNs.

v1.0.3 (2015-10-24)

  • Refactor server handling.
  • Handle persistent URIs in dLeynaClient.

v1.0.2 (2015-10-16)

  • Improve startup error messages.
  • Performance improvements.

v1.0.1 (2015-09-12)

  • Add workaround for permanently lost media servers.

v1.0.0 (2015-08-21)

  • Add upnp_browse_limit config value.
  • Add upnp_search_limit config value.
  • Refactor get_images implementation.
  • Improve debug output.

v0.5.3 (2015-08-19)

  • Fix lost server handling.
  • Check device’s SearchCaps when searching.
  • Improve log messages.

v0.5.2 (2015-08-18)

  • Move mapping helpers to translator module.
  • Add mopidy_dleyna.dleyna.__main__.
  • Update README.rst.

v0.5.1 (2015-08-14)

  • Start/stop D-Bus daemon from backend.

v0.5.0 (2015-08-14)

  • Add support for album art.

v0.4.2 (2015-08-14)

  • Use asynchronous D-Bus calls to improve performance on Raspberry Pi.

v0.4.1 (2015-08-11)

  • Add workaround for integer conversion issues on 32 bit systems.

v0.4.0 (2015-08-11)

  • Start session bus on headless systems or when running as a daemon.
  • Use recursive search for container lookups.
  • Add browse/search filters.
  • Peristent URI handling.

v0.3.1 (2015-04-11)

  • Perform search asynchronously.

v0.3.0 (2015-04-10)

  • Add basic search capabilities.
  • Return proper reference types when browsing.

v0.2.0 (2015-04-08)

  • Add workaround for minidlna crashing on empty filter.

v0.1.0 (2015-04-07)

  • Initial release.

License

Mopidy-dLeyna is Copyright (c) 2015, 2016 Thomas Kemmer.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this software except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.