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). OpenHome is supported by major control points. Its big
advantage is a locally managed playlist, meaning that the control point (e.g. your phone)
does not need to stay active.
- The program also implements a Media Server providing a gateway for accessing music
streaming services, and a local server for audio files. The gateway allows browsing and
playing tracks from external or internal streaming services (at the
moment: Tidal, Qobuz, HighResAudio, Subsonic). Audio tracks
from the streaming services can be played by an upmpdcli instance or by any other local
UPnP renderer. All modules are optional and can be activated separately.
- With a supplemental application, upmpdcli implements
a Linn
Songcast Receiver and Sender. The Songcast Receiver function allows you to
implement a well-synchronized multi-room system to which any audio (Spotify, etc.) playing
on a Windows or Mac system can be forwarded. The upmpdcli Sender/Receiver function also
allows multiroom playing from Linux, including of an external input source.
👁 upmpdcli
upmpdcli is written in C++, open-source, free and licensed
under the GPL. It now relies on its own UPnP libraries (
libnpupnp and libupnpp), and a number of other
common and reliable libraries (libcurl and libmicrohttpd).
The current version is 1.9.17. See the release
notes.
The typical setup is a
home network with:
- A UPnP Media Server: e.g. Gerbera (ex. Mediatomb), ReadyMedia
(ex. MiniDLNA), MinimServer, or some other commercial product,
- A UPnP Control Point
(e.g. Bubble UPnP running on a tablet or phone, Linn Kazoo on a PC/MAC,
or upplay for Linux or Windows).
- upmpdcli and MPD running on some Linux device (e.g. a Raspberry Pi hooked
up to your bedroom stereo).
As managed by upmpdcli, MPD does not need to index the audio files
metadata 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.
- 2026-04-15
- 1.9.17 : Qobuz support is back, you will need to update the
connection. See the details
in the manual.
- 2026-02-17
- 1.9.13 : subsonic plugin update.
- 2025-03-11
- 2025-12-23
- A new comments section based on open
source Isso, and privately hosted, replaces the
old Disqus one (old comments were preserved). No more ugly ads !
- 2025-11-02
- 1.9.8 : updates in media server modules.
- 2025-05-06
- 1.9.5 has a necessary fix for gcc 15. All earlier versions will
crash when built with gcc 15 (and newer, probably). Also, unbreaks Qobuz
- 2024-11-19
- 1.9.0 has a repaired and significantly improved Qobuz plugin.
- 2024-02-12
- Upmpdcli 1.8.8: small fixes. See
the release notes.
- 2023-10-30
- Upmpdcli 1.8.4: misc improvements to the Media Server services
plugins. New Radio Mother Earth plugin by Giovanni Fulco.
- 2023-09-17
- Upmpdcli 1.8.3: new Tidal module by Giovanni Fulco. Tidal is back !
- 2023-06-26
- Upmpdcli 1.8.1: minor fixes mostly. See
the release notes.
- 2023-04-19
- Upmpdcli 1.7.9 comes with a new media server plugin which will let
you use an UPnP control point to browse a Subsonic or Navidrome server and stream music
to an UPnP renderer.
- 2023-03-21
- Upmpdcli 1.7.7 has a new media server plugin for accessing
https://www.radio-browser.info/, a fix for a marginal case of failure while checking
format compatibility, and uprcl search improvements.
- 2022-12-07
- Debian repositories on this site: the repository
key has expired on the 6th of December. It has been extended and the repositories
re-signed, but you will need
to download and
install the key again
- 2022-08-32
- upmpdcli 1.5.20 has fixes for the
uprcl local Media Server module.
- 2022-08-12
- libnpupnp release 5.0.0, and libupnpp 0.22.2 fix a problem on the Control Point
side. The device side (upmpdcli) should not be affected.
- 2022-06-28
- upmpdcli 1.5.19 fixes small
issues.
- 2022-05-21
- 1.5.17 fixes a small issue preventing the Qobuz plugin from
working.
- 2022-04-13
- Many things happened since last year... See the
release notes.
- 2021-03-14
- libnpupnp 4.1.1 lets
Samsung TVs work with Gerbera built with libnpupnp.
- 2021-02-23
- The upmpdcli Media Server now have a
Deezer plugin (1.5.9). Only 128 kb/s streams unfortunately.
- 2020-12-08
- Version 1.5.5. Fix initial issues in 1.5.2.
See
the release
notes. Note: Tidal access does not work any more at
all. Qobuz access works through the media server, not through the
Kazoo or Lumin login (OpenHome Credentials).
- 2020-11-24
- Version 1.5.2. Create separate UPnP/AV and
OpenHome devices. See
the release
notes.
- 2020-06-11
- Version 1.4.12 brings initial support for
the Highresaudio
streaming service.
- 2020-06-05
- The Tidal API token is not working any
more. There are still some floating on the net which are
working. You can plug the value in the
configuration parameter if you find one.
- 2020-03-09
- libupnpp, upmpdcli, sc2mpd, upplay and
related projects have moved to
framagit.org.
I am grateful to opensourceprojects.eu for providing a haven
after leaving github, but they have fallen behind the times,
and the Gitlab instance which Framagit runs will be much nicer
to use.
- 2020-02-07
- upmpdcli 1.4.6. The
new libnpupnp
library replaces pupnp/libupnp as the foundation library to
provide base UPnP protocol support under libupnpp (0.18+).
Upmpdcli should still build and work with libupnpp 0.17
and pupnp. See the release
notes.
- 2019-10-06
- Qobuz access was revoked:
If you were using Qobuz
and it's not working any more, don't pull your hair, the
Qobuz plugin stopped working (either through the Media
Server or with OHCredentials). Qobuz revoked the app_id,
and also deleted the API documentation on Github.
If you are a hardware integrator/manufacturer using
upmpdcli to support Qobuz access (I know there are some),
I made a modification to the Qobuz plugin so that the
app_id/secret can be stored externally instead of being
embedded in the source. This means that, if you can
convince Qobuz to supply you with the appropriate pair, you
can easily restore function, without having to support a
modified module. Of course, this supposes that the API
itself does not change.
- 2017-11-15
- 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.
- 2016-01-15
- 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...
Comments
Please use the Isso 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: jf at dockes dot org.