Aller au contenu principal

Intégration domotique Jellyfin & Emby, gratuite et open source

Intégration Jellyfin & Emby pour Gladys Assistant

Pilotez vos lecteurs Jellyfin et Emby, suivez les lectures et réagissez-y dans vos scènes.

Pilotez les lecteurs de votre serveur Jellyfin ou Emby depuis Gladys, suivez ce qui se regarde dans la maison et déclenchez des scènes quand une lecture démarre, se met en pause ou s'arrête — le classique « lumières tamisées quand le film commence ».

Fonctionne avec Jellyfin 10.9 et suivants (vérifié sur 10.11, 12.1 et 12.2) et avec Emby (vérifié sur 4.10). L'intégration détecte seule le type de serveur.

Configuration​

  1. Créez une clé d'API pour Gladys sur votre serveur :
    • Jellyfin : Tableau de bord > Clés API > +, nommez-la « Gladys » ;
    • Emby : Paramètres > Avancé > Clés API > Nouvelle clé d'API.
  2. Dans l'onglet Configuration de l'intégration, renseignez :
    • l'URL du serveur, port inclus (par exemple http://192.168.1.20:8096). Une adresse https derrière un reverse proxy fonctionne aussi ; vous pouvez coller l'adresse de votre navigateur, /web/... est retiré automatiquement ;
    • la clé d'API créée à l'étape 1.
  3. Enregistrez, puis cliquez sur Tester la connexion.
  4. Les appareils apparaissent dans l'onglet Découverte.

Un lecteur (application TV, téléphone, navigateur) n'apparaît que lorsqu'il est connecté au serveur : ouvrez l'application sur la TV, puis cliquez sur Rechercher les lecteurs. Un lecteur ajouté reste dans Gladys même quand il est éteint.

Ce que vous obtenez​

Le serveur : nombre de lectures en cours, nombre de lectures transcodées (celles qui chargent le processeur), un résumé « qui regarde quoi, où », et un compteur par bibliothèque (plus les épisodes des séries et les morceaux de musique). Les compteurs se désactivent dans la configuration.

Chaque lecteur : ce qu'il lit (titre, artiste, album, pochette, durée, position), lecture, pause, stop, précédent, suivant, retour arrière, avance rapide, volume, muet, aléatoire, répétition, état de lecture, un texte « en cours de lecture » sur une ligne, temps restant, et deux indicateurs « pendant l'intro » et « pendant le générique ».

Les indicateurs d'intro et de générique ont besoin que le serveur connaisse ces passages :

  • Jellyfin (10.10 et suivants) : installez un fournisseur de segments, par exemple le plugin officiel Chapter Segments Provider (il lit les chapitres nommés « Intro », « Credits »…) ou le plugin Intro Skipper ;
  • Emby : la détection des intros et génériques d'Emby.

Sans eux, les deux indicateurs restent à 0.

Lecteur Musique de Gladys 5.3​

Ajoutez le widget Musique à un tableau de bord et choisissez un lecteur Jellyfin ou Emby : il affiche la pochette, le titre, l'artiste et l'album de ce qui est lu — pour un épisode, l'épisode, la série et la saison ; pour un film, son titre — avec une barre de progression que l'on fait glisser pour se déplacer, lecture/pause, précédent, suivant, aléatoire, répétition, volume et muet.

