← Back home

MPD, Remote Control, HTTP Streaming, and Front-end Clients

Published on March 30, 2025

What is MPD?

MPD is an audio player that has a server-client architecture. The benefit of this is that:

  1. You can stream/remote control your music queue from devices on your network.
  2. Separating frontend/backend allows for full customization of the frontend.

For the first point, I am able to play music on my desktop while controlling the player with an Android app (MALP) to pause, add, and remove songs. So if you have a stereo system set up to your PC, you can use an app to control it from another room.

Regarding the second point, you could, for example, add a song in Quodlibet and then later open another music player like RMPC and pause that same song. Since both frontends call the MPD server and share the same queue, the benefit of this approach is that if you ever want to switch music players, you do not have to manually recreate all playlists. The database and music streaming are independent of the frontend GUI experience.

To set up MPD, follow the official guide.

Music Clients

Ncmpcpp

Ncmpcpp Screenshot
Pros
Cons
Summary: A highly functional music player with a minimal footprint.

RMPC

RMPC Screenshot
Pros
Cons
Summary: My favorite music player for its clean interface, low memory usage, and customization.

Quodlibet

Quodlibet Screenshot
Pros
Cons
Summary: Probably the best GUI music player, though missing features found in Ncmpcpp and RMPC.

Note on RMPC and YouTube Videos

RMPC allows adding YouTube playlists/videos to the queue using a Unix socket:

bind_to_address "/tmp/mpd_socket";
port "6600";
    

If you still need to have MPD use an IP for TCP, you can just use socat:

socat TCP-LISTEN:6600,fork UNIX-CONNECT:/tmp/mpd_socket
      

Then, with your remote device, just connect to your ip:port

Script to Add a Full YouTube Playlist to MPD

#!/bin/sh
if [ -z "$1" ]; then
  echo "Usage: $0 "
  exit 1
fi
yt-dlp -j --flat-playlist "$1" | jq -r .url | while read -r url; do
  rmpc addyt "$url"
done
    

Run it with:

sh add-all-playlist-songs-to-mpd.sh "playlist-url"
    

To stream music across devices, use the "httpd" output type in MPD.

Remote Control with Android

  1. Install M.A.L.P. from the Play Store.
  2. Set up the profile with [ip-address:6600].
  3. You should now be able to control MPD remotely.

I still have not found a client for Google TV that I could connect to MPD, and as of now it seems like alot of MPD UI clients are dead.

← Back home