Le problème : un serveur Jellyfin et une TV sans application Jellyfin
Vous faites tourner Jellyfin à la maison ou pour un petit groupe d’utilisateurs. Le serveur va bien. Le problème, c’est le téléviseur : un modèle Samsung ou LG ancien, un Philips, ou une TV d’hôtel qui a un navigateur mais pas d’application Jellyfin dans son magasin. Le cast n’est pas toujours une option, et ajouter un second boîtier derrière chaque TV n’est pas non plus ce que vous souhaitez.
MediaLab TV prend un autre chemin. C’est un plugin Jellyfin qui sert une application web, ouverte une fois dans le navigateur du téléviseur. Ensuite, la TV se connecte seule et affiche une interface façon Netflix pensée pour la télécommande, avec son propre lecteur, les boutons Sauter et votre nom, votre logo, vos couleurs et votre adresse à la place des nôtres. Si vous cherchez une alternative à l’application Jellyfin TV pour des écrans qui n’en auront jamais, c’est l’angle : le navigateur est le client.
Une remarque honnête avant de commencer : MediaLab TV n’est pas une application du magasin d’applications de la TV. Il a été testé dans un navigateur de TV Philips émulé ; Samsung (Tizen), LG (webOS), Android TV / Google TV et les vrais téléviseurs Philips sont pris en charge dans le code (mode TV, touches de la télécommande, pointeur Magic Remote) mais pas encore vérifiés sur les appareils. Ce qu’une TV peut lire dépend de son navigateur, et le serveur transcode ce que le navigateur ne peut pas lire.
Prérequis
- Jellyfin Server 12.2 ou plus récent, officiel ou medialab Server, sous Linux, Windows ou Docker.
- Une TV avec un navigateur web. C’est toute l’exigence côté client.
- Quick Connect activé dans Jellyfin (Dashboard → General), si vous voulez la connexion par téléphone et les nouveaux comptes depuis le téléphone. Sans cela, la TV n’affiche que le formulaire habituel nom d’utilisateur et mot de passe.
- Un compte MediaLab Works avec une licence qui couvre le plugin : un abonnement actif, une licence à vie dans sa fenêtre de mises à jour, le bundle Jellyfin, ou l’essai gratuit de 30 jours.
- Extras facultatifs : Quick Connect by MediaLab (QR code vers la page d’approbation), Registration by MediaLab (inscription depuis le téléphone) et Cashier by MediaLab (paiement avant l’activation du compte).
Étape 1 — Installer le plugin depuis votre dépôt privé
La voie recommandée laisse Jellyfin installer et mettre à jour le plugin tout seul.
- Dans votre compte MediaLab Works, ouvrez Licenses → Jellyfin plugin repository et cliquez sur Create address. Copiez-la. L’adresse est privée car elle contient un jeton : ne la partagez pas ; vous pouvez la régénérer ou la révoquer à tout moment.
- Dans Jellyfin, ouvrez Dashboard → Plugins → Repositories, cliquez sur +, nommez-le (par exemple MediaLab Works), collez l’adresse et enregistrez.
- Dans Dashboard → Plugins → Catalog, trouvez MediaLab TV, cliquez sur Install, puis redémarrez Jellyfin.
Le dépôt ne liste que les plugins couverts par vos licences, et seulement les versions qu’elles autorisent. Ses liens de téléchargement sont signés et expirent après quelques heures, si bien que Jellyfin lit toujours une liste fraîche.
Si vous préférez, le catalogue public à l’adresse https://medialab.works/jellyfin/manifest.json liste tous les plugins MediaLab Works publiés avec leur build public (medialab Server l’ajoute de lui-même). Vous pouvez aussi installer manuellement : téléchargez jf-tvapp_x.y.z.zip depuis Account → Licenses, extrayez-le dans un nouveau dossier MediaLab TV_x.y.z.0 dans le dossier des plugins (/var/lib/jellyfin/plugins/ pour une installation Linux par paquet, /config/plugins/ dans le volume de configuration sur l’image Docker officielle, %ProgramData%\Jellyfin\Server\plugins\ sous Windows) et redémarrez Jellyfin.
Étape 2 — Activer la licence
- Ouvrez Dashboard → Plugins → MediaLab TV et cliquez sur License.
- Collez votre clé de licence et cliquez sur Activate with key. Le plugin contacte le serveur de licences, lie la clé à ce serveur et affiche la licence comme Active.
- Pas encore de clé ? Sur la même page, saisissez votre e-mail et démarrez l’essai gratuit de 30 jours, ou achetez une licence ; le plugin s’active de lui-même une fois le paiement effectué.
La licence est vérifiée une fois par jour et à chaque démarrage de Jellyfin. Sans internet, le plugin continue de fonctionner 7 jours après la dernière vérification réussie. Sans licence valide, les TV ne voient qu’un écran neutre « Service unavailable », en anglais et en roumain, sans votre nom ni votre logo — rien n’est supprimé, et tout reprend dès que la licence est de nouveau valide. Move license (release this server) sur la même page libère la clé pour un autre serveur.
Étape 3 — Configurer votre image
Ouvrez MediaLab TV dans le menu du tableau de bord Jellyfin. Tout ici est facultatif, mais c’est la partie que vos utilisateurs voient réellement.
- App name : le titre sur la TV (par défaut « MediaLab TV »).
- Short name : affiché dans la liste des appareils du serveur et comme nom de l’application enregistrée sur la TV.
- Line under the name et footer line : par exemple votre site web et comment joindre le support. Un pied de page vide affiche « Unofficial app, compatible with Jellyfin servers » dans la langue de la TV.
- Colors : la couleur d’accent (boutons, focus) et l’arrière-plan, au format
#rrggbb. La couleur du texte est choisie automatiquement pour rester lisible. - Language : automatique (la langue du navigateur de la TV), anglais ou roumain.
- Logo : PNG ou SVG, 512 Ko au maximum ; une image carrée rend mieux. Les fichiers SVG contenant des scripts sont refusés.
L’aperçu montre le résultat avant que vous cliquiez sur Save. Les réglages d’image et le logo restent sur votre serveur.
Étape 4 — Choisir l’adresse pour les TV
Deux adresses fonctionnent :
/MediaLabTv/sur l’adresse de votre serveur : fonctionne toujours.- Votre propre chemin, par exemple
/web/tv/(le chemin par défaut esttv), servi directement par le plugin lui-même. La barre d’adresse conserve/web/tv/, rien n’est écrit dans les fichiers de Jellyfin, et rien n’est à refaire après les mises à jour de Jellyfin. Une URL de base définie dans Jellyfin est respectée. Un chemin qui existe déjà dans l’interface web de Jellyfin n’est jamais couvert : choisissez-en un autre en cas de conflit.
Sur medialab Server, l’application obtient aussi une entrée dans le menu des utilisateurs.
Étape 5 — L’ouvrir une fois sur chaque TV
Sur la TV, ouvrez le navigateur, saisissez une fois l’adresse courte et enregistrez-la comme page de démarrage ou favori. C’est toute la configuration côté appareil.
Un mode TV est choisi de lui-même sur Tizen, webOS, Android TV, Google TV et les téléviseurs Philips, ou basculé depuis le menu des profils. Il est dimensionné pour les écrans 720p, 1080p et 4K, avec des marges de sécurité et un focus large. Les flèches, OK, Retour (avec une question avant de quitter), les touches média, couleur, chaîne et chiffres fonctionnent, tout comme le pointeur Magic Remote de LG. Le plein écran est disponible depuis un bouton d’en-tête là où le navigateur l’autorise et avec la touche F ; sur une TV, ou à l’ouverture depuis Quick Connect, le premier OK / clic passe en plein écran (depuis 1.2.1).
Étape 6 — Décider comment les gens se connectent
La TV conserve le jeton du serveur, pas le mot de passe. Le jeton est vérifié à chaque démarrage ; s’il a été révoqué, la TV affiche le formulaire de connexion. « Remember the password on TVs » est désactivé par défaut — activez-le uniquement pour les TV qui perdent sans cesse le jeton.
Pour la plupart des foyers, la connexion par téléphone est l’option la plus simple :
- Sign in with your phone : la TV affiche un code à 6 chiffres. Un utilisateur connecté l’approuve sur le téléphone, dans l’application Jellyfin (Settings → Quick Connect). Avec Quick Connect by MediaLab installé, la TV affiche aussi un QR code qui ouvre la page d’approbation.
- New account (from the phone) : avec Registration by MediaLab, la TV affiche un QR code vers la page d’inscription et un code à saisir dans le formulaire. Quand le compte devient actif — après l’approbation de l’administrateur ou, avec Cashier by MediaLab, après le paiement — la TV se connecte d’elle-même.
Rappelez-vous que les deux reposent sur l’activation de Quick Connect dans Jellyfin, dans Dashboard → General.
Étape 7 — Ce que vos utilisateurs obtiennent
L’interface est propre : une bannière rotative et des rangées Continuer à regarder, À suivre, films et séries récemment ajoutés, chaque bibliothèque, Ma liste, collections, genres et TV en direct (en ce moment, films ce soir, sport, enfants, à venir). Les pages de titres comprennent l’image de fond, les notes, le casting, les saisons et épisodes, les titres similaires et la bande-annonce locale. Il y a des grilles, la recherche avec un clavier à l’écran et des profils (« Who’s watching? »).
Le lecteur est propre lui aussi : pistes audio, sous-titres, reprise, épisode suivant et les boutons Sauter l’intro / le résumé / le générique (Media Segments de Jellyfin). La lecture est signalée à Jellyfin, elle apparaît donc dans Continuer à regarder partout. Si quelqu’un préfère le client d’origine, le réglage « After sign-in, open » l’envoie vers Jellyfin Web ; l’interface MediaLab TV reste celle par défaut.
Astuces et dépannage
- « Service unavailable » sur la TV : la licence n’est pas valide, ou le serveur n’a pas joint medialab.works depuis plus de 7 jours. Vérifiez la page License du plugin.
- « Sign in with your phone » est absent : Quick Connect n’est pas activé dans Jellyfin. Activez-le dans Dashboard → General.
- Quelque chose a cassé après une mise à jour : sur la page License du plugin, utilisez Roll back to x.y.z (avec une licence valide), puis redémarrez Jellyfin. Si votre dépôt privé est ajouté, la tâche planifiée Update Plugins de Jellyfin (au démarrage et chaque jour) réinstallera la version la plus récente — retirez ses déclencheurs dans Dashboard → Scheduled Tasks si vous voulez rester un temps sur la version précédente, et remettez-les plus tard.
- Confidentialité : la TV ne parle qu’à votre serveur Jellyfin ; la page bloque tout ce qui vient d’ailleurs (pas de polices web, pas de CDN, pas de bandes-annonces externes). Vers medialab.works, seule la vérification de licence est envoyée.
- Attentes de compatibilité : considérez le navigateur comme le client. Si un fichier ne se lit pas correctement, laissez le serveur le transcoder plutôt que d’accuser la TV.
Conclusion
Pour une TV qui n’aura jamais d’application Jellyfin, un client dans le navigateur avec sa propre interface pensée pour la télécommande est la réponse pragmatique. MediaLab TV vous l’offre, avec en plus la connexion par téléphone via Quick Connect, les boutons Sauter adossés aux Media Segments et une image qui donne au serveur un air de chez vous. Installez-le depuis votre dépôt privé, réglez le nom, le logo et les couleurs, ouvrez /web/tv/ une fois sur chaque TV — et l’écran est prêt. Le guide utilisateur détaille chaque réglage, le changelog liste chaque version avec son code source, et la base de connaissances et la FAQ sont là quand quelque chose ne se comporte pas comme prévu ; vous pouvez aussi nous contacter directement.