Une web radio avec MPD

Rien de plus simple que de faire une web radio pour diffuser sa musique.

MPD

On installe MPD :

apt install mdp

On modifie sa configuration dans /etc/mpd.conf (je ne mets que les paramètres intéressants à modifier) :

# chemin vers le dossier contenant la musique
music_directory "/var/lib/mpd/music"
# Là c’est vous qui voyez. Moi je mets à off pour pas que ça surveille le dossier en permanence
# Je déclenche la mise à jour de la bibliothèque via le client MPD
auto_update "no"
# Zeroconf/avahi, c’est intéressant dans un réseau local, beaucoup moins sur un serveur
zeroconf_enabled "no"
# On commente l’`audio_output` de type `alsa`
# et on décommente celui de type `httpd`
audio_output {
       type            "httpd"
       name            "Ma radio perso"
 #      encoder         "vorbis"                # optional, vorbis or lame
       port            "8000"
       bind_to_address "127.0.0.1"               # optional, IPv4 or IPv6
 #      quality         "5.0"                   # do not define if bitrate is defined
       bitrate         "128"                   # do not define if quality is defined
 #      format          "44100:16:1"
 #      max_clients     "0"                     # optional 0=no limit
}

On redémarre MPD :

systemctl restart mpd

Un client

J’ai tendance à préférer les outils en CLI :

apt install ncmpcpp

Lancez-le.

  • F1 pour afficher l’aide.
  • u pour mettre à jour la mise à jour de la bibliothèqie.
  • z pour utiliser le mode aléatoire
  • r pour metter la file d’attente en boucle
  • 1 pour voir la file d’attente des fichiers. Dans cette vue :
    • Entrée pour lancer un morceau
  • 2 pour voir la liste des fichiers (suivant l’arborescence de votre dossier de musique). Dans cette vue :
    • Espace pour ajouter à la file d’attente,
    • Entrée pour aller dans un dossier.

Pour le reste, lisez l’aide.

Proxifier via Nginx

Pas grand chose de particulier, c’est de la proxification classique :

    location / {
        proxy_set_header Host $host;
        proxy_connect_timeout 300s;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        proxy_pass http://127.0.0.1:8000/;
    }

(je mets pas toute la configuration Nginx, c’est pas le sujet ici)