Créer une webradio avec Icecast et MediaBox404 sous Ubuntu

Ca faisait longtemps! Un how-to pour Ubuntu!

Avec l’association Place Libre nous avons l’intention de diffuser une radio sur le web. J’ai donc longuement investigué pour vous mitoner cet article (mais non c’est pas vrai)! Voici comment émettre une webradio depuis un serveur sous Ubuntu grâce à Icecast et MediaBox404.

Commençons par voir rapidement le fonctionnement d’une webradio.

Le principe est relativement simple, on crée une playlist qui contient la suite de morceaux à diffuser: c’est la programmation de la radio. Pour ce faire nous utiliserons MediaBox404, une interface web pour gérer simplement la programmation de votre radio. Ce programme est développé par l’équipe de la radio associative Erreur404.

MediaBox404

Les morceaux indiqués dans la playlist sont diffusés en continue par un serveur de streaming. Nous utiliserons Icecast pour remplir ce rôle. Ces deux logiciels sont libres (GPL).

Icecast

Les gens voulant écouter la radio se connectent au serveur de stream via leur lecteur audio favoris (exemple: Amarok, Rhythmbox, Winamp, RealPlayer, …) via une playlist fournie par Icecast (au format m3u).

Allez c’est parti! On commence par installer icecast2:

Première opération, activer le lancement au démarrage du serveur icecast, pour cela éditez le fichier /etc/default/icecast2 (par exemple sudo gedit /etc/default/icecast2) et changez cette ligne:

par

# Edit /etc/icecast2/icecast.xml and change at least the passwords. # Change this to true when done to enable the init.d script ENABLE=true

Passons maintenant à la configuration, remplacez /etc/icecast2/icecast.xml par ce qui suit (sauvegardez d’abord l’acutel quelque part, il vous permettra de configurer le stream beaucoup plus en profondeur si le coeur vous en dit).

Bien entendu changez MOT-DE-PASSE A REMPLACER par vos mots-de-passes top secret à vous. Il vous faudra aussi remplacer le contenu de la balise hostname par votre adresse IP ou votre nom-de-domaine (si vous n’avez pas d’IP fixe regardez du coté de DynDNS) pour que l’on puisse écouter votre radio d’autre par que depuis votre ordinateur.

Dans ce même fichier vous pouvez de nombreux autres paramètres (port, nombres d’auditeurs maximum, …).

La configuration d’icecast terminée, lancons le:

Si tout va bien vous pouvez accéder à la “Icecast Status Page” en tapant http://localhost:8000/ dans votre navigateur.

Nous avons de quoi émettre à échelle globale, installons de quoi gérer notre station: MediaBox404.

MediaBox404 est une application web, nous devons donc installer un serveur WWW (Apache 2) avec PHP, MySQL et quelques modules. Quelques librairies sont égalements nécéssaires. Hop!

Avant toute chose rendez-vous sur http://localhost/phpmyadmin/ et connectez-vous (par défaut: root comme nom d’utilisateur et pas de mot de passe). Si ce n’est pas déjà fait rendez-vous dans la section Privilèges et donnez un mot-de-passe à l’utilisateur root (raison de sécurité).

Créez ensuite une base de donnée nommée mediabox404 (depuis la page d’accueil) et un utilisateur du même nom auquel vous assignerez un mot-de-passe (retenez le nous en aurons besoin plus tard!), aucun droit global mais tous les droits sur la base mediabox404 que l’on vient de créer (depuis la section Privilèges de PhpMyAdmin).

Récupérons maintenant la dernière version de MediaBox404 sur son site officiel.

On décompresse l’archive récupérée dans le dossier /var/www/ (répertoire racine du serveur web):

Un dossier du type mediabox404.version (ex: mediabox404.1.2) est créé dans /var/www/, pour plus de commodités renommez le en mediabox404 tout court.

Pour que MediaBox404 fonctionne il faut modifier la configuration de PHP. Ouvrez le fichier /etc/php4/apache2/php.ini changez memory_limit = 8M ; Maximum amount of memory a script may consume (8MB) par memory_limit = 32M ; Maximum amount of memory a script may consume (8MB) puis register_globals = Off par register_globals = On et enfin magic_quotes_gpc = On par magic_quotes_gpc = Off

Redémarrez apache pour que les changements soient pris en comptes:

Il faut aussi donner les droits en écriture sur quelques répertoires:

Rendez-vous maintenant avec votre navigateur sur la page http://localhost/mediabox404/installation/ pour débuter l’installation.

Normalement l’étape 1 ou les vérifications sont effectuées se passe bien, cliquez sur “Next”, si vous l’acceptez cochez la case “I Accept the GPL License” et cliquez sur “Next”.

