How To Set Up Music Player Daemon On Linux
For those looking to set up their own music streaming system on Linux, there are many options. Still, despite all of the attention going towards things like Emby, Plex, and Subsonic, a lot of Linux users still prefer a command-line based solution. That’s why in this article, we’ll be going over exactly how you can set up your own Linux-based music streaming tool with Music Player Daemon. We’ll go over how to stream over a network, how to set up individual MPD clients, and even how to use the terminal-based MPD tool with a traditional music player on Linux.
Install Music Player Daemon
Getting Music Player Daemon (MPD) working on Linux is a bit of a tedious process. It starts out by installing the client to whatever is hosting the stream. Know that you don’t have to use MPD over the network. It’s possible to install MPD and playback from it on the same PC.
Ubuntu
sudo apt install mpd mpc
Debian
sudo apt-get install mpd mpc
Arch Linux
sudo pacman -S mpd mpc
Fedora
sudo dnf install mpd mpc
OpenSUSE
sudo zypper install mpd mpc
Other Linuxes
Can’t find MPD? Open up your terminal window and use the package manager to search for “MPD.” Install it, and you should be good to go. Be sure also to install the MPC tool, as that is also important. If your Linux distribution doesn’t support MPD at all, there are other ways to download it. The best way would be grabbing the source code itself, and building it.
To get a copy of the Music Player Daemon source code, head over to the official MPD website and grab the .tar.xz version. This version will work on Linux.
Configuring Music Player Daemon
All edits to the Music Player Daemon tool must happen within the configuration file. Any changes to the system, while not required, will need to be made there. If you’d like to edit the file, open up a terminal window and enter the following:
sudo nano /etc/mpd.conf
By default, the MPD tool will store music files in /var/lib/mpd/music, playlists in /var/lib/mpd/playlists, and etc. MPD uses these locations for file storage because of permission purposes. The average user shouldn’t need to edit this file, as the regular locations are excellent.
A better way to use MPD is just to use a bind mount. This kind of mount will automatically place the contents of ~/Music into /var/lib/mpd/music.
Note: if you’re hosting MPD on a server and not locally, consider just placing the files in /var/lib/mpd/music directly.
sudo mount --bind ~/Music /var/lib/mpd/music
Then, use the cat command to find the mount line in /proc/mounts.
cat /proc/mounts | grep ~/Music
Combining both cat and grep will show us the exact mount line that ~/Music and /var/lib/mpd/music are bound. Now, to make this bind permanent. Be sure to change “/home/username/” to your PC’s user.
su echo '' >> /etc/fstab echo '# MPD Bind Mount' >> /etc/fstab echo '/home/username/Music /var/lib/mpd/music none rw,bind 0 0' >> /etc/fstab
Lastly, you’ll need to use the systemd init system to start the service.
sudo systemctl enable mpd sudo systemctl start mpd
Gnome Music Player Client
There are many graphical MPD clients to use on Linux, and they all have their use cases. That said, not all of these clients are easy to use. In this tutorial, we’ll be connecting to the stream with the Gnome Music Player Client. Here’s how to install it.
Ubuntu
sudo apt install gmpc
Debian
sudo apt-get install gmpc
Arch Linux
sudo pacman -S gmpc
Fedora
sudo dnf install gmpc
OpenSUSE
sudo zypper install gmpc
Open GMPC to be taken through the “first launch” tool. It’ll help you set up a connection. If you’re using MPD from a remote Linux server, be sure to change “localhost” to it’s IP address. Not sure what the IP address is? Try this.
Find Public IP
ping pcdomainname.com -c1
Example: ping google.com
OUTPUT: PING google.com (172.217.12.110) 56(84) bytes of data.
Find Local IP
ping pc-host-name -c1
Example: ping ubuntu-server
OUTPUT: PING ubuntu-server (192.168.1.126) 56(84) bytes of data.
Enter all the connection details and then move down to “music directory.” In this area, write the location /var/lib/mpd/music/. Don’t worry about entering a password, just click the connect button. If the connection is successful, click the “forward” button to move on to the next page.
As GMPC starts, you’ll notice that there aren’t any music files. No, this doesn’t mean that you set up the MPD server wrong and that you’ve got to start over. Gnome Music Player Client just has to build a database. Rebuilding the MPD database is a little like pressing the “scan library” button on your favorite local music player.
Refresh the database by clicking “Server,” then selecting “Update MPD Database”. You’ll then be able to play back any music in the /var/lib/mpd/music folder remotely, via GMPC. This app doesn’t update the database automatically. Each time new music files are added, you’ll need to refresh the client again.