Sélectionnez votre langue

Voici un tutoriel pour apprendre à créer sa propre Webradio privée !

Il existe plusieurs solutions commerciales et open-source, ici on utilise Icecast qui a fait ses preuves puisque créé et utilisé depuis 1998 !

Comment mettre en place sa Webradio privée en réseau local ?

logo of icecast

Icecast, une solution open source robuste et fiable depuis 1998.

Comment créer sa webradio en réseau local sous Linux ?

Icecast permet d'héberger et de diffuser sa webradio depuis un ordinateur Linux. Pour notre tutoriel, nous nous limitons à un réseau local car diffuser en public pose des questions de cybersécurité (et de droits d'auteurs...), mais il est assez simple de faire le saut une fois la radio mise en place.

Icecast étant un serveur de diffusion uniquement, il faut lui fournir l'audio à diffuser, il existe beaucoup d'options mais nous avons choisi ezstream, qui comme son nom l'indique est facile à prendre en main.

Table des matières

  1. Introduction
  2. Comment fonctionnent icecast et ezstream ?
  3. Etape 1 : mise en place d'icecast.
  4. Etape 2 : préparation de la liste de lecture.
  5. Étape 3 : optionnel : ajouter des jingles et rendre la playlist aléatoire.
  6. Étape 4 : installer ezstream.
  7. Étape 5 : configurer ezstream.
  8. Etape 6 : lancer ezstream et écouter votre radio.
  9. Comment y accéder depuis VLC mobile.
  10. Conclusion.
  11. Ressources.

Note: ce tutoriel a été écrit pour Ubuntu 24.04 LTS

Comment fonctionnent icecast et ezstream ?

Voici un diagramme pour expliquer le fonctionnement d'Icecast et Ezstream

ezstream and icecast functionning

Diagramme expliquant le fonctionnement d'icecast et d'ezstream.

Icecast est un serveur de diffusion uniquement, son travail consiste à diffuser votre flux de musique sur le réseau, à gérer les connexions et les auditeurs.

Le flux quant à lui est géré par un autre programme, en l'occurrence ezstream, mais il en existe d'autres, par exemple "butt (broadcast using this tool)" si vous voulez diffuser depuis votre micro, Mixxx si vous faites du DJ, etc.

Ici on utilise ezstream car on souhaite juste lire une liste de lecture et l'envoyer à icecast. La liste est simplement au format .txt, et répertorie les titres que vous voulez passer, par exemple "/home/utilisateur/Musique/marvingayee.mp3"

Ezstream va donc lire votre liste, aller chercher les .mp3 en question, les décoder et les envoyer à icecast, qui lui va diffuser l'audio sous forme de flux.

Le flux sera ensuite disponible sur "http://votre.adresse.IP:8000/stream.m3u" et peut être écouté depuis n'importe quel appareil disposant d'un navigateur Web, ou même depuis VLC mobile, sur votre TV connectée, etc.

Presque tout se fait en ligne de commande, ce qui limite grandement l'utilisation de ressources de votre ordinateur, par rapport à d'autres solutions en interface graphique.

Etape 1 : mise en place d'icecast.

Sous Ubuntu, ouvrir un terminal avec CTRL+ALT+T.

homepage of icecast

La page d'accueil d'icecast. (avec un stream actif)

Installer icecast et l'activer :

sudo apt install icecast2

Icecast va vous demander des informations de configuration lors de l'installation, pour les mots de passe entrez ce que vous voulez, pour le "hostname" laissez vide ou tapez localhost si vous n'utilisez la webradio qu'en réseau local.

Une fois la configuration terminée, activez et démarrez le service icecast

systemctl enable icecast2

systemctl start icecast2

Pour arrêter icecast, tout simplement :

systemctl stop icecast2

Et pour le désinstaller :

systemctl disable icecast2

puis

sudo apt remove icecast2

Pour vérifier qu'icecast fonctionne bien, rendez vous sur "localhost:8000" dans un navigateur et vous devriez voir la page d'accueil d'icecast !

