Music Player Daemon

De ArchwikiFR


Introduction

Music Player Daemon, ou MPD, est un serveur permettant de lire des fichiers musicaux. Il tient à jour le dossier de musique, les playlists et joue la musique, et nécessite un client (en ligne de commande ou graphique) pour gérer l'interface du serveur. Un des intérêts est par exemple de pouvoir écouter de la musique depuis un autre ordinateur, voire diffuser de la musique en streaming.

Installation

Serveur

Pour le serveur, installez le paquet mpd :

pacman -S mpd

Clients

Il existe de nombreux clients, notamment :

  • Clients console
    • MPC (Music Player Client) qui fonctionne en ligne de commande et non interactif: mpc.
    • ncmpc qui utilise la bibliothèque ncurses et qui permet de manipuler le serveur depuis une console via une interface graphique en mode texte — très utile pour se remonter le moral lorsque tout est a moitié cassé et qu'on a plus de serveur graphique… ncmpc
    • Ncmpcpp un client curse en C++. ncmpcpp
  • Clients graphiques
    • Gmpc, un client simple pour Gnome, qui utilise Gtk+, gmpc
    • Sonata, un client GTK en python, sonata
    • Ario, ario.

Et pleins d'autres encore, pour diverses plateformes (android,...) ici (en).

Installez le client de votre choix. Il peut être utile d'installer les clients en mode texte mpc et ncmpc, ils ne prennent pas beaucoup de place et peuvent toujours servir…

pacman -S mpc ncmpc

Configuration

MPD est capable de fonctionner avec une configuration par utilisateur ou avec une configuration à l'échelle du système (les paramètres s'appliquent alors à tous les utilisateurs). Il est également possible d'exécuter plusieurs instances de MPD. Le choix repose sur la manière dont il est destiné à être utilisé: une configuration locale par utilisateur est plus facile à configurer et peut s'avérer plus adaptée pour un environnement de bureau.

Quoi qu'il en soit, la configuration se fait au niveau d'un fichier mpd.conf:

  • ~/.config/mpd/mpd.conf dans le cadre d'une configuration par utilisateur
  • /etc/mpd.conf pour une configuration système

Pour voir toutes les options, consultez la page de manuel : man mpd.conf. Il existe également un fichier exemple décemment documenté, /usr/share/doc/mpd/mpdconf.example.

Par utilisateur

L'utilisateur pourra s'appuyer sur le fichier exemple (une bonne pratique consiste à utiliser le répertoire ~/.config/):

$ mkdir ~/.config/mpd
$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf

Voici tout de même un exemple minimal de ~/.config/mpd.conf  :

Fichier: ~/.config/mpd.conf
# Recommended location for database
db_file            "~/.config/mpd/database"

# Logs to systemd journal
log_file           "syslog"

# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
#music_directory    "~/music"

# Uncomment to refresh the database whenever files in the music_directory are changed
#auto_update "yes"

# Uncomment to enable the functionalities
#playlist_directory "~/.config/mpd/playlists"
#pid_file           "~/.config/mpd/pid"
#state_file         "~/.config/mpd/state"
#sticker_file       "~/.config/mpd/sticker.sql"

Vous devez configuer au minimum :

  • music_directory : le répertoire où vous stockez votre musique
Astuce : Assurez vous que l’utilisateur sous lequel MPD fonctionne possède les droits de lecture !
  • playlist_directory le répertoire où mpd enregistre ses playlists. Doit exister.

Le port spécifié sera utilisé pour les dialogues entre le client et le serveur, c'est-à-dire pour envoyer des commandes à MPD (ajout dans la playlist, lecture, etc.) par le client. MPD et ses clients utilisent par défaut le port 6600, si vous le modifiez vous devrez également spécifier le port au niveau du client. Vous pouvez aussi utiliser un socket unix. Par exemple avec ncmpc, les trois commandes suivantes permettent de se connecter respectivement en simple auditeur, en utilisateur authentifié et en utilisateur authentifié sur un port alternatif (6666 au lieu de 6600, à préciser dans le fichier de configuration de MPD) :

 ncmpc 
 ncmpc --password abc
 ncmpc --password abc --port 6666

A l'échelle du système

La configuration se passe au niveau de /etc/mpd.conf.

Si le répertoire est situé chez un utilisateur, le plus simple consisterait à passer à une configuration par utilisateur... Sinon il faut jouer sur les groupes de l'utilisateur et adapter les droits sur le répertoire de musique en question (via le groupe mpd) ou stocker la musique ailleurs.

Pour une installation multi-MPD (serveur icecast)

cf. wiki Arch (en).

Démarrer le tout

Configuration par utilisateur

Une fois MPD configuré, vous pouvez le lancer par la simple commande : mpd (ou via un fichier d'autostart à la connexion, cf. wiki (en)) ou avec le service mpd (ce service spécifique est à lancer par l'utilisateur même):

$ systemctl --user start mpd

Vous pouvez aussi démarrer le démon au démarrage:

$ systemctl --user enable mpd

MPD accède à un dossier où la musique est stockée (option de configuration music_directory), mais afin d'éviter de tout avoir à re-parcourir, les données concernant les morceaux qui y figurent sont placées dans une base de donnée (directive db_file). Lorsque vous touchez à votre dossier de musique, il vous faut donc remettre à jour la base de donnée. Cela se fait directement avec le client (ou au démarrage du serveur avec l'option auto_update "yes"). Par exemple dans gmpc, une option permettant de remettre à jour la base de donnée est proposée dans le menu contextuel lors de l'ouverture d'un dossier.

Configuration système

Utilisez le service mpd système:

systemctl start mpd
systemctl enable mpd

Client

Dès lors que le serveur mpd est démarré, il ne vous reste plus qu'à utiliser le client qui vous convient. :)

Liens utiles