Dans l’article précédent, j’ai détaillé comment transformer un Raspberry Pi en lecteur Spotify. Mais tout le monde n’utilise pas Spotify, Deezer, Qobuz ou Google Music. Voici comment installer un serveur de streaming pour vos mp3 sur un Raspberry Pi.
Matériel nécessaire
Installation
Comme bien souvent, on va partir d’un Raspberry Pi sur lequel est déjà installé Raspbian Lite et auquel je me connecte en SSH avec Putty.
On va commencer par installer NodeJS et git :
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash - sudo apt install -y nodejs git
Puis nous installons mStream comme ceci :
git clone https://github.com/IrosTheBeggar/mStream.git
cd mStream
npm install --only=production
sudo npm link
On peut ensuite démarrer mStream avec la commande suivante :
mstream
Votre serveur de streaming est maintenant accessible depuis votre PC ou votre smartphone à l’adresse de votre Raspberry Pi suivi du port 3000. Exemple : http://192.168.1.179:3000/
Sauf qu’il n’y a aucune musique présente… Revenons donc au terminal dans lequel on a lancé mStream. Faites un petit CTRL+C pour tuer le serveur. Puis créez un dossier musique dans /home/pi :
mkdir /home/pi/musique
Copiez ensuite votre musique dans ce dossier avec WinSCP.
Ensuite, on va relancer mStream en le faisant pointer sur notre dossier musique :
mstream -m /home/pi/musique/
Et on retourne à l’adresse précédente sur son PC (ou son smartphone) : http://192.168.1.xxx:3000/
Joie ! Tout fonctionne ! Ou pas… Si votre navigateur ne trouve pas le serveur mStream, une petite configuration est nécessaire.
Tapez mstream -w pour lancer le Wizard. Vous devrez naviguer dans le Wizard avec les flèches et la touche Entrée.
Allez dans Server Options :
Puis allez dans Address :
Entrez l’adresse IP 0.0.0.0 et appuyez sur entrer
Revenez en arrière avec Go Back :
Terminez avec Save and Exit :
Essayez à nouveau de démarrer mStream avec l’option indiquée par le Wizard :
mstream -j /home/pi/mStream/save/default.json
Normalement, le serveur mstream est maintenant accessible depuis votre pc ou votre smartphone à l’adresse de votre Pi sur le port 3000. Exemple : http://192.168.1.xxx:3000/
Pour finir, on va faire en sorte que le serveur se lance seul au démarrage du Raspberry Pi. On crée un petit script qui contiendra nos réglages de répertoire de musique :
echo 'mstream -m /home/pi/musique/' > /home/pi/mstream.sh ATTENTION : Si vous avez utilisé le Wizard pour rendre mstream accessible, utilisez cette commande : echo 'mstream -m /home/pi/musique/ -j /home/pi/mStream/save/default.json' > /home/pi/mstream.sh chmod +x /home/pi/mstream.sh
Ensuite, on édite le fichier /etc/rc.local pour le lancement automatique :
sudo nano /etc/rc.local
Et on ajoute la ligne suivante avant le exit(0) :
bash /home/pi/mstream.sh
On sauvegarde le fichier rc.local avec CTRL+x, puis Y et entrée pour confirmer le nom de fichier.
Un petit reboot (sudo reboot) pour vérifier que mstream se lance bien au démarrage… Et normalement, si vous avez bien suivi les instructions, vous pourrez écouter votre musique à l’adresse précédente (http://192.168.1.179:3000/ dans mon cas).
Bonus : Si vous ajoutez winamp dans l’URL (http://192.168.1.179:3000/winamp), le lecteur aura le look de ce bon vieux media player !!
Enfin, une petite capture d’écran du rendu sur mobile :
C’est tout pour ce tuto. Vous savez maintenant faire un serveur de streaming avec un Raspberry Pi. Si vous avez des questions, n’hésitez pas à les poser en commentaire. Je réponds généralement rapidement à toutes les demandes d’aide.
18 commentaires
Poupou · 15 octobre 2019 à 3 h 42 min
Bonjour, très interessant et une solution qui semble très simple, serait il possible de faire jouer sa playlist par un Google home ?
En utilisant une commande vocale au Google home qui pourrait aller chercher la musique sur ce serveur ?
Merci de votre retour …
Cordialement
makerhelp · 16 octobre 2019 à 10 h 37 min
Bonjour,
Avec la solution que je présente dans l’article, ce n’est pas possible. Le plus simple serait de transformer un Raspberry Pi en Chromecast Audio. Il me semble qu’il existe des projets dans le genre.
Mais autant se simplifier la vie en prenant directement une bonne enceinte qui supporte directement Google Home ou Alexa :
https://amzn.to/2Bikhd7
https://amzn.to/2MIQi3z
https://amzn.to/33zr4ve
https://amzn.to/2BcxgNw
POUPOU · 25 octobre 2019 à 21 h 14 min
Bonjour
je suis en train de suivre votre tuto et je bloque dès la commande
npm install –only=production qui me renvoie la réponse -bash: npm: command not found
pourriez vous m’aider ?
makerhelp · 26 octobre 2019 à 8 h 32 min
Bonjour, si vous voyez le message « npm: command not found », c’est que nodejs n’est pas installé. Vous avez raté ces 2 lignes de la 1ère étape du tuto :
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs git
npm est le gestionnaire de paquet de Node JS (Node Package Manager). Pour vérifier qu’il est bien installé, tapez
npm --version
et npm doit normalement vous afficher son numéro de version.
POUPOU · 26 octobre 2019 à 11 h 53 min
Bonjour, merci pour votre suivi … je n’avais pas zappé les 2 premières lignes mais effectivement pas de réponse à la commande npm –version.
j’ai donc lu à la fin de la commande curl et j’ai fait sudo apt install mais sans git à la fin et cela a bien fonctionné.
petite question est il possible de faire en sorte que mStream puisse lire des musique se trouvant sur un chemin réseau ? et si oui comment le configurer ?
vd · 2 novembre 2019 à 19 h 35 min
En début de tuto, Il manque la commande suivante:
sudo apt install -y curl
Pour le noobs
ayato · 18 novembre 2020 à 1 h 59 min
Bonjour,
Je n’arrive pas à accéder à la page du lecteur depuis mon pc
Ai-je loupé quelque chose ?
makerhelp · 18 novembre 2020 à 8 h 08 min
Bonjour
Première chose à vérifier : L’IP de votre Raspberry Pi. Est-ce que vous appelez la bonne IP depuis votre PC ? Si vous avez un doute, jetez un oeil à cet article. Sinon, réessayez les différentes étapes et copier-coller les éventuelles erreurs dans un commentaire.
Je vais vérifier de mon côté si ce tuto fonctionne toujours ou si les évolutions de mStream ont entraîné des changements.
makerhelp · 23 novembre 2020 à 18 h 11 min
J’ai trouvé la solution et j’ai mis à jour le tuto. Regardez la partie sur le Wizard puis modifier votre fichier /home/pi/mstream.sh pour qu’il prenne en compte le fichier de configuration du Wizard. Tout devrait marcher après ça et un petit reboot.
Thomas · 22 novembre 2020 à 13 h 20 min
Bonjour,
merci pour ce tuto, malheureusement impossible d »acceder a l »interface web depuis une autre machine du reseau local, « l »adresse IP n »autorise pas la connexion » pourtant c »est bien la bonne IP. Jai teste d »installer le serveur sur d »autres machine pas de probleme pour y acceder mais avec mon raspberry pi 4 impossible meme avec Ubuntu a la place de raspbian.
makerhelp · 23 novembre 2020 à 9 h 08 min
Bonjour, je vais faire un test de mon côté sur une installation toute fraiche de Raspbian sur Raspberry Pi 4 et je reviens vers vous.
makerhelp · 23 novembre 2020 à 18 h 10 min
J’ai trouvé la solution et j’ai mis à jour le tuto. Regardez la partie sur le Wizard puis modifier votre fichier /home/pi/mstream.sh pour qu’il prenne en compte le fichier de configuration du Wizard. Tout devrait marcher après ça et un petit reboot.
jm · 3 décembre 2020 à 14 h 01 min
bjr, j’ai installé sur un raspberry mstream, (wifi sur mon reseau), de mon pc (wifi) pas de probleme j’accede bien avec l’url, mais sur mon tel android l’url ne marche pas, une idée ?
makerhelp · 3 décembre 2020 à 15 h 08 min
Bonjour, le tel android est-il relié au même WIFI que le raspberry ?
jm · 3 décembre 2020 à 15 h 45 min
oui
makerhelp · 3 décembre 2020 à 16 h 00 min
Comme URL, vous prenez l’IP ou le hostname du Raspberry ? Si c’est l’IP, je n’ai plus d’idée. Si c’est le hostname, essayez avec « .local ». Exemple : http://raspberrypi.local:3000/
jm · 3 décembre 2020 à 16 h 19 min
je mets l’ip…
makerhelp · 3 décembre 2020 à 16 h 23 min
Alors là, si le serveur est accessible depuis un PC en WIFI et pas depuis un téléphone avec le même WIFI et si ce n’est pas un problème de résolution de nom de domaine, désolé je ne vois pas…