Il y a quelques années j'ai acheté un amplificateur audio Yamaha, doté d'un port réseau RJ45 qui permet d'accéder à des webradios. Le tout s'appuie sur le service tiers vtuner.com
Le service marchait bien, et puis un beau matin plus rien! Enfin si, un message disant d'aller sur le site de vtuner, sur lequel je me rends compte qu'il faut maintenant payer 3$ par an. J'ai cherché une alternative et j'ai trouvé avec Ycast qui tourne sur mon Raspberry Pi.
Comme j'ai eu du mal à trouver des informations pour mettre en place et faire tourner YCast je vous propose un tutoriel en 🇫🇷.
Autant vous spoiler : c'est gratuit et ça marche aussi bien.
Pourquoi est-ce devenu payant ?
J'ignore la cause d'un tel revirement. Peut-être que vtuner a demandé à Yamaha une rétribution pour l'utilisation de son service du jour au lendemain, on pourrait imaginer que Yamaha n'a pas voulu céder, et c'est donc aux utilisateurs de payer... peut-être aussi que vtuner ne pouvait plus supporter les coûts d'hébergement, je n'en sais rien (et je m'en fou pas mal).
vtuner est également utilisé par d'autres marques que Yamaha : Pioneer, Samsung, Marantz, Denon, etc. Bref, ça a touché beaucoup de monde.
Votre amplificateur est-il encore mis à jour ?
Yamaha s'appuie maintenant sur un autre service tiers gratuit : airable. Pour en profiter il faut mettre à jour le micrologiciel de votre amplificateur.
Globalement tous les modèles d'ampli sortis à partir de 2017 (et plus récents) sont éligibles à une mise à jour pour basculer sur airable. Dans ce cas il suffit de faire la mise à jour en ligne (menu > network setup > update) ou depuis le site de Yamaha.
Par contre votre ampli est sorti entre 2011-2017 et fait partie de cette liste alors c'est mort :
CD-N301, CD-N500, CRX-N560, CX-A5000, HTR-4065, HTR-4066, HTR-4067, HTR-5066, HTR-5067, HTR-6064, HTR-6065, HTR-6067, HTR-7065, HTR-8063, HTR-9063, MCX-A300, MCX-P200, MCX-RC100, NP-S2000, R-N301, R-N500, RX-A1000, RX-A1010, RX-A1020, RX-A1030, RX-A1040, RX-A2000, RX-A2010, RX-A2020, RX-A2030, RX-A2040, RX-A3000, RX-A3010, RX-A3020, RX-A3030, RX-A3040, RX-A710, RX-A720, RX-A730, RX-A740, RX-A810, RX-A820, RX-A830, RX-A840, RX-S600, RX-S600D, RX-V1067, RX-V1071, RX-V1073, RX-V1075, RX-V1077, RX-V2065, RX-V2067, RX-V2071, RX-V2073, RX-V2075, RX-V2077, RX-V3067, RX-V3071, RX-V3073, RX-V3075, RX-V3077, RX-V3900, RX-V473, RX-V475, RX-V477, RX-V500D, RX-V573, RX-V575, RX-V577, RX-V671, RX-V673, RX-V675, RX-V677, RX-V771, RX-V773, RX-V775, RX-V777, RX-V867, RX-V871, RX-Z7, TSR-6750, YMC-700
Aucune mise à jour n'est disponible chez Yamaha (le mien est en gras).
Pas content j'étais :
https://twitter.com/xhark/status/1220672407230390272
C'est vrai, après tout c'est dans les specs du produit... Mais bon, Yamaha a peut être de bonnes raisons comme un incompatibilité technique, l'impossibilité de refabriquer un firmware. On ne saura jamais, peut-être est-ce juste une question de volonté et vu la taille de Yamaha je me dis que les mecs sont sûrement assez bon pour arriver à refaire des firmwares. Surtout que tu ne changes pas d'ampli tous les matins, donc question fidélité je trouve ça assez moyen.
La solution : YCast ✔️
Mais c'était sans compter Micha LaQua, aka milaq, un développeur allemand qui a eu la chouette idée de créer YCast. un programme python qui permet aux amplis qui ne peuvent pas être mis à jour de continuer de fonctionner.
YCast intercepte les requêtes HTTP que votre ampli fait à destination de vtuner et renvoie des webradios en dur (m3u) ou bien fait passerelle avec le site community radio browser. Un site communautaire qui liste toutes les webradios du monde.
Comment ça marche ?
Tout d'abord il faut créer un DNS menteur (DNS spoofing) pour que les requêtes DNS à destination de yradio.vtuner.com partent en réalité vers notre serveur YCast, qui travaille de concert notre reverse proxy porté par avec nginx (ou lighttpd).
La beauté de YCast c'est que tout est fait à la volée. Avant d'aller plus loin vérifiez que votre ampli fait partie des amplis compatibles / testés avec YCast.
On a donc besoin :
- d'un routeur libre (Tomato ou DD-WRT)
- d'un Raspberry Pi (toutes versions, B+ chez moi)
Si vous n'avez pas de routeur sous Tomato / DD-WRT le Raspberry Pi sera suffisant, installez Pi-Hole dessus et ça fera le job.
Pour ce tutoriel nous avons les adresses IP statiques suivantes (ip fixe ou dhcp static) :
- 192.168.0.14: Raspberry Pi
- 192.168.0.254 : routeur tomato
1. Tomato : libérer le port 80
De mon côté c'est mon routeur Tomato qui s'occupe de la résolution DNS pour mes machines avec dnsmasq. Je vous ai déjà parlé de dnsmasq à plusieurs reprises : pour feinter un chromecast, débloquer du contenu Netflix géolocalisé, etc.
Le routeur Tomato va également faire tourner le service nginx que je ne voulais pas installer sur mon Raspberry Pi pour éviter que ça interfère avec Domoticz. Seul YCast tournera sur le Raspberry Pi.
D'abord on change le port 80 d'administration HTTP en 8080 du routeur pour le laisser à nginx :
Menu administration > admin access > HTTP port
Je vous conseille le 8080, faire save puis faire reboot du routeur.
2. Tomato : configurer le DNS menteur
J'ai une clé USB de 1go (FAT32) insérée dans mon routeur et elle est automatiquement montée au démarrage (menu USB & NAS). Celle-ci va stocker le fichier de configuration de nginx pour éviter de solliciter et d'user la partition /jffs (logs nginx toussa).
D'aborder indiquons au routeur qu'il doit résoudre les adresses localement (via son résolveur interne).
Si vous utilisez Tomato :
- Menu Advanced > DHCP/DNS >
- ✅ Use Internal DNS
Si vous utilisez DD-WRT :
- Services > Services > DNSMasq/DNS >
- ✅ Enable
- ✅ Local DNS
Ensuite on ajoute une entrée dnsmasq pour faire pointer *.vtuner.com vers le routeur Tomato grâce au champ "Dnsmasq Custom configuration" :
address=/.vtuner.com/192.168.0.254
note : l'absence d'étoile "*" est normale. Le point "." englobe tous les sous-domaines dans la syntaxe dnsmasq
On n'oublie pas le bouton "save".
Vérifiez depuis votre PC la résolution DNS menteuse :
nslookup yradio.vtuner.com Serveur : r7000 Address: 192.168.0.254 Nom : yradio.vtuner.com Address: 192.168.0.254
Ici c'est bien l'adresse IP du routeur qui est retournée et non l'enregistrement DNS publique, c'est parfait.
3. Tomato : configuration du serveur web (nginx)
Copiez le contenu du fichier ycast-nginx.conf à la racine de la clé USB connectée sur le routeur Tomato puis éditez le fichier pour remplacer 192.168.0.14 par l'IP de votre Raspberry Pi dans ce fichier.
Passons à la configuration de nginx dans le routeur Tomato.
Menu Web Server > Nginx & PHP :
- Basic Settings > ✅ Enable Server on Start
- Advanced Settings >
- ✅ Use user config file
- User config file path : /tmp/mnt/CLE1GO/ycast-nginx.conf
(je me suis basé sur le modèle de configuration nginx Ycast)
Pour tester manuellement la config et le lancement de nginx :
nginx -t -c /tmp/mnt/CLE/ycast-nginx.conf nginx -c /tmp/mnt/CLE/ycast-nginx.conf nginx: the configuration file ... syntax is ok nginx: configuration file ... test is successful
4. Raspberry Pi : installation de YCast
Et c'est parti sous Raspbian (testé avec Raspberry Pi OS/Raspbian 9, 10 et 11).
D'abord il faut installer ces paquets :
sudo apt install python3 python3-pip libtiff5 libopenjp2-7
Pour simplifier l'installation des dépendances de modules python nous allons confier l'installation de YCast à pip3.
sudo pip3 install ycast
Puis on clone le dépôt YCast contenant le code et les exemples :
git clone https://github.com/milaq/YCast.git /home/pi/ycast-yamaha
Note : le dépôt git ne sera utile que pour le fichier stations.example.yml au lancement du service. YCast est en réalité stocké ici (grâce à pip3) :
/usr/local/lib/python3.5/dist-packages/ycast
5. Raspberry Pi : service YCast
Nous créons le service YCast pour systemd et on copie le fichier contenant les radios (stations.yml) :
sudo useradd ycast cd /home/pi/ycast-yamaha/examples sudo cp ycast.service.example /etc/systemd/system/ycast.service cp stations.yml.example ../stations.yml
Remplacez 127.0.0.1 par l'IP locale du Raspberry Pi 192.168.0.14 dans ycast.service pour que le service soit accessible pour le routeur. Si vous utilisez Pi-Hole ce changement sera inutile car tout sera en local sur le RPI.
C'est dans le fichier stations.xml que vous devrez gérer vos favoris et on y trouve quelques exemples dans le fichier livré.
C'est le moment de lancer ycast manuellement et vérifier que tout fonctionne :
python3 -m ycast -d -l 192.168.0.14 -p 8010 -c /home/pi/ycast-yamaha/stations.yml
- -d : pour le debug
- -l 192.168.0.14 : IP du raspberry Pi sur laquelle ycast écoute
- -p 8010 : port d'écoute YCast
Attention : au lancement de ycast apparaît "Debug mode: off". Cette information de debug ne correspond pas au "-d" de ycast mais à flask, le framework python qui fait tourner YCast. Il restera à "off", pas d'inquiétude. Le debug s'affiche en terminal lors du lancement du binaire. En tant que service vous ne verrez pas la sortie donc inutile d'activer le debug.
C'est le moment de tester sur votre ampli 🥳 !
Si tout fonctionne activez le service :
systemctl enable --now ycast.service
En cas de souci...
👉 Vérifiez que le service YCast tourne :
ps aux | grep ^[y]cast ycast 22696 ... /usr/bin/python3 -m ycast -l 192.168.0.14 -p 8010 -c /home/pi/ycast-yamaha/stations.yml
Aussi j'ai fais quelques suggestions sur le GitHub (et une pull-request qui pleure dans son coin...) comme la possibilité de saisir l'ID d'une webradio au lieu de son M3U en dur qui est amené à changer avec le temps.
👉 (maj 06.2024) Vérifiez que le service nginx tourne (sur routeur Tomato dans mon cas) :
ps -w | grep [n]ginx
Dans mon routeur Tomato (USB and NAS > Automount) j'ai ajouté un script dans la section "run after mounting" qui démarre nginx après le montage de la clé USB qui contient la configuration nginx :
ps -w | grep [n]ginx || service nginx start
Mettre à jour YCast
Pour mettre à jour YCast vers une version plus récente (voir les versions chez PyPi)
On stoppe le service :
sudo systemctl stop ycast
puis on met à jour le paquet à l'aide de pip3 :
sudo pip3 install --upgrade ycast
On relance le service et on vérifie la version :
sudo systemctl start ycast && sudo systemctl status ycast
Et quelques liens utiles :
Je mets ici quelques astuces pour RadioBrowser (Syntaxe complète) :
Radio par identifiant :
http://www.radio-browser.info/webservice/json/stations/byid/118153
Recherche par UUID :
https://fr1.api.radio-browser.info/json/stations/byuuid/9607cdda-0601-11e8-ae97-52543be04c81
Radio par nom "couleur3" :
https://fr1.api.radio-browser.info/json/stations/byname/couleur%203
API :
https://api.radio-browser.info/
J'ai traduit quelques termes ici et modifié l'accueil qui démarre sur "mes stations" au lieu de RadioBrowser :
➡️ fichier traduit : server.py (raw)
(transposez mes modifications si une nouvelle version de YCast est sortie après l'écriture de ce tuto).
Bonus : fichier M3U d'exemple
Voici mon fichier d'exemple M3U :
/home/pi/ycast-yamaha/stations.yml
A_Perso: Frisky Chill: http://chill.friskyradio.com/friskychill_mp3_high Tipik (Pure): http://radio.rtbf.be/tipik/mp3-160/fl Virage Radio: http://virageradio.ice.infomaniak.ch/virageradio-natio.mp3 Virgin Radio: http://europe2.lmn.fm/europe2.aac Mint: http://audiostream.rtl.be/mint192 Couleur 3: http://stream.srg-ssr.ch/m/couleur3/mp3_128
Attention les URLs des flux changent avec le temps qui passe, en cherchant "le nom de la radio m3u" dans google vous trouverez facilement la nouvelle URL si elle a changé.
Conclusion
De mon côté je suis très satisfait de cette alternative! Il faut mettre un peu les mains dans le cambouis mais il est aussi possible de n'utiliser qu'un Raspberry si vous n'avez pas de routeur (plus simple).
Sinon, vous pouvez passer par un partage DLNA si vous cherchez juste à lire un M3U rapidement depuis votre box, routeur, NAS ou PC, j'ai testé et ça marche même si c'est peu pratique (cf p.54).
Voilà, j'espère que ce tutoriel vous aura aidé, j'ai essayé de lever tous les points flous et soucis rencontrés. J'espère que votre ampli a donc retrouvé ses webradios 🎵
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
43 commentaires
Bonjour,
J'ai le même modèle d'ampli mais depuis quelques mois il a perdu le réseau. Impossible de le trouver. J'ai essayé en changeant de câble etc. mais rien à faire.
Tu as déjà eu le soucis ? Tu aurais une solution ?
Je vais essayer la maj depuis le site de Yamaha pour commencer mais je suis preneur de tout autre solution.
Merci
Arf, j'ai lu l'article beaucoup trop vite ... L'ampli n'est PAS compatible avec la mise à jour (ça m'étonnait un peu aussi ^_^ ).
Bon plus qu'à espérer qu'une âme charitable est une proposition pour moi. 🤞
Merci pour les infos sur Ycast, j'ai un vieil ampli Onkyo et une minichaine Denon qui sont dans le même cas...
Dans le même style, y a Philips qui a sa branche Streamium qui a été vendue/a coulée et depuis mon NP2900 n'a plus accès à leur serveur et du coup, plus de fonctionnalités radio (qui dépendait de leur serveur donc)...
C'est très moche, mais ça renforce de plus en plus mes convictions de ne JAMAIS prendre d'appareil avec fonctionnalité "Cloud" ou dépendante d'un quelconque serveur...
Grand merci, ça tourne !!! Depuis le temps que ça me trotte dans la tête.
Malgré un pihole à la maison, il a fallu que je définisse les ip en dur (avec 127.0.0.1 ça ne fonctionnait pas).
J'ai fait tourner ça sur mon serveur web local, un reverse proxy Apache, ça fonctionne aussi nickel :
ServerName radioyamaha.vtuner.com
ServerAdmin toto@toto.com
ProxyPass / http://192.168.1.9:8010/
ProxyPassReverse / http://192.168.1.9:8010/
ProxyRequests Off
Ensuite dans /etc/systemd/system/ycast.service
il faut bien spécifier l'ip + le fichier stations.yml
Chez moi ça donne :
ExecStart=/usr/bin/python3 -m ycast -l 192.168.1.9 -p 8010 -c /home/ycast/ycast-yamaha/stations.yml
D'ailleurs on ne pourrait pas caser le fichier yml dans /etc/ycast ça serait peut-être plus propre ? (mais après niveau droits je le sens mal, donc je n'ai pas testé).
@lionel: tu n'arrives à avoir aucune adresse IP? Tu as essayé en IP fixe? Quand tu le mets sur un switch le port s'allume? Tente un reset usine sinon.
@depart: cool, merci pour la version Apache !
Pour le chemin tu peux tester, et attribuer le répertoire au groupe ycast ça devrait le faire
Encore un bon exemple que c'est une connerie d'acheter un ampli "connecté". Les vendeurs de ces produits n'assurent pas (quels que soit le nom).
Ces produits ont des durées de vie très longue mais la couche numérique les rends rapidement obsolete.
Attention, je me suis fait aussi prendre avec TV et ampli audio.
Ma recommendation et ma solution, un décodeur séparé. Dans mon cas un raspberry pi + carte son + Volumio. Ca coute moins de 100€ et c'est très évolutif.
@Mr Xhark: Je suppose que la question adressée à @typhoe était pour moi.
Lorsque je branche mon ampli sur un switch le port s'allume brièvement puis s'éteint (un flash pas plus).
Je teste le reset usine (je vais chercher comment faire).
Merci
@Lionel: oui petite erreur!
Voici pour reset ton ampli chez Yamaha ou bien en vidéo
@Mr Xhark: Bonjour,
J'ai passé quelques heures dessus hier soir sans succès. Reset de l'ampli, reinstallation du dernier firmware par USB, DHCP ou IP Fixe, je suis même allé jusqu'à réinitialiser les paramètres de mon routeur sous Asus-Merlin.
Le fonctionnement est très bizarre :
l'ampli apparait dans l'interface de mon routeur mais impossible de le toucher.
Le voyant du switch s'allume mais je dois parfois débrancher-rebrancher le câble après un démarrage de l'ampli pour le voir s'allumer.
Sur l'afficheur de l'ampli quand je vais dans Network>Informations le terme "Connect" reste et ne passe jamais à "Connected".
Dans les logs du routeur j'ai ça qui se répète mais je n'ai pas vraiment de compétences dans ce domaine et je n'ai pas vraiment compris ce que j'ai pu trouver sur le net :
Jun 8 14:17:36 dnsmasq-dhcp[7279]: DHCPDISCOVER(br0) 00:a0:de:a5:xx:xx
Jun 8 14:17:36 dnsmasq-dhcp[7279]: DHCPOFFER(br0) 192.168.1.75 00:a0:de:a5:xx:xx
Salut,
Perso, j'ai toujours accès gratos (...pour le moment...) à vTuner...
À partir de mon ampli-tuner TEAC...
C'est peut-être uniquement parce que c'est du matos made in "America Great Again" ?
@Lionel: cela signifie que ton ampli demande bien une adresse IP (DHCPDISCOVER) puis ton routeur lui affecte 192.168.1.75 (DHCPOFFER). Cela peut indiquer un problème de soudure sur le port RJ45 de l'ampli, il faudrait l'ouvrir pour voir s'il n'y a pas un faux contact. Tu peux aussi tester de forcer le débit de négociation ethernet sur ton routeur à 10mbps voir si ça change quelque chose. Sinon essayer avec un autre switch voir si le la led reste allumer (aussi un autre port du routeur).
@regis586: c'est possible, tant mieux en tout cas 😃
@Mr Xhark: Je soupçonne un problème matériel également ...
J'ai essayé de me brancher directement sur le routeur sur un port et avec un câble fonctionnels et j'ai eu le même résultat...
Je regarderai ça dès que je pourrai, ça n'a pas l'air trop compliqué d'ouvrir le châssis.
Merci pour tout en tout cas !
PS : l'appli Android est plutôt bien fichue par rapport à celle de Sony qui est vraiment horrible au quotidien.
@Lionel: sur google on trouve le service manual d'amplis similaires dans lequel une procédure d'auto-test pour le réseau est présente https://www.google.com/search?q=Yamaha%20RX-%20%22service%20manual%22
@Mr Xhark: Merci.
J'ai réussi à retirer le "Digital PCB" facilement (sans le service manual). J'ai regardé le connecteur de prêt et ses soudures semblent en bon état tout comme le reste de la carte. Je n'ai pas le matériel pour tester la continuité correctement chez moi, je verrai ça demain au boulot.
Pour info, sa référence est HanRun HR903125C : https://datasheet.lcsc.com/szlcsc/Zhongshan-HanRun-Elec-HR903125C_C95660.pdf
Je ne sais pas s'il peut être remplacé par un autre connecteur ...
La suite au prochain épisode. 😉
Bonjour, etant novice, comment fait on pour modifier le fichier example ? quelque soit la webradio que je met j'ai toujours du reggae du coup je ne pense pas que cela fonctionne chez moi 🙁
@geek: stations.yml en respectant la syntaxe suivante : https://github.com/milaq/YCast/blob/master/examples/stations.yml.example
@Mr Xhark: Bon, j'ai reçu le connecteur et il a été soudé à la place de l'autre.
Le problème ne venait pas de là, j'ai toujours ces lignes dans mes logs (dnsmasq-dhcp DHCPREQUEST DHCPDISCOVER) que je ne sais pas interpréter. Et sur la face avant lorsque je regarde les infos de l'ampli il reste sur "CONNECT' lorsque je branche le câble ethernet.
Également, si j'utilise DHCP sur l'ampli pour avoir une IP j'ai l'impression qu'il cherche sur un sous-réseau "exotique" au lieu des classiques "192.168.0.x" ou "192.168.1.x" etc.
Je poursuis mes investigations. 😉
Bonjour à tous, merci pour toutes ces explications bien détaillées.
De mon côté j'aimerais adapter toute cette procédure à mon équipement et souhaiterait donc avoir un avis éclairé de votre part.
J'ai bien compris tout le process mais souhaiterait simplifier au maximum pour ne pas injecter de nouveau périphérique sur mon réseau.
Etant en possession d'un NAS Synology, voila ce que je souhaite faire :
- utiliser le package DNS Server natif du NAS pour rerouter les requêtes du YAM vers YCAST
- installer l'image docker dispo ici https://github.com/milaq/YCast/issues/13 sur mon NAS pour simplifier le déploiement de YCAST
Cela me permettrait d'heberger toute la solution sur le NAS au lieu d'introduire un RPi sur mon réseau
Pensez vous que j'oublie une étape et que cela puisse fonctionner ?
Va falloir que je mette les mains dans le cambouis concernant le paramétrage de DNS Server, je redoute un peu mais je me dis que ca m'évitera de passer par un RPi.
@Michi: si tu arrives à faire du DNS spoofing avec le Synology et que l'image docker fonctionne, oui ça peut marcher. Mais c'est beaucoup plus simple avec un Raspberry Pi c'est sûr
@Mr Xhark j'ai réussi à amener la procédure au bout et à tout faire fonctionner. J'ai juste un bug sur certaines radios qui ne se lancent pas quand d'autres fonctionnent sans soucis. C'est peut être lié au container que j'ai pris, je vais en essayer un autre. D'autant qu'une mise à jour de Ycast récente vient de sortir. A suivre donc.
@Michi: essaie de lire l'URL dans VLC pour vérifier qu'elle est valide. Parfois y'a des redirection et ça Ycast ne va pas forcément aimer
Que dois-je faire pour reconnecter mon ampli-tuner YAMAHA RX-V475 sur les radios
internet ? Merci à tous de vos réponses!
GILLES
Salut les copains ! 🙂
Bon, je me sens moins seul. Ca m'a énervé un moment et je suis tombé aussi sur ycast.
J'ai pas pris le temps de lire, mais juste un petit post pour dire que ça tourne chez moi directement sur mon routeur. Pas besoin de raspi.
J'utilise un netgear R7800 avec DD-WRT. Installation de python via opkg. Si vous êtes intéressés ou avez des soucis levez la main, j'essaierai de repasser.
Bonjour,
J ai suivi le tuto avec un ampli yamaha ax840, ca ne fonctionne pas.
Quand je suis sur mon pc avec lurl http://radioyamaha.vtuner.com
j obtiens :
https://postimg.cc/JGqSFLSc
est ce que c'est cohérent ?
Note je suis sur un raspberry avec piHole et j 'ai suivi :
http://alriklubbers.com/2020/02/22/install-vtuner-alternative-alongside-pi-hole/
Bonjour,
Merci pour votre tuto que je compte absolument mettre en œuvre.
J'ai un routeur sous OpenWRT. J'ai bien installé nginx qui fonctionne. Mais je n'ai pas d'interface graphique (luci) pour pouvoir suivre exactement le tuto.
Si quelqu'un a suivi ce chemin avec OpenWRT je suis intéressé par son paramétrage.
Merci d'avance.
Cordialement
Quand je lance:
systemctl enable --now ycast.service
il m'est demander sytématiquement le droit d'accès de pi que puis-je faire pour corriger ça?
ps aux | grep ^[y]cast
ycast 1092 0.0 0.3 36912 26648 ? Ss janv.30 0:07 /usr/bin/python3 -m ycast -l 192.168.1.24 -p 8010
Le chemin d'accès au fichier n'est pas montré comme c'est sensé l'être dans le tuto. Et poutant je l'ai bien spécifié dans le fichier service.
@Manani: essaie déjà de le faire fonctionner sans le service. Si tout fonctionne alors c'est que ton chemin ne doit pas être correct (attention aux copier/coller)
@Mr Xhark: Pour l'instant je suis loin de pouvoir tester, de l'autre côté je bataille avec avec NGINX et OpenWRT.
J'ai fait des copier/coller effectivement, je vais reprendre depuis le début tranquillement.
En fait ça semble bien côté Raspberry, il fallait juste l'option "su -k"
sudo -k systemctl enable --now ycast.service
pi@RASPBERRYPI:~ $ ps aux | grep ^[y]cast
ycast 2418 0.0 0.3 36916 26540 ? Ss janv.31 0:11 /usr/bin/python3 -m ycast -l 192.168.1.24 -p 8010 -c /home/pi/ycast-denon/stations.yml
Normal le point d'interrogation?
Comment puis-je vérifier le fonctionnement à ce stade?
Merci.
@Manani: le "sudo -k" demande le mot de passe à chaque fois en ignorant le cache, cela veut dire que vous avez peut-être saisi un mauvais mot de passe. Pour vérifier que ça fonctionne il faut aller sur http://:8010, quelque chose comme ça doit apparaître :
Bonjour,
Bonne nouvelle j'arrive à afficher ip:8010
J'en suis très heureux. Je parviens aussi à éditer le fichier stations.yml via un espace web.
En revanche le service ne se lance pas automatiquement au démarrage:
[code] $ systemctl status ycast
● ycast.service - YCast internet radio service
Loaded: loaded (/etc/systemd/system/ycast.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-02-09 18:45:56 CET; 1min 41s ago
Process: 493 ExecStart=/usr/bin/python3 -m ycast -l 192.168.1.24 -p 8010 -c /home/pi/ycast-denon/stations.yml (code=exited,
Main PID: 493 (code=exited, status=1/FAILURE)
févr. 09 18:45:55 RASPBERRYPI python3[493]: self.address_family), handler)
févr. 09 18:45:55 RASPBERRYPI python3[493]: File "/usr/lib/python3.7/socketserver.py", line 452, in __init__
févr. 09 18:45:55 RASPBERRYPI python3[493]: self.server_bind()
févr. 09 18:45:55 RASPBERRYPI python3[493]: File "/usr/lib/python3.7/http/server.py", line 137, in server_bind
févr. 09 18:45:55 RASPBERRYPI python3[493]: socketserver.TCPServer.server_bind(self)
févr. 09 18:45:55 RASPBERRYPI python3[493]: File "/usr/lib/python3.7/socketserver.py", line 466, in server_bind
févr. 09 18:45:55 RASPBERRYPI python3[493]: self.socket.bind(self.server_address)
févr. 09 18:45:55 RASPBERRYPI python3[493]: OSError: [Errno 99] Cannot assign requested address
févr. 09 18:45:56 RASPBERRYPI systemd[1]: ycast.service: Main process exited, code=exited, status=1/FAILURE
févr. 09 18:45:56 RASPBERRYPI systemd[1]: ycast.service: Failed with result 'exit-code'[/code]
@Manani: ça ressemble fort à un port déjà utilisé. Changer de port ou tue le process qui utilise ce port
J'ai modifie le service en suivant ce site: https://pc1mh-weblog.blogspot.com/2019/08/how-to-vtuner-alternative-for-yamaha.html
Plus aucun problème au redémarrage.
J'ai abandonné NGINX pour pi-hole. Les tests web sont ok. Mais l'ampli ne parvient pas à récupérer les stations; même en arrêtant le DHCP et en pointant directement pi.
Depuis hier je parviens à récupérer les stations. C'est très loin d'être rapide, 1 min voire plus. Pour l'instant aucun son ne sort, ça tourne en boucle. Mais j'avance 🙂
Installation sur Ubuntu 20.04 : impeccable ! Fonctionne parfaitement ! Merci Mr Xhark !
IP LAN : 192.168.1.20
IP localhost : 127.0.0.1
1 - Modifier à "no" la valeur de DNSStubListener dans le fichier /etc/systemd/resolved.conf
DNSStubListener=no
2 - Supprimer le fichier (lien) /etc/resolv.conf
3 - Éditer /etc/resolv.conf et y mettre les 2 serveurs de noms : l'adresse localhost et l'adresse de la box
nameserver 127.0.0.1
nameserver 192.168.1.1
4 - Pour que le /etc/resolv.conf ne soit pas modifiable par systemd :
chattr +i /etc/resolv.conf
5 - Relancer resolved :
systemctl restart systemd-resolved
6 - Installer dnsmasq :
apt-get install dnsmasq
7 - modifier /etc/dnsmasq.conf pour y ajouter l'adresse LAN sur vtuner.com et modifier quelque paramètres :
address=/.vtuner.com/192.168.1.20
no-dhcp-interface=enp4s0
cache-size=0
no-negcache
8 - Relancer dnsmasq :
systemctl restart dnsmasq
9 - Installation de nginx
apt install nginx
10 - Modification du fichier de configuration /etc/nginx/sites-available/ycast-nginx.conf
11 - Création du lien dans sites-enabled :
cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/ycast-nginx.conf
12 - Relance de nginx :
systemctl restart nginx
13 - Installation YCast :
apt install python3 python3-pip libtiff5 libopenjp2-7
pip3 install ycast
git clone https://github.com/milaq/YCast.git /home/ycast-yamaha
useradd ycast
cp /home/ycast-yamaha/examples/ycast.service.example /etc/systemd/system/ycast.service
14 - remplacer 127.0.0.1 par 192.168.1.20
15 - Création du fichier pour les bookmarks des stations :
cp /home/ycast-yamaha/examples/stations.yml.example /home/ycast-yamaha/mystations.yml
16 - Éditer le fichier mystations.yml et y mettre les stations préférées :
17 - Pour le démarrage de Ycast au démarrge du PC et démarrage du service :
systemctl enable ycast.service --now
18 - Sur l’ampli, configurer une IP fixe, mask, gateway et dns :
IP = 192.168.1.32
mask = 255.255.255.0
gateway = 192.168.1.1
dns = 192.168.1.20
Bonne écoute !
@Sergio06: merci pour ton retour, j'ai mis en forme ton guide, tu peux nous en dire plus ? tu as installé ça sur quelle distribution / version ? et quel ampli utilises-tu ?
@Mr Xhark:
Merci pour la mise en forme, c'est effectivement plus lisible.
J'ai fait l'installation sur un PC en Ubuntu 20.04 (version LTS, supportée pendant 5 ans).
Quant à l'ampli, c'est un Yamaha N-R500
Tout ça pour 3/4$, faut vraiment avoir du temps et de l'énergie à perdre ...
@AlbertE: ça n'est rien à côté du temps perdu pour lire cet article si ça ne vous intéresse pas 🙂 on ne force personne à faire des économies hein 😄
Bonjour,
N'ayant pas de routeur sous tomato, mais une simple livebox, cela peut il fonctionner ?
je ne comprends pas trop le changement de port pour ngix.
En vous remerciant.
@DiM: Bonjour, il est possible de tout faire fonctionner sur une machine Linux type Raspberry Pi ou autre, mais une Livebox ne permet ni de faire tourner dnsmasq en mode personnalisé ni nginx