What is MPD?
MPD is an audio player that has a server-client architecture. The benefit of this is that:
- You can stream/remote control your music queue from devices on your network.
- 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

Pros
- Fully featured: can add a full album next in the queue, a feature missing in many other UIs.
- Customizable: easy to set up hotkeys and execute scripts on song changes for custom workflows.
- Low memory: has never lagged for me, even with large playlists/albums.
- Supports Vim keybindings, great for terminal users.
Cons
- Cannot display album art without outdated, hacky solutions involving tmux or external scripts.
- Takes time to learn and remember hotkeys.
- Searching for songs is mediocre, lacking regex support and album art browsing.
Summary: A highly functional music player with a minimal footprint.
RMPC

Pros
- Displays album art in the queue.
- Low memory usage similar to Ncmpcpp.
- Highly customizable.
- Cleaner and more aesthetic terminal interface.
Cons
- Lacks some features from Ncmpcpp (e.g., adding a song next in the queue).
- Being relatively new (created in 2024), it still has some bugs.
Summary: My favorite music player for its clean interface, low memory usage, and customization.
Quodlibet

Pros
- Powerful search with regex support.
- Multiple views, including album cover browsing.
- Customizable themes (e.g., Catppuccin Mocha).
- Variety of plugins available.
Cons
- Written in Python instead of a real programming language.
- Missing features like "add next" in the queue.
- Some users dislike the interface.
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"