Il va maintenant falloir entrer la configuration de base de votre radio. Entrez ”mediabox404″ comme utilisateur MySQL (MySQL User Name) et le mot-de-passe que vous lui avez associé dans PhpMyAdmin tout à l’heure (MySQL Password).

Remplissez ensuite “Préférences Mediabox404”. Si votre ordinateur dispose d’un nom de domaine indiquez le dans “URL de votre site Mediabox404” (ex: http://mon-site.com/mediabox404) ce qui vous permettra d’accèder a l’administration de votre radio à distance ou encore de la gérer avec un ami. Vous pouvez indiquer /tmp comme chemin vers la poubelle.

Complétez le reste des renseignements (adresse courriel, nom et mot-de-passe de l’administrateur, description de la radio). Ne vous souciez pas des champs concernant MRTG. Attention il n’y a pas de page qui indique la fin de l’installation (c’est assez déroutant), s’il n’y a pas eu d’erreur (elles sont indiquées en rouge) c’est bon.

Une fois terminé, supprimez le dossier /var/www/mediabox404/installation.

Rendez-vous maintenant dans l’admin de MediaBox404. On va devoir lui indiquer où il doit aller chercher les morceaux à diffuser. Cliquez sur Outils -> Dossiers pour l’import -> New et indiquez le ou les répertoire(s) contenant les MP3 et OGG à diffuser. Après ça, cliquez sur “Gérer les utilisateurs” et cliquez sur le chemin de votre répertoire dans dossiers disponibles pour le faire basculer dans appartenant à. Allez ensuite dans Import/Retag audio et cliquez sur Import audio pour importer tout les morceaux du dossier.

Rendez-vous ensuite dans Edition de playlist et créez une playlist principale obligatoire. Vous pourrez ensuite créer des jingles, pubs etc qui passeront à intervals réguliers.

Voilà pour la configuration de mediabox404. Il ne nous reste plus qu’à faire le lien entre icecast et mediabox404, pour ce faire nous devons compiler et configurer deux modules: celui de stream et celui de programmation que vous trouverez eux aussi sur le site officiel. Nous utiliserons GCC 3 au lieu de GCC 4 (compilateur par défaut sous Ubuntu) car les programmes ne sont pas encore compatibles avec ce dernier.

Commençons par compiler et installer le module de programmation:

Créons son fichier de configuration /etc/mediabox404_prg.xml contenant ceci:

L’unique chose à faire c’est d’entrer le mot-de-passe de l’utilisateur MySQL mediabox404 créé tout à l’heure entre les balises <Password> et </Password> de la section SQL.

On lance le module: mediabox404_prg /etc/mediabox404_prg.xml > /dev/null &

Passons au module de stream:

Nous devons créer un fichier configuration pour lui aussi. Nous le nommerons /etc/stream404.xml et voici son contenu:

Vous ne devez modifier que les paramètres écrits en majuscules. Pour approfondir la configuration consultez le fichier stream404.xml disponible dans le répertoire conf des sources de stream404.

Créez ensuite un fichier /etc/playlist.txt contenant les chemins vers quelques MP3 qui seront diffusés en cas de plantage d’un des composants. Et youpla, on lance le module de stream stream404 -c /etc/stream404.xml > /dev/null &

Vous pouvez dès maintenant écouter votre radio, la playlist est accessible à l’adresse http://localhost:8000/stream.m3u Consultez http://localhost:8000/ pour voir l’état du serveur Icecast et http://localhost/mediabox404 pour gérer la programmation.

Dernière opération: les scripts de démarrages. On va s’arranger pour que notre radio démarre en même temps que l’ordinateur. Note: ces scripts sont basés sur ceux du Wiki de MediaBox404 et sont distribués sous licence GPL.

Le premier script lancera en boucle stream404 (il semblerait qu’il ai tendance à planter). Il se nomme /usr/local/bin/run-stream404 :

Exemple de commandes pour créer le script avec gedit:

Puis le script d’init du module de stream /etc/init.d/stream404 :

Enfin le script d’init du module de programmation /etc/init.d/mediabox_prg :

Il faut maintenant rendre ces scripts éxecutables, indiquer qu’ils doivent être démarrés au boot et et créer le répertoire pour les logs:

Et voilà votre radio fin prête!! Dernière petite note, si vous ne disposez que d’une petite connexion n’hésitez pas à passer par PeerCast pour diffuser votre radio par Peer to Peer.

PeerCast

Bonne diffusion 😉

Cet article est largement inspiré de installer MediaBox404 sur Debian Sarge du Wiki MediaBox404.

Merci à Albert.

Leave a Reply