La loupe du widget ouvre la bibliothèque musicale du serveur : albums, artistes et listes de lecture (celles de l'utilisateur connecté sur le lecteur), et une recherche. Un appui lance un morceau, un album, un artiste ou une liste de lecture sur le lecteur ; l'autre geste du panneau l'ajoute après le morceau en cours ou à la fin de la file. Le même sélecteur sert l'action de scène Lancer une musique sur une enceinte de Gladys. La file de lecture elle-même n'est pas affichée : les applications Jellyfin la signalent en retard et ne savent pas sauter à l'un de ses éléments.

Bon à savoir :

  • pour lancer une lecture, le lecteur doit être connecté au serveur et accepter le contrôle à distance (applications TV, client web) ; la navigation, elle, fonctionne toujours ;
  • l'état de lecture vaut 0 (pause), 1 (lecture) ou 2 (arrêté : rien en lecture). Avant la version 0.4, un lecteur arrêté valait 0 ;
  • un lecteur ajouté avant la version 0.4 : ouvrez l'onglet Découverte de l'intégration et cliquez sur Mettre à jour sur ce lecteur. Il garde son nom, sa pièce, ses scènes et ses tableaux de bord, et reçoit les nouvelles fonctionnalités. D'ici là, le bouton muet bascule comme avant ;
  • l'aléatoire et la répétition dépendent de l'application (Jellyfin Web et les applications TV les acceptent) ; l'intégration le signale quand une application refuse ;
  • nécessite Gladys 5.3 ou plus récent.

Scènes​

Quatre déclencheurs : Lecture démarrée, Lecture en pause, Lecture reprise, Lecture arrêtée. Chacun peut être limité à un lecteur et à des types de média (film, épisode, musique, TV en direct…). Les variables title, name, series_name, media_type, user et player_name sont utilisables dans les actions qui suivent.

Exemple : Lecture démarrée, lecteur « TV du salon », type Film → tamiser le salon ; Lecture en pause sur le même lecteur → rallumer.

Deux actions de scène :

  • Afficher un message sur un lecteur — par exemple « On sonne à la porte » par-dessus le film ;
  • Lire un média sur un lecteur — cherche un titre dans la bibliothèque (film, série, album, artiste, liste de lecture…) et le lance, en lecture aléatoire si besoin. Le titre lu est disponible pour la suite de la scène.

Le lecteur doit être connecté au serveur pour recevoir un message ou une lecture.

Gladys 5.3 propose aussi sa propre action Lancer une musique sur une enceinte : choisissez le lecteur, puis un album, un artiste, une liste de lecture ou un morceau dans la bibliothèque.

Widgets du tableau de bord​

Le widget Musique de Gladys vient en premier (voir plus haut). L'intégration apporte aussi trois widgets à elle :

  • En cours de lecture : qui regarde quoi, où, avec les affiches.
  • Lecteur : la lecture en cours en télécommande — la jaquette (ou l'image de fond du film), le titre, l'état, le temps restant et les boutons lecture/pause, stop et suivant. Laissez le réglage « Lecteur » vide pour suivre automatiquement ce qui est en cours de lecture, ou choisissez un lecteur pour le suivre lui seul.
  • Derniers ajouts : les affiches des films, séries ou albums ajoutés récemment, les nouveaux épisodes regroupés par série.

Dépannage​

  • « Le serveur refuse la clé d'API » : la clé a été supprimée ou mal copiée. Créez-en une nouvelle et enregistrez-la. L'intégration cesse volontairement d'interroger le serveur tant que la clé est refusée : un reverse proxy équipé de fail2ban pourrait sinon bannir votre adresse.
  • Un bouton ne fait rien : toutes les applications n'acceptent pas le contrôle à distance. Les applications TV et le client web l'acceptent ; certaines applications mobiles non. « Suivant » et « Précédent » sur un épisode lancent l'épisode voisin, ce qui fonctionne même sur les applications qui n'ont pas de file de lecture (Swiftfin).
  • Le message ne s'affiche pas : cela dépend de l'application. Jellyfin Web et Jellyfin pour Android TV l'affichent ; Swiftfin (Apple TV, iOS) ne le gère pas encore, et l'application iOS officielle ne l'affiche pas pendant une lecture vidéo.
  • Le bouton ne change pas tout de suite d'état : les boutons du widget « Lecteur » affichent l'état attendu dès la commande envoyée, puis l'application le confirme (certaines mettent quelques secondes).
  • Le widget Musique dit que le lecteur n'a pas répondu : l'application n'a pas confirmé la commande dans les 15 secondes. Certaines applications ne signalent le volume, le muet, l'aléatoire et la répétition que toutes les quelques secondes ; une application qui n'accepte pas le contrôle à distance ne confirme jamais.
  • Les nouvelles fonctionnalités manquent sur un lecteur : cliquez sur Mettre à jour sur ce lecteur dans l'onglet Découverte de l'intégration (lecteurs ajoutés avant la version 0.4).
  • La mise à jour est lente : l'intégration suit les lectures en temps réel par WebSocket. Si votre reverse proxy ne relaie pas les WebSockets, elle se replie sur une interrogation toutes les 15 secondes.
  • Les journaux de l'intégration sont consultables depuis l'interface Gladys.

Paramètres de configuration​

Voici les paramètres demandés par Jellyfin & Emby dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Connexion à votre serveur multimédiasectionNonFonctionne avec Jellyfin (10.9 et suivants) et Emby. Indiquez l'adresse du serveur (par exemple http://192.168.1.20:8096) et une clé d'API créée pour Gladys : sous Jellyfin, Tableau de bord > Clés API ; sous Emby, Paramètres > Avancé > Clés API. L'intégration détecte seule le type de serveur.
URL du serveurstringOuiAdresse du serveur, port inclus (8096 par défaut). Une adresse https derrière un reverse proxy fonctionne aussi.
Clé d'APIsecretOui
Langue des nomsselectNonLangue des noms de fonctionnalités et des textes. Les noms sont fixés à la création d'un appareil : pour les renommer après un changement, supprimez puis rajoutez l'appareil.
Capteurs de bibliothèquesbooleanNonAjoute un capteur de nombre d'éléments par bibliothèque sur l'appareil serveur (plus les épisodes pour les séries et les morceaux pour la musique).
Rafraîchissement des bibliothèques (s)numberNonFréquence de rafraîchissement du nombre d'éléments des bibliothèques, en secondes. Les lectures sont suivies en temps réel.
Accepter un certificat auto-signébooleanNonUniquement pour les adresses https : accepte le certificat auto-signé du serveur. Laissez désactivé pour les adresses http.

Comment installer Jellyfin & Emby dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Jellyfin & Emby apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/guim31/gladys-jellyfin:0.4.0), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-jellyfin.

Jellyfin & Emby nécessite Gladys >=5.3.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Jellyfin & Emby est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