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
[pastacode lang=”bash” manual=”cd” message=”” highlight=”” provider=”manual”/]
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.
[pastacode lang=”bash” manual=”wget%20https%3A%2F%2Fgithub.com%2Fphilippe44%2FAirConnect%2Fraw%2Fmaster%2Fbin%2Fairupnp-x86%20-O%20airupnp” message=”Version 32 bits” highlight=”” provider=”manual”/]
OU
[pastacode lang=”bash” manual=”wget%20https%3A%2F%2Fgithub.com%2Fphilippe44%2FAirConnect%2Fraw%2Fmaster%2Fbin%2Fairupnp-x86-64%20-O%20airupnp” message=”Version 64 bits” highlight=”” provider=”manual”/]
Nous allons donner les droits nécessaires pour exécuter le logiciel.
[pastacode lang=”bash” manual=”chmod%20%2Bx%20airupnp” message=”” highlight=”” provider=”manual”/]
Puis, on va démarrer AirConnect en créant le fichier de config. Il pourra être modifié par la suite.
[pastacode lang=”bash” manual=”.%2Fairupnp%20-i%20config.xml” message=”On attend que le script s’exécute puis s’arrête seul” highlight=”” provider=”manual”/]
Vous devriez voir apparaître vos appareils sous cette forme pendant l’exécution du script.
[pastacode lang=”bash” manual=”%5B21%3A38%3A31.790099%5D%20AddCastDevice%3A664%20%5B0x137e930%5D%3A%20adding%20renderer%20(Chambre)%0A%5B21%3A38%3A31.792001%5D%20AddCastDevice%3A664%20%5B0x137f2c8%5D%3A%20adding%20renderer%20(Salon)%0A%5B21%3A38%3A31.812721%5D%20AddCastDevice%3A664%20%5B0x137fc60%5D%3A%20adding%20renderer%20(Enceintes)%0A%5B21%3A38%3A49.238502%5D%20AddCastDevice%3A664%20%5B0x13805f8%5D%3A%20adding%20renderer%20(T%C3%A9l%C3%A9)%0A” message=”” highlight=”” provider=”manual”/]
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.
[pastacode lang=”bash” manual=”sudo%20nano%20%2Fetc%2Fsystemd%2Fsystem%2Fairupnp.service” message=”Création du fichier de démarrage” highlight=”” provider=”manual”/]
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)
[pastacode lang=”bash” manual=”%5BUnit%5D%20%20%0ADescription%3DAirUPnP%20bridge%20%20%0AAfter%3Dnetwork-online.target%20%20%0AWants%3Dnetwork-online.target%20%20%0A%0A%5BService%5D%20%20%0AExecStart%3D%2Fhome%2FXXX%2Fairupnp%20-l%201000%3A2000%20-Z%20-x%20%2Fhome%2FXXX%2Fconfig.xml%20%20%0ARestart%3Don-failure%20%20%0ARestartSec%3D30%20%20%0A%0A%5BInstall%5D%20%20%0AWantedBy%3Dmulti-user.target%20%20%20″ message=”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.” highlight=”” provider=”manual”/]
On active le service sur systemctl
[pastacode lang=”bash” manual=”sudo%20systemctl%20enable%20airupnp.service” message=”On remplacera enable par disable pour désactiver le service au démarrage.” highlight=”” provider=”manual”/]
Puis on le démarre 🙂
[pastacode lang=”bash” manual=”sudo%20service%20airupnp%20start” message=”On remplacera start par stop pour arrêter manuellement le service” highlight=”” provider=”manual”/]
Ça y est, vos périphériques Chromecast sont visible depuis AirPlay !

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
Commentaires récents