Categories: GoogleLinuxTutoriel

Streamez vos musiques iPhone/Mac via AirPlay sur une Google Home

Aujourd’hui, nous allons voir comment utiliser faire fonctionner AirPlay de l’iPhone ou Mac sur une Google Home, Chromecast, Sonos et tout appareil utilisant le protocole UPnP.

Utilisateur d’iPhone, je me suis confronté à un problème avec ma Google Home : il est impossible de caster/streamer du son venant de l’application Apple Music sur des enceintes Google Home. En effet, iOS (réputé pour être un assez fermé) ne permet pas cela sur son application à la différence de Spotify ou Youtube.

Après quelques recherches sur GitHub, j’ai pu prendre connaissance du projet de philippe44 nommé AirConnect. Le but est simple : Détecter les sources UPnP*/Sonos/Chromecast en local et créer virtuellement des appareils AirPlay pour chaque source détectée. Cela permet de rendre détectable les Chromecast ou autres appareils sur AirPlay !

Conquis ? Passons à la suite !

*UPnP = Universal Plug and Play, protocole permettant de connecter et simplifier la connexion d’appareils informatiques entre eux.

Matériel requis

  • Un ordinateur connecté au réseau local tournant sur une distribution Linux, Windows, Mac OS, Solaris ou Free BSD. Nous nous concentrerons sur Debian pour cet article. Raspberry PI bienvenue ! ;
  • Minimum un Google Home/Chromecast et/ou un appareil utilisant UPnP ;
  • Un iPhone ou un Mac pour utiliser le protocole AirPlay.

Installation sur Debian 10

Pour cet article, j’installerai AirConnect sur Debian 10, les commandes sont globalement identique pour les autres distributions Linux. Si vous souhaitez avoir un détail pour Windows, n’hésitez pas à me le faire savoir.

On ouvre son Terminal ou on se connecter à sa machine en SSH puis on se positionne dans son dossier d’utilisateur

cd

On télécharge sur le GitHub de philippe44, le projet Air Connect en version 32 bits ou 64 bits. Pour savoir lequel choisir, vous pouvez vérifier l’architecture utilisé par votre système d’exploitation en utilisant la commande suivante « uname -p ». Si le résultat est x86_64 = 64 bits sinon 32 bits.

wget https://github.com/philippe44/AirConnect/raw/master/bin/airupnp-x86 -O airupnp
Version 32 bits

OU

wget https://github.com/philippe44/AirConnect/raw/master/bin/airupnp-x86-64 -O airupnp
Version 64 bits

Nous allons donner les droits nécessaires pour exécuter le logiciel.

chmod +x airupnp

Puis, on va démarrer AirConnect en créant le fichier de config. Il pourra être modifié par la suite.

./airupnp -i config.xml
On attend que le script s'exécute puis s'arrête seul

Vous devriez voir apparaître vos appareils sous cette forme pendant l’exécution du script.

[21:38:31.790099] AddCastDevice:664 [0x137e930]: adding renderer (Chambre)
[21:38:31.792001] AddCastDevice:664 [0x137f2c8]: adding renderer (Salon)
[21:38:31.812721] AddCastDevice:664 [0x137fc60]: adding renderer (Enceintes)
[21:38:49.238502] AddCastDevice:664 [0x13805f8]: adding renderer (Télé)

Si c’est le cas, tout semble ok ! Après que le script se soit arrêté tout seul, nous allons configurer l’ouverture d’AirConnect au démarrage de votre serveur/ordinateur.

sudo nano /etc/systemd/system/airupnp.service
Création du fichier de démarrage

Puis on vient y ajouter les éléments suivants, en prenant soin de modifier le nom de votre utilisateur sur votre machine : /home/XXX. Vous pouvez également y ajouter des fonctions supplémentaires (voir en bas de l’article)

[Unit]  
Description=AirUPnP bridge  
After=network-online.target  
Wants=network-online.target  

[Service]  
ExecStart=/home/XXX/airupnp -l 1000:2000 -Z -x /home/XXX/config.xml  
Restart=on-failure  
RestartSec=30  

