An UPnP Audio Media Renderer based on MPD

upmpdcli is a UPnP Media Renderer front-end for MPD, the Music Player Daemon. It supports UPnP gapless track transitions and the OpenHome ohMedia services (including a Radio service to listen to Internet streams).


upmpdcli is open-source, free and licensed under the GPL. It is written in C++ and uses the libupnp (1.6) and libmpdclient libraries. As it has few and widely distributed dependancies, it is reasonably simple to install.

The current version is 1.4.2. See the release notes.

The typical setup is a home network with:

As managed by upmpdcli, MPD does not access the audio files directly and its configured music directory may be empty. If you want to use a native MPD client, upmpdcli is not the right solution: have a look at the alternative approaches for MPD/UPnP integration.

What's the point ? If you are running a UPnP network with multiple devices, you may prefer using a single control application (UPnP-based) for everything. MPD is a very capable and robust music-playing application, which runs well on small computers (e.g. Raspberry PI or other "plug" type computers). However it needs a specific control application. upmpdcli lets you control your MPD-based players with your UPnP control point, and also brings new functions such as synchronized multiroom (Songcast), and access to streaming services.


upmpdcli 1.4.0. Nothing revolutionary in there but I'm tired of managing two branches, so the master goes to production. release notes.
upmpdcli 1.3.8. Allows using transparent login to qobuz/tidal on Debian Jessie. See the manual.
upmpdcli 1.3.6 fixes an issue in the Credentials services and fixes Bubble UPnP Qobuz and Tidal login.
upmpdcli 1.3.5. 1.3.4 and 1.3.5 fix bugs in the Spotify plugin.
upmpdcli 1.3.3 fixes the radio source on systems with python3 version < 3.5 (e.g. Debian Jessie)
upmpdcli 1.3.2 is available and brings Spotify support among other improvements. See the release notes
libupnpp 0.16.1 and upmpdcli 1.2.16. Minor fixes, some for ennoying issues in the upmdcli Qobuz and Tidal plugins. See the release notes
Upabx, an UPnP ABX testing tool, based on the libupnpp Python interface. I had fun with it (some soldering too), but it's not very useful to me. I hope that someone can find a use for it, and I'll help with the rough edges if needed.
libupnppp 0.16.0: Python interface merged into the main branch. New binary packages for upmpdcli and sc2mpd, linked with the new lib version.
libupnpp gets a Python interface.
I am in the process of moving the libupnpp, upmpdcli, sc2mpd, upplay and related projects to the Web site, closer to home. The up to date repositories are already there. There are archives for the old Github issues in the docs section.
libupnppp 0.15.3 and upmpdcli 1.2.15 with a few small fixes.
New versions improve compatibility with Linn Receivers, and visibility of Upmpdcli Receivers in Kazoo. See the release notes.
1.2.12: Fixes bug in 1.2.11 Content Directory interface..
1.2.11: Improved Qobuz interface.
1.2.10: Improve streaming services search.
1.2.9: Fixed small issues (raspbian wheezy compatibility, qobuz issues).
1.2.5: Improved search functions for the streaming services. On Debian/Ubuntu, split the service packages from the main one. Tidal is back.
Added support for Google Play Music, Qobuz and Tidal. The view of streaming services is a bit barebones yet, I am waiting for indications of interest and comments to try and improve the features.
The current git code supports streaming music from the Tidal service (if you have a valid account there of course). You will need to build and install the development versions of libupnpp and upmpdcli. The function is briefly described in the manual. I would be quite interested by your feedback on this feature.
upmpdcli goes 1.1 and provides a Radio OpenHome Source. I think that the functions and the program itself are now stable enough to get out of the 0.x zone. See the release notes.
As a new year present to Last.FM users, a small program to monitor any UPnP renderer and do the scrobble thing. Nothing to do with upmpdcli really, but it uses libupnpp...
Release 0.13.1 fixes the mpd "single" mode bug and supports the new sc2mpd sender/receiver mode.
Release 0.12.0 uses a new feature in libupnpp 0.12.0 to suppress error messages which appeared with 0.11 when UPnP AV was turned off.
Release 0.11.2 adds an upnpav configuration variable which allows turning off UPnP AV services to keep a pure OpenHome renderer. Doing this fixes Linn Kinsky issues.
Release 0.11 includes support for setting up multi-room audio systems with Songcast
A recent commit to sc2mpd seems to fix 24 bits Songcast sound for me. See the sc2mpd documentation for more information. Note: if you want to use this from a Mac, you will need mpd 0.19 configured with --disable-audiofile.
libupnpp version 0.10.0 is released. Only the control side is enhanced to help supporting pure OpenHome renderers. This is used by upplay and has no consequence for upmpdcli. The packaged versions of upmpdcli keep using libupnpp 0.9.0 which can be installed along with 0.10.0 (packaged as libupnpp1).
Older news

Known problems

  • upmpdcli releases up to 0.12 (included) do not reset the MPD single mode. If playing stops after each track, you need to toggle single, for example by running:
    mpc single
  • The relatively wide usage of upmpdcli and other UPnP mpd front-ends have intensified the testing of the mpd HTTP input plugin quite a lot (because that's how the data is pulled when using UPnP). This has lead to the correction of a number of bugs and bad interactions between the curl input plugin and some decoder plugins. These fix problems (bad sound, clicks, pops, up to pseudo-white-noise) which may depend both on the track format and bitrate. As far as I know most or all these problems are fixed in the current MPD versions (0.19 and later), but, unfortunately, many common Linux distributions lag quite a bit behind current MPD versions. I have set up backport repositories for recent MPD releases for Debian and Ubuntu in hope that they may help with these issues.
  • Seeking to the last seconds of a track (esp. a FLAC one apparently) will sometimes crash MPD. This seems to be dependant on a diversity of factors, and you may not experience it at all. If it happens, restart MPD.
  • Comments

    Please use the Disqus comments for praise, insults, or for tips which may help others. Use the tickets tracker for problem reports and enhancement suggestions. Use E-mail if you run into trouble, I'll be glad to help: jf at dockes dot org.

    comments powered by Disqus