Installation Ycast 1.0.0
Heureux propriétaire d'un Ampli home cinéma Yamaha VX-R473, j'ai eu la désagréable surprise de ne plus pouvoir écouter les radios internet. Lorsque sélectionne NET-Radio sur mon V-473 Yamaha, l'écran indique "Allez sur vtuner.com pour obtenir un accès complet". Je suis donc allé sur le site VTuner et pour utiliser désormais ce serveur je dois payer 3$ par an. Etant pris par le temps, je me suis exécuté en me disant que j'ai 1 an pour contourner ce problème.
Yamaha était un partenaire de vtuner pour transférer les stations de radio Internet au récepteur Yamaha. Pour ajouter des stations que vous deviez aller sur le site vtuner.com avec un navigateur et ajouter des stations dans une liste.
Mais hélas, Vtuner n’est plus gratuit et Yamaha n’a pas jugé utile de faire la mise à jour du firmware pour les "anciens" amplis Yamaha, comme le RX-V473 et bien d'autres pour résoudre ce problème.
Après des heures de recherche sur le net, je n'ai trouvé qu'une seule solution à ce jour. Ycast.
En visitant ce site, vous avez la liste des appareils compatibles.
Attention : la mise en place de cette applicatif requiert de très sérieuses compétences sous Linux Ubuntu.
Toute l'installation se fait par ligne de commandes. Pas de "Cliquodrome".
Je m'y suis repris 5 fois avant d'obtenir quelque chose pleinement opérationnel.
Je me suis aussi appuyé sur le site PC1MH techlog, d'où je tire une grande partie de ce tuto.
J'avais une petite machine qui ne me servait plus : Un Raspberry Pi3. A l’époque je l'avais acheté sur Amazon où ils proposaient un "Starter Kit", CAD un kit complet avec carte mémoire de 16 Go, alimentation et boîtier. A cet achat, j'avais ajouté un kit de refroidissement car je l'utilisais avec Kodi. Donc pour moins de 60 € vous avez votre propre serveur.
Alors vous allez dire que dépenser 60 € pour en économiser 3, c'est pas rentable. Oui, vous avez raison; mais par principe... Je vous dirais aussi que vous aurez la possibilité d'ajouter des radios qui ne sont pas référencées sur Vtuner.
Vous pouvez aussi l'installer sur un serveur de Machines Virtuelles au lieu du Rasperry
Je suis parti d'une installation d'Ubuntu Server 18.04.3.
Sur le site Ubuntu, télécharger l'image disque contenant la pré-installation pour Raspberry.
Bien suivre les instructions pour transférer l'image disque sur la carte mémoire.
Si vous n'utilisez pas de Raspberry, n'importe quelle version d'Ubuntu server 18.04.3 fera l'affaire. N'installer que le strict minimum avec juste l'option "ssh server".
N'installez pas Webmin. Il requiert Python dans une version non compatible avec YCast.
Faites les mises à jour système :
Activer le compte root
Valider et saisir le mot de passe.
Création du mot de passe root :
Valider et saisir le mot de passe.
Confirmer le mot de passe.
Le compte root est activé.
Fermer la session et reconnectez-vous avec le compte root.
Attribuer une IP fixe à notre machine si vous n'avez pas pu le faire lors de l'installation.
Vous avez toutes les info ici
Pour notre exemple, j'utilise l'adresse IP 192.168.2.102
Pi-hole est un serveur DNS qui servira de leurre au RX-473 de façon à ce lorsqu'il tentera de se connecter au serveur vtuner.com en réalité il se connectera à cette machine contenant le serveur Ycast.
Laissez-vous guider. Laissez les options par défaut sauf les 2 exceptions listées ci-dessous.
A la fin de l'installation, notez bien le mot de passe pour l'administration. Il vous sera impossible de le récupérer plus tard.
Pi-hole a un serveur Web intégré pour pouvoir le contrôler et l'administrer. Nous avons besoin du port 80 pour YCast et nous devons donc changer le port du serveur Web Pi-hole en port 88.
Modifier : server.port = 80 en server.port = 88
Sauvegardez
Maintenant il faut créer les entrées DNS pour que le RX-473 pointe bien vers le serveur Ycast.
Ajouter ces 3 lignes :
Ne pas oublier de remplacer 192.168.2.102 par l'adresse de votre machine serveur YCast.
Sauvegardez
Redémarrez le serveur
NB : Si vous avez votre propre serveur DNS, vous n'aurez aucun soucis à intégrer le domaine vtuner.com avec les deux sous-domaines nécessaires. Ainsi, vous n'aurez pas besoin de modifier les paramètres DNS de l'ampli Yamaha.
Connectez-vous avec le compte root
On teste si Pi-Hole fonctionne correctement
Vous devez obtenir ceci :
Vous pouvez afficher la page d'administration de pi-hole depuis un navigateur :
YCast requiert Python 3.
Si vous testez l'installation de python avec
vous obtenez : Command 'python' not found, but....
Surtout ne rien faire
Re tester l'installation de python avec
vous obtenez :
C'est ce dont nous avons besoin.
Par sécurité, nous allons créer un alias qui substituera la commande python par python3
Saisir :
Sauvegardez.
Redémarrez le serveur
Connectez-vous avec le compte root
Nous avons 2 dépendances Linux à installer avant de lancer l'installation de YCast :
Installation de YCast
Si vous avez des erreur notées de couleur ocre commençant par
c'est que vous n'êtes pas sur la réelle session root, mais en mode sudo. Connectez-vous avec le compte root et relancez la commande.
Enfin, Ycast est installé. Il y a encore des choses à faire :
On va le créer dans le dossier root.
Insérer le texte suivant
Sauvegardez.
Moment de vérité. On va d'abord tester si le serveur démarre sans erreur.
Si tout se passe bien, vous devez obtenir
Pas de panique si le prompt n'est pas revenu. Pressez les touches ctrl+c pour stopper le process.
Reste à déclarer le démarrage du serveur YCast au boot
Insérer le texte suivant
Sauvegardez
Test de lancement de Ycast
Si vous avez le prompt sans erreur, tout est OK. Vous pouvez contrôler le fonctionnement avec
Vous obtiendrez :
Pour finir, on met à jour le démarrage automatique des services
Redémarrez
Connectez-vous avec le compte root
On vérifie que le service est bien démarré.
Vous devez obtenir ceci
Et voilà, c'est terminé pour la partie serveur.
Côté Ampli,
Connectez-vous à son interface web et modifiez les paramètres réseau de façon à ce que le serveur DNS primaire pointe sur l'IP de votre serveur Ycast.
NB. Cette manipulation n'est pas à faire si vous avez paramétré votre propre serveur DNS
Ensuite depuis Net Radio de l'Ampli, dans vos favoris vous devez retrouver la liste des genres et radios saisis dans le fichier stations.yml.
Pour personnaliser la liste des stations favorites, modifiez le fichier /root/ycast/stations.yml en respectant la syntaxe.
Un peu d'histoire
Yamaha était un partenaire de vtuner pour transférer les stations de radio Internet au récepteur Yamaha. Pour ajouter des stations que vous deviez aller sur le site vtuner.com avec un navigateur et ajouter des stations dans une liste.
Mais hélas, Vtuner n’est plus gratuit et Yamaha n’a pas jugé utile de faire la mise à jour du firmware pour les "anciens" amplis Yamaha, comme le RX-V473 et bien d'autres pour résoudre ce problème.
Après des heures de recherche sur le net, je n'ai trouvé qu'une seule solution à ce jour. Ycast.
En visitant ce site, vous avez la liste des appareils compatibles.
Attention : la mise en place de cette applicatif requiert de très sérieuses compétences sous Linux Ubuntu.
Toute l'installation se fait par ligne de commandes. Pas de "Cliquodrome".
Je m'y suis repris 5 fois avant d'obtenir quelque chose pleinement opérationnel.
Je me suis aussi appuyé sur le site PC1MH techlog, d'où je tire une grande partie de ce tuto.
Le matériel
J'avais une petite machine qui ne me servait plus : Un Raspberry Pi3. A l’époque je l'avais acheté sur Amazon où ils proposaient un "Starter Kit", CAD un kit complet avec carte mémoire de 16 Go, alimentation et boîtier. A cet achat, j'avais ajouté un kit de refroidissement car je l'utilisais avec Kodi. Donc pour moins de 60 € vous avez votre propre serveur.
Alors vous allez dire que dépenser 60 € pour en économiser 3, c'est pas rentable. Oui, vous avez raison; mais par principe... Je vous dirais aussi que vous aurez la possibilité d'ajouter des radios qui ne sont pas référencées sur Vtuner.
Vous pouvez aussi l'installer sur un serveur de Machines Virtuelles au lieu du Rasperry
L'installation
Je suis parti d'une installation d'Ubuntu Server 18.04.3.
Sur le site Ubuntu, télécharger l'image disque contenant la pré-installation pour Raspberry.
Bien suivre les instructions pour transférer l'image disque sur la carte mémoire.
Si vous n'utilisez pas de Raspberry, n'importe quelle version d'Ubuntu server 18.04.3 fera l'affaire. N'installer que le strict minimum avec juste l'option "ssh server".
N'installez pas Webmin. Il requiert Python dans une version non compatible avec YCast.
Faites les mises à jour système :
Code TERMINAL :
sudo apt-get update sudo apt-get upgrade
Activer le compte root
Code :
sudo -s
Valider et saisir le mot de passe.
Création du mot de passe root :
Code :
passwd
Valider et saisir le mot de passe.
Confirmer le mot de passe.
Le compte root est activé.
Fermer la session et reconnectez-vous avec le compte root.
Attribuer une IP fixe à notre machine si vous n'avez pas pu le faire lors de l'installation.
Vous avez toutes les info ici
Pour notre exemple, j'utilise l'adresse IP 192.168.2.102
Installation de Pi-hole
Pi-hole est un serveur DNS qui servira de leurre au RX-473 de façon à ce lorsqu'il tentera de se connecter au serveur vtuner.com en réalité il se connectera à cette machine contenant le serveur Ycast.
Code TERMINAL :
apt install curl curl -sSL https://install.pi-hole.net | bash
Laissez-vous guider. Laissez les options par défaut sauf les 2 exceptions listées ci-dessous.
- Select upstream DNS provider -> Sélectionner "Custom" et saisir l'adresse de votre serveur DNS habituel de votre réseau.
- Pi-hole relies on third party lists in order to block ads. -> Tout déselectionner. On en a pas besoin.
A la fin de l'installation, notez bien le mot de passe pour l'administration. Il vous sera impossible de le récupérer plus tard.
Pi-hole a un serveur Web intégré pour pouvoir le contrôler et l'administrer. Nous avons besoin du port 80 pour YCast et nous devons donc changer le port du serveur Web Pi-hole en port 88.
Code TERMINAL :
nano /etc/lighttpd/lighttpd.conf
Modifier : server.port = 80 en server.port = 88
Sauvegardez
Maintenant il faut créer les entrées DNS pour que le RX-473 pointe bien vers le serveur Ycast.
Code TERMINAL :
nano /etc/dnsmasq.d/vtuner.conf
Ajouter ces 3 lignes :
Code TEXT :
address=/radioyamaha.vtuner.com/192.168.2.102 address=/radioyamaha2.vtuner.com/192.168.2.102 address=/vtuner.com/192.168.2.102
Ne pas oublier de remplacer 192.168.2.102 par l'adresse de votre machine serveur YCast.
Sauvegardez
Redémarrez le serveur
NB : Si vous avez votre propre serveur DNS, vous n'aurez aucun soucis à intégrer le domaine vtuner.com avec les deux sous-domaines nécessaires. Ainsi, vous n'aurez pas besoin de modifier les paramètres DNS de l'ampli Yamaha.
Connectez-vous avec le compte root
On teste si Pi-Hole fonctionne correctement
Code TERMINAL :
nslookup radioyamaha.vtuner.com
Vous devez obtenir ceci :
Code TEXT :
Server: 127.0.0.1 Address: 127.0.0.1#53 Name: radioyamaha.vtuner.com Address: 192.168.2.102
Vous pouvez afficher la page d'administration de pi-hole depuis un navigateur :
Code TEXT :
http://192.168.2.102:88/admin
Installation de YCast
YCast requiert Python 3.
Si vous testez l'installation de python avec
Code TERMINAL :
python --version
vous obtenez : Command 'python' not found, but....
Surtout ne rien faire
Re tester l'installation de python avec
Code TERMINAL :
python3 --version
vous obtenez :
Code TEXT :
Python 3.6.8
C'est ce dont nous avons besoin.
Par sécurité, nous allons créer un alias qui substituera la commande python par python3
Code TERMINAL :
nano /etc/profile.d/00-aliases.sh
Saisir :
Code TEXT :
alias python=python3
Sauvegardez.
Redémarrez le serveur
Connectez-vous avec le compte root
Nous avons 2 dépendances Linux à installer avant de lancer l'installation de YCast :
Code TERMINAL :
apt-get install libjpeg8 python3-pip
Installation de YCast
Code TERMINAL :
pip3 install ycast
Si vous avez des erreur notées de couleur ocre commençant par
Code TEXT :
The directory '/home/administrateur/.cache/pip/http' or its parent directory is not owned by the current...
c'est que vous n'êtes pas sur la réelle session root, mais en mode sudo. Connectez-vous avec le compte root et relancez la commande.
Enfin, Ycast est installé. Il y a encore des choses à faire :
- Créer le fichier avec nos stations favorites
- Démarrer automatiquement YCast au boot
Création du fichier avec nos stations favorites
On va le créer dans le dossier root.
Code TERMINAL :
mkdir/root/ycast nano /root/ycast/stations.yml
Insérer le texte suivant
Code TEXT :
Electronic: Deep House Lounge: http://198.15.94.34:8006 Ibiza Sonica: http://s1.sonicabroadcast.com:7005/stream Bassdrive: http://50.7.98.106:8200 SomaFM Fluid: http://ice1.somafm.com/fluid-128-mp3 Chillout: Joint Radio: http://radio.jointil.net:9998 SomaFM DEF CON Radio: http://ice1.somafm.com/defcon-256-mp3 SomaFM Drone Zone: http://ice1.somafm.com/dronezone-256-mp3 SomaFM Mission Control: http://ice1.somafm.com/missioncontrol-128-mp3 The Jazz Groove: http://west-mp3-128.streamthejazzgroove.com Radionomy Downbeat: http://streaming.radionomy.com/TempoOfTheDownbeat1 Casual: 76Radio: http://192.240.102.133:9566/stream SomaFM Beat Blender: http://ice1.somafm.com/beatblender-128-mp3 Jazz Radio Electro Swing: http://jazz-wr04.ice.infomaniak.ch/jazz-wr04-128.mp3 SomaFM Groove Salad: http://ice1.somafm.com/groovesalad-256-mp3 SomaFM Lush: http://ice1.somafm.com/lush-128-mp3 Allzic Radio R&B: http://allzic10.ice.infomaniak.ch/allzic10.mp3 The UK 1940s Radio Station: http://91.121.134.23:8100/1
Sauvegardez.
Moment de vérité. On va d'abord tester si le serveur démarre sans erreur.
Code TERMINAL :
python3 -m ycast -c /root/ycast/stations.yml
Si tout se passe bien, vous devez obtenir
Code TEXT :
2019-10-18 10:42:13 INFO: YCast (1.0.0) server starting * Serving Flask app "ycast.server" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off
Pas de panique si le prompt n'est pas revenu. Pressez les touches ctrl+c pour stopper le process.
Reste à déclarer le démarrage du serveur YCast au boot
Code TERMINAL :
nano /etc/systemd/system/ycast.service
Insérer le texte suivant
Code TEXT :
[Unit] Description=YCast internet radio service After=network.target [Service] Type=simple ExecStart=/usr/bin/python3 -m ycast -c /root/ycast/stations.yml [Install] WantedBy=multi-user.target
Sauvegardez
Test de lancement de Ycast
Code TERMINAL :
systemctl start ycast
Si vous avez le prompt sans erreur, tout est OK. Vous pouvez contrôler le fonctionnement avec
Code TERMINAL :
systemctl status ycast
Vous obtiendrez :
Code TEXT :
ycast.service - YCast internet radio service Loaded: loaded (/etc/systemd/system/ycast.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2019-10-18 12:11:47 UTC; 14s ago Main PID: 7057 (python3) Tasks: 1 (limit: 4604) CGroup: /system.slice/ycast.service └─7057 /usr/bin/python3 -m ycast -c /root/ycast/stations.yml oct. 18 12:11:47 ycast python3[7057]: 2019-10-18 12:11:47 ERROR: Station configuration format error: while scanning a plain scalar oct. 18 12:11:47 ycast python3[7057]: in "/root/ycast/stations.yml", line 2, column 23 oct. 18 12:11:47 ycast python3[7057]: found unexpected ':' oct. 18 12:11:47 ycast python3[7057]: in "/root/ycast/stations.yml", line 2, column 31 oct. 18 12:11:47 ycast python3[7057]: Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details. oct. 18 12:11:47 ycast python3[7057]: * Serving Flask app "ycast.server" (lazy loading) oct. 18 12:11:47 ycast python3[7057]: * Environment: production oct. 18 12:11:47 ycast python3[7057]: WARNING: This is a development server. Do not use it in a production deployment. oct. 18 12:11:47 ycast python3[7057]: Use a production WSGI server instead. oct. 18 12:11:47 ycast python3[7057]: * Debug mode: off
Pour finir, on met à jour le démarrage automatique des services
Code TERMINAL :
systemctl enable ycast.service
Redémarrez
Connectez-vous avec le compte root
On vérifie que le service est bien démarré.
Code TERMINAL :
systemctl status ycast
Vous devez obtenir ceci
Code TEXT :
ycast.service - YCast internet radio service Loaded: loaded (/etc/systemd/system/ycast.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2019-10-18 09:16:06 CEST; 3h 43min ago Main PID: 1289 (python3) Tasks: 1 (limit: 1056) CGroup: /system.slice/ycast.service └─1289 /usr/bin/python3 -m ycast -c /root/ycast/stations.yml Oct 18 09:16:06 ubuntu systemd[1]: Started YCast internet radio service. Oct 18 09:16:11 ubuntu python3[1289]: 2019-10-18 07:16:11 INFO: YCast (1.0.0) server starting Oct 18 09:16:11 ubuntu python3[1289]: * Serving Flask app "ycast.server" (lazy loading) Oct 18 09:16:11 ubuntu python3[1289]: * Environment: production Oct 18 09:16:11 ubuntu python3[1289]: WARNING: This is a development server. Do not use it in a production deployment. Oct 18 09:16:11 ubuntu python3[1289]: Use a production WSGI server instead. Oct 18 09:16:11 ubuntu python3[1289]: * Debug mode: off
Et voilà, c'est terminé pour la partie serveur.
Côté Ampli,
Connectez-vous à son interface web et modifiez les paramètres réseau de façon à ce que le serveur DNS primaire pointe sur l'IP de votre serveur Ycast.
NB. Cette manipulation n'est pas à faire si vous avez paramétré votre propre serveur DNS
Ensuite depuis Net Radio de l'Ampli, dans vos favoris vous devez retrouver la liste des genres et radios saisis dans le fichier stations.yml.
Pour personnaliser la liste des stations favorites, modifiez le fichier /root/ycast/stations.yml en respectant la syntaxe.