MPD et icecast2 - Webradio ou lecteur ultime?
L'excellent Music Player Deamon est en version 12.1 dans Ubuntu Edgy. C'est une bonne nouvelle, puisque a partir de la version 12, il est capable de servir de source au non moins excellent serveur de streaming Icecast2.
Voila de quoi monter relativement facilement une webradio à la maison, et clouer le bec au légendaire troll sur le meilleur lecteur audio.
N'avez vous jamais rêvé:
- De diffuser vos propres émissions de radio?
- De pouvoir écouter votre musique (oui, les 176 Gigas de mp3 légalement obtenus qui gisent sur votre disque dur) depuis n'importe quel ordinateur connecté à internet?
- De pouvoir modifier, à distance, la playlist que joue votre webradio? et cela même depuis le poste windows™® du boulot ou de tatie georgette? Ou même depuis votre téléphone portable, chez la boulangère de Ploum.
Et bien c'est possible, et même assez simple, grâce au couple MPD et Icecast2. MPD va se charger de la gestion de la collection musicale, de la playlist, de l'interface de gestion (play/pause, précédent/suivant, tout ça) et envoyer le flux de données a Icecast2, qui lui arrosera Internet des notes sirupeuses de votre groupe de funk préféré, ou des débats intellos que vous enregistrez dans votre cave.
Passons a la pratique
/!\ Ce pas à pas ne contient pas de difficultés majeures. Néanmoins, quelques connaissances sur la façon dont fonctionne un serveur et l'édition de fichiers de configuration ne seront pas négligeables...
Prérequis
- Ubuntu 6.10 sur le serveur (j'ai bien fait un backport pour dapper, mais le backport officiel est en cours et je ne conseille pas d'utiliser mon paquet, sauf à vos risques et périls!)
- Un serveur correctement relié au grand extérieur (votre LAN ou internet, selon vos besoins. Ça marche en local sur la machine, mais je ne vois pas l'intérêt...)
- Un lecteur de bonne facture sur la machine cliente (VLC ou Mplayer, par exemple)
Allons-y:
sudo apt-get install mpd icecast2
Pour installer le nécessaire.
Ensuite, il va falloir commencer par éditer la configuration de la source, MPD:
sudo nano /etc/mpd.conf
je vous copie ici les parties utiles de mon propre mpd.conf. Veillez a l'adapter a votre configuration!
# MPD CONFIG FILE # For a full description of all config parameters, # Check the mpd man page, "man mpd". ##################### REQUIRED ########################### # You can put symlinks in here, if you like. Make sure # user that mpd runs as (see the 'user' config parameter) # can read the files in this directory # You can put symlinks in here, if you like. Make sure # user that mpd runs as (see the 'user' config parameter) # can read the files in this directory playlist_directory "/var/lib/mpd/playlists" music_directory "/media/usbdisk/Musique" db_file "/var/lib/mpd/mpddb" port "6600" log_file "/var/log/mpd/mpd.log" error_file "/var/log/mpd/errors.log" pid_file "/var/run/mpd/pid" ########################################################## # EVERYTHING ELSE IS OPTIONAL ########################################################## ################# SHOUT STREAMING############################ ############## (bien plus bas dans le fichier!)####################### # # Set this to allow mpd to stream its output to icecast2 # (i.e. mpd is a icecast2 source) # audio_output { type "shout" name "Effraie's Radio" host "effraie.org" port "8000" mount "/mpd.ogg" password "YYYYYYYY" #retenez bien ce mot de passe! il sert a icecast2 quality "5.0" # bitrate "128" format "44100:16:1" # Optional Paramters # user "source" description "ma musikamoi" genre "Mon genre a moi" } # end of audio_output # ########################################################## ################# SECURITY SETTINGS ###################### # user "mpd" # # Set this value if you only have one # address you want to allow connection to. # #bind_to_address "localhost" # # If you want to setup MPD to use # passwords set them here # password "XXXXXXX@read,add,control,admin" # <-- ceci permet de #password "password2@read" #protéger par mot de passe # #l'interface de MPD # Specify permissions used by default when no password is # given by for a connection/client. # # ##########################################
les points importants sont:
- Le paramètre "host" : indiquez votre nom de domaine, ou l'IP publique de la machine ou tournera Icecast.
- Le paramètre "password" : indispensable pour configurer icecast2 ensuite, notez le bien.
- Le paramètre "port" : 8000 convient trés bien, mais vous pouvez le modifier. N'oubliez pas d'ouvrir ce port dans le pare-feu du serveur...
Éditez le fichier de configuration de icecast:
sudo nano /etc/icecast2/icecast.xml
Il s'agit d'un fichier XML, un peu touffu. Ouvrez bien les yeux, ce n'est pas si dur, et il y a peu de choses a modifier.
<icecast> <limits> <clients>10</clients> <-- ici, le nombre d'auditeurs simultanés autorisés ... plus bas, ligne 23, reportez le mot de passe de /etc/mpd.conf: <authentication> <!-- Sources log in with username 'source' --> <source-password>XXXXXXX</source-password> Puis modifiez les paramètres par défaut d'authentification: <!-- Relays log in username 'relay' --> <relay-password>YYYYYYYYYY</relay-password> <!-- Admin logs in with the username given below --> <admin-user>admin</admin-user> <admin-password>ZZZZZZZZ</admin-password> </authentication> ligne 49, votre hôte (doit correspondre à ce que vous avez rentré au paramètre "host" du fichier de configuration de MPD) <hostname>effraie.org</hostname>
Ne touchez pas le reste, sauf a savoir ce que vous faites!
Pour que Icecast2 tourne en tâche de fond, éditez également:
sudo nano /etc/default/icecast2
et modifiez la fin du fichier pour obtenir:
ENABLE=true
Le plus dur est fait!
Relancez Icecast2 et MPD pour tenir compte de vos modifications:
sudo /etc/init.d/mpd restart
sudo /etc/init.d/icecast2 stop
sudo /etc/init.d/icecast2 start
Et créez la base de données de MPD:
sudo mpd --create-db
tout devrait désormais être opérationnel, félicitation!
Vous accéderez a l'interface d'icecast à une adresse du type: http://domaine.org:8000
Pour profitez de tout ça
Vous allez avoir besoin d'un client pour vous connecter a MPD, et gérer la source du flux de musique: je ne peux que vous conseiller :
- GMPC, Sonata ou un autre client graphique si vous vous connectez depuis une machine linux.
- Le fabuleux Pitchfork qui vous permettra de gérer votre webradio depuis n'importe quel accés internet!
Vous allez également avoir besoin d'un lecteur audio capable de lire le flux de icecast2 (dans notre exemple, c'est du ogg, mais on peut aussi configurer icecast pour émettre en MP3). Comme toujours, les très bons VLC et Mplayer s'en tirent très bien, y compris comme plugin d'un navigateur.
Normalement, vous pouvez disposer désormais de vos fichiers musicaux avec une liberté et une souplesse inégalée!
Imaginez: Vous êtes à l'étranger, et vous voulez faire découvrir un morceau rare de votre groupe préféré a une nouvelles connaissance: il suffit de trouver une connexion internet, et si ça lui plaît, vous pourrez écouter votre playlist toute la soirée. D'ailleurs, La connaissance en question pourra, si vous le voulez bien, continuer a écouter votre musique quand vous serez rentrez chez vous.
On ressortira le troll du meilleur lecteur audio quand Amarok ou Listen permettront ça, ok?
Comment ça, Amarok c'est plus facile a configurer?
Merci a Dacaerin qui m'a permit d'installer le tout chez moi!