Source code

The Source repository is on

See the following for documentation about building, configuration and the Release notes.

Current version (tar files):

For building sc2mpd, it is possible to extract the OpenHome libraries code from github during the build, but it is simpler to use a prepared tar file: openhome-sc2-20200704.tar.gz.

The new libnpupnp library, has a rationale document here, with pointers to a pupnp porting guide and full documentation.

Also, the libupnpp Python bindings package: libupnpp-bindings-0.20.1.tar.gz

For die-hard fans, the libupnp version is still around: libupnpp-0.17.2.tar.gz, libupnp-1.6.20.jfd5.tar.gz


Various levels of installation help exist for Debian, Ubuntu, Fedora, and Gentoo. If no package exists for your system, see the link to building instructions above.

If upmpdcli works well for you, you may help with the maintenance and show your appreciation by following the links on the donations page: btn donate LG


All the binary upmpdcli packages listed below install an appropriate systemd or init script to automatically start the daemon. For trying things out, just installing the package on the host where MPD is running will get you a usable system.

If MPD is not running on the same host, you need need to edit the configuration file, /etc/upmpdcli.conf to set the MPD host name or address.

You may also want to edit the configuration file to set the UPnP renderer friendly name, for ease of use if you have several upmpdcli instances on the network.


You will find Debian packages for different releases and hardware architectures. If your configuration is not covered, you can build your own using the source packages, which is not hard. See a sample build sequence here.

Streaming services: the streaming services plugins are provided by separate packages (upmpdcli-spotify, upmpdcli-qobuz, upmpdcli-tidal), and you need to install them separately.

December 2020: updating the expired key. Because the format of the sources list file slightly changed to conform to newer Debian practises (using a signed-by attribute), you need both to import the repository keyring, and update your sources file.


sudo apt-get update
sudo apt-get install upmpdcli
# Optional streaming services
sudo apt-get install upmpdcli-qobuz
sudo apt-get install upmpdcli-spotify
# Optional Songcast gateway
sudo apt-get install sc2mpd
# Optional Songcast Receiver control web interface
sudo apt-get install scweb
It seems that the incompatibilies which existed between the ARM Debian and Raspbian jessie distributions are gone as from the Stretch (Debian 9) release. If you are running a Debian-based system (such as OSMC) on armhf (e.g. on a Raspberry pi), Stretch or later (Buster) please give the Raspbian repository a try. I’d be interested to hear about successes / failures:


PPA for production packages:

  sudo add-apt-repository ppa:jean-francois-dockes/upnpp1

Once the PPA is installed, see the Debian section above for the installation instructions.

If you need to build for a platform not supported by the PPA, you can use the sample Debian build sequence.


x86_64 and source packages for Fedora 30, Fedora 31. You need to install the libnpupnp (for fedora 31 only), libupnpp and upmpdcli packages.

Installation (libupnp is not needed for fedora 31):

sudo dnf install libupnp libmpdclient expat jsoncpp libmicrohttpd
sudo rpm -i [name of rpm file]

MPD downloads

Debian backport repositories for mpd, usually of a newer versions than the official repo’s and configured slightly differently. Sometimes older version instead.

If you have no problem with the standard version, don’t look for trouble and don’t install this one, it’s only, and only sometimes, useful in some quite exotic cases (e.g. high bitrate uncompressed streams from HTTP and L16).

I have deleted the Ubuntu PPA, because recent mpd releases are ok, and Ubuntu users usually run a recent release.

The repositories currently have either:

  • mpd release 0.19.19, with libsndfile and libaudiofile disabled (in my experience, these libs only bring trouble, and it’s better to use ffmpeg for everything), and a patch for supporting L16.

  • Vanilla mpd 0.20.x, (no source change), with libsndfile and libaudiofile disabled.

The repository currently has mpd 0.20.23 built for Debian Buster x86-64 and armhf. This can be useful because of a DSD issue in the current 0.21 package. Because the version is older than the system’s, you need to jump a few hoops: after adding the repository, list the available versions with apt-cache showpkg mpd, then install the one you want with apt install mpd=<theversion>. Example: apt install mpd=0.20.23-jfd1.

Debian (i386, amd64) and Raspbian (armhf raspberry PI).

For ARM Debian: beware that the Raspbian packages may have dependancies which slightly differ from the equivalent Debian release, and you may have to recompile the source package on Debian.

To use the repository:

  • Create and edit /etc/apt/sources.list.d/mpd.list (you can change the name to anything you like, e.g. mpd-backports.list), and add the following lines:

For Raspbian and Debian 9.x Stretch:

deb stretch main
deb-src stretch main

For Raspbian and Debian 10.x Buster:

deb buster main
deb-src buster main
  • Then:

sudo apt-get update
sudo apt-get install mpd

Comments and support

Please use the Disqus comments for praise, insults, or for tips which may help others. Use the issue tracker for problem reports and enhancement suggestions. Use E-Mail if you run into trouble, I’ll be glad to help.

comments powered by Disqus