(Ou l'IP locale de votre machine suivie de :8000 si configuré sur une autre machine du réseau)

Etape 2 : préparation de la liste de lecture.

Ici, nous allons préparer une liste de .mp3 (ou .ogg) à faire envoyer à ezstream puis icecast.

an icecast playlist

 

Supposons que votre musique soit localisée dans le dossier "/home/utilisateur/musique". On utilise la commande :

find /home/utilisateur/musique -name *mp3 -type f > /home/utilisateur/playlists/playlist-icecast.txt

find va chercher tous les fichiers mp3 (on peut remplacer *mp3 par *ogg ou autre) dans ce dossier, et les classer par ordre alphabétique dans une liste qui se trouvera dans /home/utilisateur/playlists/playlist-icecats.txt

Étape 3 : optionnel : ajouter des jingles et rendre la playlist aléatoire.

Mais bon, c'est un peu ennuyant, alors ajoutons un petit jingle toutes les deux chansons, et rendons le tout aléatoire.

kdenlive

On peut utiliser kdenlive pour créer le jingle.

D'abord, mélangeons un peu la playlist.

shuf /home/utilisateur/playlists/playlist-icecast.txt -o /home/utilisateur/playlists/playlist-icecast-random.txt

shuf (shuffle) va mélanger votre liste et la sauvegarder sous le nom "playlist-icecast-random.txt"

Ensuite, on veut ajouter un jingle nommé "monjingle.mp3" toutes les deux chansons.

awk ' {print;} NR % 2 == 0 { print "/home/utilisateur/musique/monjingle.mp3"; }' /home/utilisateur/playlists/playlist-icecast-random.txt > /home/utilisateur/playlists/playlist-icecast-random-avec-jingle.txt

Ici awk va ajouter toutes les deux lignes (NR % 2) une nouvelle ligne avec "/home/utilisateur/musique/monjingle.mp3" et sauvegarder le tout dans un fichier nommé "playlist-icecast-random-avec-jingle.txt".

Vous pouvez modifier la commande pour ajouter d'autres fichiers ou la fréquence des jingles...

Étape 4 : installer ezstream.

sudo apt install ezstream

Étape 5 : configurer ezstream.

On va créer un dossier pour y fournir la configuration d'ezstream

mkdir /home/utilisateur/.ezstream

Ezstream est fourni avec des exemples de configurations dans /usr/share/doc/ezstream/examples, ici on utiliser ezstream-file_template.xml

On va copier ce fichier dans notre .ezstream

cp /usr/share/doc/ezstream/examples/ezstream-file_template.xml /home/utilisateur/.ezstream

Modifiez ezstream-file_template.xml avec un éditeur de texte, ou sudo nano /home/utilisateur/.ezstream/ezstream-file_template.xml et réglez quelques lignes :

password : indiquez votre mot de passe icecast

mountpoint : si vous voulez un nom de stream personnalisé, exemple localhost:8000/mastationdeouf.ogg

filename : indiquez le chemin vers votre playlist !

exemple: /home/utilisateur/playlists/playlist-icecast-random-avec-jingle.txt

Quittez et sauvegardez (avec nano CTRL+X puis Y)

Etape 6 : lancer ezstream et écouter votre radio.

Pour lancer ezstream, et le garder en arrière plan, on ajoute "nohup" avant la commande

nohup ezstream -c /home/utilisateur/.ezstream/ezstream-file_template.xml

Vous pouvez quitter le terminal et ezstream restera actif en arrière plan

Pour quitter ezstream plus tard, d'abord :

pidof ezstream

Notez le pid (chiffre) donné, exemple 12345

kill 12345

Félicitations votre stream est en ligne !

Pour y accéder, allez sur "votre.adresse.ip:8000/stream.ogg" depuis un navigateur, ou l'adresse IP de l'ordinateur sur laquelle icecast est hébergé (pour la connaitre : ip addr show et noter celle qui commence par 192.168.1....

Et si ça ne marche pas avec les mp3 ?

Dans notre cas, il a fallu installer MadPlay pour permettre à ezstream de décoder les mp3 !

sudo apt install madplay

Comment y accéder depuis VLC mobile.

vlc sur mobile

Sur VLC mobile, allez dans "More", puis "New Stream" et entrez l'adresse de votre radio, vous pouvez le sauvegarder dans vos favoris pour un accès rapide.

C'est la même chose sur une TV connectée au réseau local avec VLC !

Conclusion

Nous avons donc vu comment mettre en place une webradio privée sur un réseau local avec icecast et estream. Bien que le tutoriel ait été écrit pour Ubuntu 24.04, il fonctionnera sans problème sous Ubuntu 26.04, Debian, openSUSE (avec un peu de modifications...), ou autre, car icecast est présent depuis les débuts de Linux.

A la place d'ezstream on peut utiliser d'autres solutions comme LibreTime, Mixxx, butt (broadcast using this tool), mais ezstream a l'avantage de tourner un mode texte, ce qui est utile si votre icecast est sur un serveur headless accédé en SSH. (en gros, sans écran depuis un autre ordinateur en ligne de commande). Il est aussi léger en ressources et peut tourner sur des Mini PC ou matériel ancien sans problème ce qui en fait un bon recyclage.

A l'avenir, pourquoi pas mettre en place LibreTime pour avoir un calendrier et planning horaire ! Mais c'est une autre paire de manches et pas le même type de radio.

FAQ

Quelques questions fréquemment posées

radio blabla

Des questions ?

  • Pourquoi utiliser icecast qui date de 1998 et pas...

    Bien sûr il y a mieux, mais icecast fait le travail, est stable et peut être sécurisé facilement si vous ouvrez vos ports. De plus, il est léger en ressources et optimisé, étant en service depuis presque trente ans.

  • Est-ce qu'on peut programmer tel morceau à telle heure ?

    A moins d'avoir une très bonne organisation, pas vraiment. Ezstream se contente de lire une liste de fichiers successivement, pour un programme horaire il existe LibreTime, par contre il est un peu plus complexe à mettre en place et gourmand en ressources. LiquidSoap fait aussi ce travail, mais c'est un langage spécifique à apprendre (il est utilisé par RadioFrance).

  • Et si j'ai vraiment une bonne organisation ?

    kdenlive

    Kdenlive peut être utilisé pour de l'audio.

    Il faudrait en fait préparer des blocs d'une ou deux heures (ou autre) avec vos fichiers de musique, éventuellement vos jingles ou annonces à la fin de la liste. Pour préparer vos blocs, vous pouvez utiliser Audacity, ou Kdenlive qui vous permettent visuellement de mettre les mp3 bout à bout. Ensuite il faut lancer ezstream à l'heure souhaitée (exemple votre playlist démarre à neufs heure du matin), vous pouvez installer la commande "at" pour ça :

    sudo apt install at
    systemctl enable at --now
    at 9:00

    Puis vous entrez votre commande nohup ezstream -c ...

Comme ça votre stream démarrera à neuf heures, et jouera des blocs d'une heure de musique, avec un jingle à la fin de chaque bloc, bien sur pourquoi pas mettre des podcasts ou autre, ce n'est pas beaucoup plus de travail qu'avec LibreTime, mais c'est une manière de faire plus abstraite.

  • Comment rendre la station disponible en public ?

    Il faut ouvrir le port 8000 sur votre routeur (sauf si vous avez utilisé un autre port) et donner une IP fixe à votre ordinateur. Pensez à bien sécuriser icecast avec un mot de passe unique.

  • Comment mettre à jour ma liste de lecture ?

     

    1. Etape 1 : arreter ezstream.
    2. 2 : ajouter vos fichier dans votre dossier musique, puis refaite les étapes 2 et 3.
    3. 3: redémarez ezstream.

     

Ressources

 

Vous souhaitez un déblocage de tablette ou téléphone ? Juste un devis ? Contactez-nous et nous reviendrons vers vous au plus vite !