My Habita Installer

Fonctions

Multimédia

Enceintes, téléviseurs, bibliothèque, Spotify, radios et podcasts.

Menu Multimédia du site et de l'application Android : votre musique, vos films et séries, les radios et les podcasts, Spotify, et toutes les enceintes et téléviseurs de la maison, au même endroit.

État : construit et testé par logiciel (faux appareils, faux services, enceintes et téléviseur simulés, vraies bibliothèques de fichiers produits par ffmpeg). Rien n'a encore été essayé avec de vraies enceintes, un vrai téléviseur, un compte Spotify ou un adaptateur Bluetooth. Les premiers essais réels feront apparaître des corrections, comme pour la sécurité.

Ce que fait le multimédia

Onglet Contenu
Accueil Ce qui joue dans la maison (pochette, commandes, volume), vos enceintes, « Reprendre » (films, épisodes, podcasts commencés), écoutés récemment, favoris, playlists, nouveautés de la bibliothèque
Musique Spotify (playlists, titres likés, albums, artistes suivis, écoutés récemment, artistes préférés, podcasts suivis), la bibliothèque de My Habita (albums, artistes, titres, genres), vos playlists My Habita, vos favoris
Films et séries Bibliothèque vidéo : reprendre, ajoutés récemment, par genre, toutes les séries avec l'épisode à suivre ; fiche d'un film (affiche, fond, résumé, pistes audio et sous-titres)
Radios et podcasts Radios du monde entier (annuaire libre Radio Browser : les plus écoutées en France, genres, recherche, vos radios) ; podcasts (abonnements, derniers épisodes, populaires, recherche dans Apple Podcasts, ajout par l'adresse d'un flux RSS)
Télévision Téléviseurs avec télécommande (pavé directionnel, volume, chaînes, lecture, touches de couleur, chiffres), applications (Netflix, YouTube, Prime Video, Disney+, CANAL+…), entrées HDMI, saisie de texte, association
Enceintes et écrans Enceintes My Habita (groupes d'enceintes diffusés et synchronisés par le serveur, visibles dans Spotify et AirPlay), tous les lecteurs par pièce (état, volume, groupes Sonos), ajout des intégrations multimédias
Réglages Bibliothèque (dossiers, analyse, fiches des films), Spotify (application de la maison, compte de chacun), adresse du serveur, conversion vidéo, volume de départ, pays des radios, lecteurs masqués

La barre de recherche cherche dans toutes les sources à la fois (bibliothèque, Spotify, radios, podcasts).

Le mini-lecteur en bas de toutes les pages montre ce qui joue (sur ce navigateur, ce téléphone, ou la sortie choisie) ; un toucher ouvre le panneau En cours : grande pochette, avance dans le titre, aléatoire et répétition, volume, file d'attente, et Enceintes : volume de chacune, « + » pour faire jouer la même chose sur une autre enceinte, « − » pour la retirer, « Écouter ailleurs… » pour transférer la lecture. Sur le site, la flèche à droite de la barre la masque : une pastille (égaliseur animé et flèche vers le haut) reste en bas à droite pour la faire revenir ; le choix est mémorisé par navigateur.

Sur le téléphone, l'écran En cours tient sans défiler, comme dans Spotify : pochette, titre et « J'aime », barre d'avance fine, commandes, un seul volume, puis en bas où ça joue (toucher : le panneau des enceintes) et la file d'attente. Panneau des enceintes : celles qui jouent (volume de chacune), « Ce téléphone », les enceintes My Habita, les autres ; toucher une enceinte y passe la musique, le « + » l'ajoute à l'écoute en cours (plusieurs pièces à la fois), le ✓ la retire.

Où lire : la sortie

Le bouton « Lire sur… » choisit la sortie de ce navigateur ou de ce téléphone (mémorisée sur l'appareil) :

  • Ce navigateur / Ce téléphone : le son (ou le film) sort de l'appareil que vous tenez. Sur le téléphone, la lecture continue écran éteint, avec la notification et les commandes de l'écran verrouillé ; le son part sur ce qui est relié au téléphone, enceinte ou casque Bluetooth compris.
  • Une ou plusieurs enceintes (cases à cocher) : la même musique part sur chacune. Des enceintes Sonos sont groupées automatiquement (son parfaitement synchronisé) ; entre systèmes différents (Google + DLNA…), un léger décalage est possible.
  • Une enceinte My Habita : un groupe d'enceintes de marques différentes que le serveur fait jouer ensemble, synchronisées (voir plus bas).
  • Un téléviseur ou un Chromecast pour les films et séries (« Sur un écran… » sur la fiche d'un film).

My Habita prévient quand la sortie ne convient pas (film sur une enceinte, Spotify dans le navigateur) et propose d'en choisir une autre.

Mise en route

1. Les enceintes et téléviseurs

Multimédia → Enceintes et écrans → « Ajouter des enceintes et des écrans » ouvre directement l'ajout de l'intégration :

Intégration Pour Remarques
Google Cast Enceintes Google Home / Nest, Chromecast, téléviseurs « Chromecast intégré », groupes Google Home Trouvés tout seuls sur le réseau. Pochette, durée, position, avance, fin de titre (file d'attente)
Sonos Enceintes, barres de son, Amp, Port, groupes Sonos Une adresse IP suffit pour toute la maison. Groupes natifs, favoris et playlists Sonos, entrée TV et ligne, graves/aigus, son nocturne
DLNA / UPnP Téléviseurs (option DLNA), amplis audio-vidéo, Kodi, lecteurs réseau Lit la musique et les films de My Habita ; ajout automatique désactivé par défaut (les ordinateurs s'annoncent aussi)
Android TV / Google TV Télécommande des TV Sony, Philips, TCL, Hisense, Chromecast avec Google TV, Shield, Freebox Pop/Ultra… Association par un code affiché sur la TV
LG webOS Télécommande et applications des TV LG Accord à donner sur la TV la première fois ; allumage par le réseau (Wake-on-LAN)
Samsung Télécommande et applications des TV Samsung (Tizen) Accord « Autoriser » sur la TV ; le volume se lit par l'intégration DLNA du même téléviseur
Bluetooth et sortie audio du serveur Enceintes et casques Bluetooth appairés au serveur, prise jack / HDMI / carte son USB du serveur Demande un adaptateur Bluetooth sur le serveur et sudo myhabitactl audio-install (voir Exploitation)
Spotify Connect Tout appareil où Spotify est ouvert (téléphones, ordinateurs, enceintes) Apparaît une fois le compte Spotify relié

Un même téléviseur vu par deux intégrations (Chromecast pour la lecture, Android TV pour la télécommande) est regroupé dans l'onglet Télévision.

2. La bibliothèque (musique, films, séries)

Multimédia → Réglages → Bibliothèque → « Ajouter un dossier » (sélecteur des dossiers du serveur), en précisant ce qu'il contient : Musique, Films, Séries ou Vidéos diverses. My Habita analyse les fichiers (ffprobe), puis surveille les dossiers : un nouveau fichier est indexé dans la minute, et une analyse complète repasse toutes les 6 heures (réglable).

Rangement conseillé :

  • Musique : Artiste/Album/01 - Titre.flac — les étiquettes des fichiers priment ; pochette cover.jpg / folder.jpg dans le dossier de l'album, ou intégrée au fichier. Formats : MP3, FLAC, AAC/M4A, ALAC, OGG/Opus, WAV, AIFF…
  • Films : Titre (2019)/Titre (2019).mkv ou Titre.2019.1080p.BluRay.mkv ; affiche poster.jpg, fond fanart.jpg ; sous-titres à côté (Titre (2019).fr.srt).
  • Séries : Série/Saison 1/Série - S01E02 - Titre.mkv (ou 1x02, Saison 1/02 - Titre.mkv) ; affiche poster.jpg dans le dossier de la série.

NAS : montez le partage sur le serveur, par exemple sudo myhabitactl nvr-storage nfs nas:/volume1/musique musique (monté sous /srv/myhabita/musique) ou … smb //nas/films utilisateur films, puis ajoutez ce dossier. Un dossier débranché ou un NAS éteint ne vide jamais l'index : ses titres reviennent au prochain passage. Les dossiers personnels (/home) sont invisibles pour le moteur (protection systemd).

Fiches des films et séries (facultatif) : titre français, résumé, genres, affiche et fond, titres et résumés des épisodes, par The Movie Database (gratuit) : créez un compte sur themoviedb.org, Paramètres → API, demandez une clé « Developer », collez-la dans Réglages → Bibliothèque. Seuls le titre et l'année des films partent pour la recherche ; rien sur ce que vous regardez.

Conversion à la volée : un fichier que l'écran ne sait pas lire est converti par ffmpeg (MKV → MP4 sans réencoder l'image ; HEVC, 10 bits ou 4K → H.264 jusqu'à 1080p par défaut ; FLAC ou Opus → MP3 pour une enceinte qui ne les lit pas). Trois conversions au plus en même temps (le serveur filme aussi les caméras). Les MP4 en H.264 se lisent sans conversion, avec avance rapide immédiate.

Reprise : la position atteinte dans un film, un épisode ou un podcast est gardée pour chaque personne (« Reprendre à 1:12:05 »), qu'il soit lu dans le navigateur, sur le téléphone ou sur un téléviseur. Vu en entier : il disparaît de « Reprendre » ; « Marquer comme vu » sur la fiche.

3. Spotify

Spotify ne permet pas de « télécharger » sa musique : My Habita pilote Spotify (lecture sur un appareil Spotify Connect) et synchronise votre bibliothèque (playlists, titres likés, albums, artistes suivis, podcasts suivis — toutes les 6 heures et à la demande). Le cœur sur un titre Spotify l'ajoute à vos titres likés dans Spotify (et inversement).

Règles de Spotify en 2026, à connaître :

  • l'application Spotify de la maison se crée une fois, par un administrateur, sur https://developer.spotify.com/dashboard, avec un compte Spotify Premium (exigé par Spotify), une adresse de redirection exactement http://127.0.0.1:8888/callback et « Web API » cochée ; son Client ID se colle dans Multimédia → Réglages → Spotify (aucun secret) ;
  • 5 comptes au plus par application : ajoutez l'e-mail Spotify de chaque personne dans « User Management » de l'application ;
  • chaque personne relie son propre compte : Réglages → Spotify → « Relier mon compte Spotify ». Dans le navigateur, Spotify renvoie sur une page « inaccessible » (http://127.0.0.1:8888/callback?code=…) : c'est normal, copiez toute l'adresse et collez-la dans My Habita. Dans l'application Android (Multimédia → Musique), tout se fait seul ;
  • la commande de la lecture demande Spotify Premium pour le compte qui joue ;
  • Spotify ne communique plus aux applications comme My Habita le contenu des playlists dont vous n'êtes pas propriétaire (playlists éditoriales, playlists d'amis), ni les meilleurs titres d'un artiste : elles se lisent quand même (« Lire »), My Habita l'indique.

Où joue Spotify : sur un appareil Spotify Connect (enceinte Google ou Sonos, téléviseur, téléphone ou ordinateur avec Spotify ouvert), qui apparaît dans les lecteurs. Une enceinte de la maison qui porte le même nom dans Spotify lui est associée toute seule (sinon : Réglages → Spotify → Appareils Spotify Connect). Si une enceinte « n'apparaît pas encore dans Spotify », choisissez-la une fois depuis l'application Spotify d'un téléphone (bouton des appareils) ; ensuite My Habita peut y lancer la musique. Spotify ne lit que sur un appareil (ou un groupe d'enceintes) à la fois.

4. Radios et podcasts

Rien à configurer : l'annuaire libre Radio Browser (des dizaines de milliers de radios, sans compte) et les podcasts (recherche dans l'annuaire d'Apple Podcasts, ou n'importe quel flux RSS, même privé). Le cœur ajoute une radio à « Vos radios » ; le « + » d'un podcast vous y abonne (abonnements propres à chaque personne, épisodes relus toutes les 6 heures).

Enceintes My Habita : plusieurs enceintes synchronisées par le serveur

Multimédia → Enceintes et écrans → Nouvelle enceinte (ou le crayon d'une enceinte existante ; les anciennes « zones » en sont devenues). Une enceinte My Habita regroupe des enceintes réelles, de toutes marques (Google, Sonos, DLNA, Bluetooth du serveur…) et apparaît comme une seule enceinte partout : sortie « Lire sur… », application, automatisations, et, si vous le cochez, dans Spotify et AirPlay.

Diffusion :

Mode Fonctionnement
Automatique (par défaut) Groupe Sonos natif si toutes les enceintes sont des Sonos (synchronisation parfaite), sinon synchronisée par My Habita
Synchronisée par My Habita Le serveur décode la musique une seule fois et envoie le même flux (MP3 320 kb/s, cadencé en temps réel) à toutes les enceintes, chacune avec sa propre avance pour compenser son retard ; enchaînement des titres sans blanc ; une enceinte ajoutée en cours d'écoute est aussitôt calée
Séparée Comme avant : chaque enceinte lit de son côté (décalage possible)

Accord des enceintes (mode synchronisé) : chaque enceinte a un décalage (ms) et un volume de départ facultatif. « Enregistrer et lancer l'essai de synchronisation » fait jouer un bip par seconde (plus aigu toutes les 4 s) pendant 30 s sur toutes les enceintes : si une enceinte est en retard sur les autres, augmentez son décalage (par pas de 20 à 50 ms), si elle est en avance, diminuez-le, puis relancez l'essai. La latence (2 s par défaut) est le délai entre la source et le son : elle doit couvrir le tampon des enceintes les plus lentes (Chromecast, DLNA) ; l'augmenter rend la lecture plus sûre, la pause et le changement de titre arrivent d'autant plus tard. Le volume de l'enceinte My Habita agit sur le flux commun (les écarts entre pièces restent) ; chaque enceinte garde aussi son propre volume.

Visible sur le réseau (mode synchronisé) :

  • Spotify Connect : l'enceinte apparaît sous son nom dans la liste des appareils de Spotify (téléphone, ordinateur) ; le son reçu part sur toutes ses enceintes. Récepteur librespot (libre), installé par sudo myhabitactl audio-install. Compte Spotify Premium obligatoire ; attention : en 2026, Spotify refuse le son aux comptes créés après décembre 2024 avec les récepteurs libres (erreur « audio key »), et certaines versions récentes de l'application Spotify ne s'y connectent pas encore. Si c'est votre cas, lancez la musique depuis My Habita (vos playlists Spotify y sont) sur une enceinte Google ou Sonos, ou utilisez AirPlay.
  • AirPlay : l'enceinte apparaît dans AirPlay sur iPhone, iPad et Mac, pour n'importe quelle application (Musique, Deezer, Spotify, YouTube, podcasts…). Récepteur shairport-sync (paquet Debian, AirPlay 1 : une source à la fois, environ 2 s de délai en plus de la latence).
  • La lecture se commande depuis l'application qui diffuse (Spotify, iPhone) ; dans My Habita, on voit le titre, l'artiste et la pochette, on règle le volume et on peut arrêter. Lancer une musique de My Habita sur l'enceinte reprend la main (la session Spotify ou AirPlay est coupée).

Limites : la synchronisation entre marques différentes se règle à l'oreille et n'atteint pas celle d'un système unique (Sonos entre eux, groupes Google Home) ; les horloges des enceintes dérivent légèrement (quelques dixièmes de seconde par heure d'écoute ininterrompue : arrêter puis relancer recale tout). Le son passe par le serveur (≈ 40 ko/s par enceinte). Pas de vidéo sur une enceinte My Habita.

Autres plateformes

  • Netflix, Disney+, Prime Video, CANAL+, YouTube, Apple TV… : aucune ne donne accès à son catalogue aux applications tierces. My Habita ouvre l'application sur le téléviseur (onglet Télévision) et la télécommande sert ensuite à naviguer.
  • Deezer (vérifié en octobre 2026) : Deezer n'accepte plus aucune nouvelle application (« suspendu indéfiniment » depuis 2025) ; son interface publique ne permet que la recherche, les playlists publiques et des extraits de 30 secondes — pas d'écoute complète pour une application tierce, et « Deezer Connect » a été arrêté. Ce qui marche avec Deezer : depuis l'application Deezer, AirPlay (iPhone, iPad, Mac) vers une enceinte My Habita (cochez AirPlay), ou Chromecast vers une enceinte Google ; et Deezer ajouté dans l'application Sonos. Les solutions qui recopient le cookie de connexion du navigateur (comme Music Assistant) sont hors des conditions de Deezer : My Habita ne les utilise pas.
  • Apple Music, YouTube Music, Tidal, Amazon Music : pas d'intégration (Apple Music et Tidal exigent leur propre lecteur sur l'appareil ; YouTube Music n'a pas d'API publique). Depuis leurs applications : AirPlay vers une enceinte My Habita, ou Cast / Sonos.

Automatisations

L'action Multimédia (enceintes, téléviseurs) de l'éditeur d'automatisations :

  • Lire un contenu : un album, une playlist (My Habita ou Spotify), une radio, un podcast, un film… choisi par la recherche ou parmi vos favoris et écoutes récentes, sur une ou plusieurs enceintes ou sur une zone. Volume et lecture aléatoire facultatifs. Ce qui jouait sur ces lecteurs est remplacé.
  • Mettre en pause, Reprendre la lecture, Arrêter, Passer au suivant, Revenir au précédent : seuls les lecteurs concernés sont commandés (la pause vise ceux qui jouent, la reprise ceux qui sont en pause) ; s'il n'y a rien à faire, l'étape l'indique (« Rien ne jouait ») sans être en erreur.
  • Régler le volume : sur une zone, le volume moyen est réglé et les écarts entre les pièces sont gardés.

Exemples : la radio dans la cuisine à 7 h 30 en semaine, à 20 % ; la musique mise en pause quand on sonne à la porte, puis reprise ; tout arrêter au départ de la maison.

Le contenu est lu avec le compte de la personne qui l'a choisi dans l'éditeur (Spotify, playlists personnelles, reprise des films) : une automatisation ne peut pas utiliser le compte Spotify d'une autre personne. Pour Spotify, l'enceinte doit être visible dans Spotify Connect (voir plus haut).

Fonctionnement

contenus  ─ bibliothèque (media.db, ffprobe) ─┐
          ─ Spotify (compte de chacun)       ─┤      ┌─ enceintes et TV (Cast, Sonos, DLNA, Bluetooth…)
          ─ radios, podcasts, playlists MH   ─┼─ My Habita ─┼─ appareils Spotify Connect
          ─ favoris et playlists Sonos       ─┘      └─ ce navigateur / ce téléphone
  • Les contenus de My Habita sont lus par une adresse de lecture signée (/api/v1/multimedia/stream/<jeton>/…, valable 24 h, un seul contenu) que l'enceinte ou le téléviseur va chercher en http sur le serveur. My Habita tient la file d'attente et lance le titre suivant quand l'appareil signale la fin.
  • Spotify se pilote par l'API officielle de Spotify : le son ne passe pas par My Habita.
  • Les commandes simples (volume, pause, suivant…) passent par les commandes confirmées de My Habita, comme pour une lampe : une commande refusée par l'appareil s'affiche comme telle.
  • Les positions ne sont transmises qu'aux changements (lecture, pause, avance) ; les écrans font avancer la barre eux-mêmes. Rien de tout cela n'encombre l'historique.

Adresse du serveur vue par les appareils : détectée (adresse du même sous-réseau que l'appareil, sinon l'adresse privée principale) ; à préciser dans Réglages → Général si vos enceintes sont sur un autre réseau ou si vous passez par un nom.

Données, confidentialité

  • Sauvegardé (myhabita.db) : favoris, playlists My Habita, positions de reprise, écoutes récentes (500 par personne), zones, abonnements aux podcasts, comptes Spotify (jeton de rafraîchissement), réglages, clé The Movie Database.
  • Non sauvegardé, reconstruit tout seul : l'index de la bibliothèque et les caches (media.db : un nouveau parcours le refait), les pochettes et affiches (<données>/multimedia/art/).
  • Adresses publiques (sans session, car les enceintes ne savent pas se connecter) : la diffusion par jeton signé et limité dans le temps (stream/), les pochettes par identifiant impossible à deviner (art/), les images relayées par jeton (img/). Le reste de l'API demande une session.
  • Ce qui sort de la maison : les recherches et la bibliothèque Spotify (API Spotify), les recherches de radios (Radio Browser) et de podcasts (Apple), la lecture des flux de radio et de podcast, et, si vous l'activez, le titre et l'année des films (The Movie Database).

Limites connues

  • Jamais essayé avec du vrai matériel ou un vrai compte (voir en haut).
  • Synchronisation entre systèmes différents : approximative (quelques dixièmes de seconde) ; parfaite seulement entre enceintes Sonos groupées.
  • Une file d'attente lancée sur des enceintes ne survit pas à un redémarrage du moteur (la lecture en cours sur l'appareil continue).
  • Sous-titres : textes (SRT, VTT, ASS, pistes texte des MKV) dans le navigateur ; les sous-titres en image (PGS des Blu-ray) ne sont pas affichés. Sur le téléphone, la vidéo s'affiche dans le panneau « En cours », sans sous-titres pour l'instant.
  • Pas d'AirPlay 2 (AirPlay 1 seulement, une source à la fois), pas de lecture synchronisée au millième type Snapcast, pas de Chromecast « Spotify » lancé depuis My Habita sans passer par Spotify Connect.
  • Récepteurs Spotify Connect et AirPlay : jamais essayés avec un vrai téléphone (les tests utilisent des imitations de librespot et de shairport-sync).

Fiches techniques des intégrations : integrations.md ; installation de l'audio du serveur : exploitation.md ; application : application-mobile.md.