[Install]  
WantedBy=multi-user.target   
L'option -l permet d'obtenir une compatibilité avec le matériel Sonos & Heos. -Z permet de désactiver le mode intéractif (utile lorsqu'il tourne en fond). -x permet d'indiquer la localisation du fichier de configuration.

On active le service sur systemctl

sudo systemctl enable airupnp.service
On remplacera enable par disable pour désactiver le service au démarrage.

Puis on le démarre 🙂

sudo service airupnp start
On remplacera start par stop pour arrêter manuellement le service

Ça y est, vos périphériques Chromecast sont visible depuis AirPlay !

AirConnect prend également en charge les groupes d’enceintes que vous pouvez créer sur l’application Google Home

Personnalisations et configuration

Paramètres disponibles sur l’exécutable

à ajouter après ./airupnp

-v : Fixer le volume par défaut des appareils (défaut : 0,5) ;
-b [IP]:[PORT] : Déterminer la carte réseau à utiliser pour rechercher les périphériques ainsi que le port d’écoute UPnP(à utiliser si vous posséder deux cartes réseaux ethernet, port par défaut UPnP 49152) ;
-u : Définir la version maximal UPnP à utiliser ;
-a [PORT]:[NOMBRE] : Permet de définir les ports que le logiciel utilisera pour virtualiser les ports AirPlay. Exemple -a 450:150 : AirConnect utilisera les ports de 450 à 600 ;
-x : Permet d’indiquer la localisation du fichier de configuration format xml ;
-Z : Option à utiliser pour utiliser le service en fond (non-intéractif)

Personnalisation du fichier config.xml

Si vous le souhaitez, vous pouvez venir modifier des paramètres pour chaque enceinte (nom affiché, latence, codec, metadata, …). Pour ce faire, il suffit de modifier le fichier config.xml disponible dans le même dossier de l’exécutable.

On peut retenir les paramètres suivants :

latency [RTP]:[HTTP] -f : Permet de définir la mémoire tampon. A utiliser lorsque le son est mauvais ou coupé. RTP = Nombre de millisecondes pour la mémoire tampon de AirPlay (défaut 0). HTTP = Nombre de millisecondes pour la mémoire tampon HTTP (utilisé pour Sonos) ;
name : Permet de modifier le nom de l’enceinte affiché sur AirPlay ;
codec mp3:[bt]/flc:[bt]/wav/pcm : Format de l’audio utilisé ainsi que le bitrate (pour les formats MP3/FLC). Flac semble recommandé mais celui-ci utilise plus de ressources. Préféré MP3 en cas de ralentissement de votre machine
metadata : active/désactive l’envoi les metadatas sur fichier MP3 ;
artwork : permet de mettre une image à afficher sur le lecteur (format URL).

Pour aller plus loin, vous pouvez consulter la page d’accueil du projet AirConnect : https://github.com/philippe44/AirConnect

Quentin

Recent Posts

Installer un Ubuntu portable sur un périphérique USB sans clé USB supplémentaire (UEFI)

Cette article s'adresse à vous si et seulement si : Vous souhaitez avoir une distribution…

2 mois ago

Vérifier que votre logiciel torrent passe bien par votre VPN

Salut à tous ! Vous êtes nombreux à utiliser un VPN afin de protéger votre vie…

3 ans ago

Free bride le débit sur Facebook et Netflix

Abonnés Free, avez-vous remarqué que vous ne pouviez pas regarder tranquillement une vidéo sur Facebook…

3 ans ago

Guide : Téléchargement direct, P2P, HADOPI, VPN …

Tout d’abord, bonne année à tous ! Pour commencer cette année, je vous propose un petit…

3 ans ago

Comment obtenir vos jeux vidéo moins cher de façon légale

Suite à mon article sur G2A, Instant-Gaming, et autres marketplaces illégaux, je vous donne mes…

3 ans ago

Comment choisir son opérateur internet xDSL ?

Il fut un temps où France Telecom avait le monopole sur les lignes téléphoniques en…

4 ans ago