# 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)