| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| jellyfin [Le 24/06/2019, 17:06] – [Méthode Dépôt Ubuntu de Jellyfin] stylou | jellyfin [Le 14/01/2026, 12:30] (Version actuelle) – DLNA est désormais un plugin krodelabestiole |
|---|
| {{tag>Xenial Bionic serveur multimedia media_center}} | {{tag>noble serveur multimedia media_center}} |
| {{ :logo:jellyfin.png?80}} | |
| |
| | {{ :logo:jellyfin.png?100}} |
| ====== Jellyfin ====== | ====== Jellyfin ====== |
| | |
| Jellyfin est un serveur multimedia. Il s'agit d'un fork de //[[https://emby.media/|Emby]]// (anciennement //Media Browser//) devenu officiellement propriétaire en 2018. | |
| |
| Il permet de mettre sa médiathèque à disposition sur le [[:web]], qu'il s'agisse de contenu vidéo (films et séries, télévision), audio, ou d'images. | **[[wpfr>Jellyfin]]** est un [[:multimedia#serveurs_multimedia|serveur multimédia]]. Il s'agit d'un fork de **[[https://emby.media/|Emby]]** (anciennement **Media Browser**) ce dernier étant devenu officiellement propriétaire en 2018. |
| |
| Il permet de récupérer automatiquement les informations concernant les films et les séries depuis [[https://www.imdb.com/|IMDb]] et [[https://www.themoviedb.org/|TheMovieDb]] : descriptions, affiches, réalisateurs, acteurs, etc.\\ | Il permet de mettre sa médiathèque à disposition sur le [[:web]], qu'il s'agisse de contenu vidéo (films et séries, télévision), audio (musique, livres audio, //podcasts//), d'images, d'//eBooks//, de bandes dessinées numériques, etc., et propose des visionneuses adaptées à chaque type de contenu. |
| Ceci permet de naviguer entre les différents réalisateurs, ou les différents genres, de trier par date, de voir tous les films avec un acteur particulier, sa photo et sa biographie etc. | |
| |
| De base avec Jellyfin cette médiathèque est donc accessible et visionnable avec n'importe quel navigateur web, mais il existe de plus de nombreux [[#clients]] qui permettent de simplifier son utilisation en fonction de l'appareil qu'on utilise. | Il récupère automatiquement les informations concernant les films et les séries depuis [[https://www.imdb.com/|IMDb]] et [[https://www.themoviedb.org/|TheMovieDb]] : descriptions, affiches, réalisateurs, acteurs, etc. |
| | Ceci permet de naviguer entre les différents réalisateurs, ou les différents genres, de trier par date, de voir tous les films avec un acteur particulier, sa photo et sa biographie, etc. |
| |
| On peut aussi créer des comptes supplémentaires pour partager ce contenu avec ses amis. | Il implémente de plus des [[https://jellyfin.org/docs/general/server/plugins/#repositories|dépôts]] d'[[https://jellyfin.org/docs/general/server/plugins|extensions]] qui permettent d'enrichir ses fonctionnalités, grâce à des solutions logicielles fournies par son importante communauté. |
| | |
| | De base avec **Jellyfin** cette médiathèque est donc accessible et visionnable avec n'importe quel [[:navigateur]] web (à condition que celui-ci dispose des codecs nécessaires), mais de nombreux [[#clients]] dédiés améliorent son utilisation quel que soit l'appareil qu'on utilise. Une [[https://github.com/jellyfin/jellyfin-plugin-dlna|extension]] permet aussi de lui ajouter la fonctionnalité de serveur [[:DLNA]]. |
| | |
| | La création de comptes permet de partager ce contenu avec ses ami·e·s. |
| |
| ===== Installation ===== | ===== Installation ===== |
| | |
| ==== Méthode recommandée : Docker ==== | |
| |
| La méthode d'installation la plus simple pour le moment est d'utiliser **[[:docker|Docker]]**.\\ | Il existe plusieurs méthodes pour installer le //[[:serveur]]// **Jellyfin** (à ne pas confondre avec **Jellyfin Media Player** qui en est un client, et ne fonctionne pas sans serveur) : |
| **Jellyfin** est disponible sur [[https://hub.docker.com/r/jellyfin/jellyfin/|Docker Hub]]. | * **[[:docker|Docker]]** est une méthode très pratique et particulièrement sécurisée : en plus de faciliter les éventuelles migrations à venir, elle assure qu'on installe la dernière version stable et fournit une bonne sécurité par design en isolant les services web du reste du système. |
| | * **Jellyfin** est aussi disponible depuis les [[:dépôts]] officiels d'Ubuntu. Cependant cette méthode n'est pas recommandée parce que [[:APT]] ne permet pas de profiter immédiatement de la dernière version, n'isole pas les services web du reste du système, et rend les futures migrations des services plus complexes et chronophages.((Sur la page concernant les CMS, voir l'[[:cms#cms|avertissement concernant l'installation de services web]] depuis les dépôts d'Ubuntu / APT.)) |
| | * Le serveur **Jellyfin** est aussi disponible en [[:Flatpak]], pour les architectures x86_64 et aarch64, sur le dépôt [[https://flathub.org/fr/apps/org.jellyfin.JellyfinServer|Flathub]] et peut donc s'installer en suivant [[:tutoriel:installer_application_flatpak|cette procédure]] puis en installant le paquet ''[[https://flathub.org/fr/apps/org.jellyfin.JellyfinServer|org.jellyfin.JellyfinServer]]''. |
| | |
| | ==== Docker (recommandé) ==== |
| |
| Pour des raisons de simplicité (et éviter des lignes de commande à rallonge) on utilisera ici l'outil **[[https://docs.docker.com/compose/|Docker Compose]]**. | **Jellyfin** est disponible en image **[[:Docker]]** sur [[https://hub.docker.com/r/jellyfin/jellyfin/|Docker Hub]]. |
| |
| Pour commencer [[#comment_ouvrir_un_terminal|ouvrez un nouveau terminal]] et assurez-vous d'être placé dans votre répertoire ''home'' : | Pour des raisons de simplicité (et éviter des lignes de commande à rallonge) on utilisera ici l'outil **[[docker#Docker Compose]]**. |
| <code>cd</code> | |
| |
| Installez ensuite ces deux outils : | Pour commencer, [[:docker#installation|Installez Docker et Docker Compose]]. |
| <code>sudo apt install docker.io docker-compose</code> | |
| |
| Puis créez un répertoire qui contiendra la configuration et la base de données de Jellyfin : | [[#comment_ouvrir_un_terminal|Ouvrez ensuite un nouveau terminal]] et assurez-vous d'être placé dans votre répertoire personnel, puis créez un répertoire qui contiendra la configuration et la base de données de **Jellyfin** : |
| <code>mkdir jellyfin</code> | <code>mkdir jellyfin</code> |
| |
| |
| Ce fichier contiendra la configuration du container ''jellyfin'' pour Docker : | Ce fichier contiendra la configuration du container ''jellyfin'' pour Docker : |
| <file - docker-compose.yml>version: '3' | <file - docker-compose.yml>services: |
| services: | |
| jellyfin: | jellyfin: |
| image: jellyfin/jellyfin | image: jellyfin/jellyfin |
| ports: | ports: |
| - '8096:8096' | - '8096:8096' |
| network_mode: "host" | |
| volumes: | volumes: |
| - /home/utilisateur_courant/jellyfin:/config | - /home/utilisateur_courant/jellyfin:/config |
| * remplacez ''utilisateur_courant'' par votre nom d'utilisateur | * remplacez ''utilisateur_courant'' par votre nom d'utilisateur |
| * et éventuellement ''/home/utilisateur_courant/Vidéos'' par le chemin de votre médiathèque. | * et éventuellement ''/home/utilisateur_courant/Vidéos'' par le chemin de votre médiathèque. |
| * on peut aussi choisir un autre port que le port 8096, il suffit de remplacer le premier numéro de la ligne ''- '8096:8096%%'%%''. | * on peut aussi choisir un autre port que le port ''8096'', il suffit de remplacer le premier numéro de la ligne ''- '8096:8096%%'%%''. |
| Par ex. : | Par ex. : |
| <file>- '80:8096'</file> | <file>- '80:8096'</file> |
| <code>id</code> | <code>id</code> |
| |
| <note tip>D'une manière générale avec Docker pour les ''ports'', ''volumes'' et ''devices'', on spécifie à gauche l'élément de la machine hôte (par ex. le port ou le chemin local qu'on souhaite utiliser), puis '':'', puis à droite l'élément qui lui correspondra dans le container (en général on n'y touche pas, cela dépend de l'image Docker qu'on utilise).</note> | <note tip>D'une manière générale avec [[:Docker]] pour les ''ports'', ''volumes'' et ''devices'', on spécifie à gauche l'élément de la machine hôte (par ex. le port ou le chemin local qu'on souhaite utiliser), puis '':'', puis à droite l'élément qui lui correspondra dans le container (en général on ne le personnalise pas, cela dépend de l'image Docker qu'on utilise : ici ''8086'', ''/config'' et ''/media'').</note> |
| |
| Sauvegardez et quittez (''Ctrl + O'' puis ''Ctrl + X'' avec [[:nano]]). | Sauvegardez et quittez (''Ctrl''+''O'' puis ''Ctrl''+''X'' avec [[:nano]]). |
| |
| Vous pouvez dès lors installer Jellyfin et le lancer en une commande : | Vous pouvez dès lors installer **Jellyfin** et le lancer en une commande : |
| <code>sudo docker-compose up</code> | <code>sudo docker compose up</code> |
| |
| Jellyfin est alors disponible à l'adresse [[http://localhost:8096]]. | **Jellyfin** est alors disponible à l'adresse [[http://localhost:8096]]. |
| |
| Lors du premier accès, un guide d'installation (//wizard//) s'affiche, grâce auquel vous pouvez paramétrer votre serveur pas à pas : | Lors du premier accès, un guide d'installation (//wizard//) s'affiche, grâce auquel vous pouvez paramétrer votre serveur pas à pas : |
| * choisissez d'obtenir les //metadata// en //French// dans //Preferred metadata language//. | * choisissez d'obtenir les //metadata// en //French// dans //Preferred metadata language//. |
| * //ok// puis //Next//, choisissez les langues et pays préférés par défaut pour les //metadata//. | * //ok// puis //Next//, choisissez les langues et pays préférés par défaut pour les //metadata//. |
| * Mieux vaut désactiver l'UPnP dans un premier temps. | |
| |
| ==== Méthode Dépôt Ubuntu de Jellyfin ==== | ==== Dépôts APT Ubuntu ==== |
| |
| L'équipe de Jellyfin fournit un dépôt pour l'installation sur Ubuntu Xenial / Bionic / Cosmic / Disco. Les architectures prises en charge sont amd64 , arm64 et armhf. | L'équipe de **Jellyfin** fournit un dépôt pour l'installation sur Ubuntu. Les architectures prises en charge sont [[wpfr>AMD64]], [[wpfr>ARMv8|ARM64]] et [[https://wiki.debian.org/ArmHardFloatPort|ARMHF]] (mais pas [[wpfr>Intel_80386|i386]]).\\ |
| | Les développeurs proposent aussi [[https://jellyfin.org/docs/general/installation/linux/|un script]] qui automatise toute la procédure d'installation. |
| |
| <note important>Sur Ubuntu Xenial seul amd64 est pris en charge .</note> | * Activer HTTPS pour APT : |
| <note>Microsoft ne fournit pas de .NET pour les systèmes Linux x86 32 bits. Jellyfin n'est donc pas pris en charge sur l'architecture i386 .</note> | |
| | |
| * Activez HTTPS pour APT : | |
| <code>sudo apt install apt-transport-https</code> | <code>sudo apt install apt-transport-https</code> |
| |
| * Activez le dépôt Univers pour certaines dépendances : | * Activer le dépôt Univers pour certaines dépendances : |
| <code>sudo add-apt-repository universe</code> | <code>sudo add-apt-repository universe</code> |
| |
| * Importez la clé signée par l’équipe Jellyfin : | * Importer la clé signée par l'équipe Jellyfin : |
| <code>wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -</code> | <code>wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -</code> |
| |
| * Ajoutez le dépôt dans /etc/apt/sources.list.d/jellyfin.list : | * Ajouter le dépôt dans ''/etc/apt/sources.list.d/jellyfin.list'' : |
| <code>echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list</code> | <code>echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list</code> |
| |
| <code>sudo apt update</code> | <code>sudo apt update</code> |
| |
| * Installez Jellyfin : | * Installer **Jellyfin** : |
| <code>sudo apt install jellyfin</code> | <code>sudo apt install jellyfin</code> |
| |
| | Pour finaliser l'installation, vous pouvez reprendre le [[#Docker (recommandé)|chapitre précédent]] à partir de : |
| | > **Jellyfin** est alors disponible à l'adresse [[http://localhost:8096]]. |
| |
| ===== Utilisation ===== | ===== Utilisation ===== |
| |
| Jellyfin est disponible à l'adresse [[http://localhost:8096]]. | ==== via Docker ==== |
| |
| Après l'installation vous pouvez démarrer ou arrêter le service avec ''sudo docker-compose start jellyfin'' et ''sudo docker-compose stop jellyfin''.\\ | **Jellyfin** est disponible à l'adresse [[http://localhost:8096]]. |
| Si vous modifiez le fichier ''docker-compose.yml'', utilisez plutôt ''sudo docker-compose up'' et ''sudo docker-compose down''. | |
| |
| Un menu sandwich en haut à gauche donne accès à la gestion du serveur et au gestionnaire de métadonnées. | Après l'installation vous pouvez démarrer ou arrêter le service avec ''sudo docker compose start jellyfin'' et ''sudo docker compose stop jellyfin''.\\ |
| | Si vous modifiez le fichier ''docker-compose.yml'', utilisez plutôt ''sudo docker compose up'' et ''sudo docker compose down''. |
| |
| Vous pouvez ajouter plusieurs répertoires de médias depuis le menu -> //Gérer le serveur// -> //Médiathèque//. | Un menu sandwich ''☰'' en haut à gauche donne accès à la gestion du serveur et au gestionnaire de métadonnées. |
| | |
| | Vous pouvez ajouter plusieurs répertoires de médias depuis ce menu -> //Gérer le serveur// -> //Médiathèque//. |
| <note> | <note> |
| Attention si vous utilisez docker, et que votre médiathèque est dispersée sur votre ou vos stockages locaux : vous devez faire correspondre chaque répertoire local à un répertoire dans le container, qui sera visible par Jellyfin (depuis un container, Jellyfin n'a pas accès à l'arborescence de l'hôte). Par ex. : | Attention si vous utilisez **[[:Docker]]**, et que votre médiathèque est dispersée sur votre ou vos stockages locaux : vous devez faire correspondre chaque répertoire local à un répertoire dans le container, qui sera visible par **Jellyfin** (depuis un container, **Jellyfin** n'a pas accès à l'arborescence de l'hôte). Par ex. : |
| <file - docker-compose.yml> volumes: | <file - docker-compose.yml> volumes: |
| - /home/utilisateur_courant/jellyfin:/config | - /home/utilisateur_courant/jellyfin:/config |
| - /mnt/usb/media/Vidéos:/media/Vidéos | - /mnt/usb/media/Vidéos:/media/Vidéos |
| - /home/utilisateur_courant/Musique:/media/Musique</file> | - /home/utilisateur_courant/Musique:/media/Musique</file> |
| Dans cette configuration les répertoires de médiathèques à indiquer à Jellyfin seront ''/media/Vidéos'' et ''/media/Musique''. | Dans cette configuration les répertoires de médiathèques à indiquer à **Jellyfin** seront ''/media/Vidéos'' et ''/media/Musique''. |
| </note> | </note> |
| | |
| | ==== Nativement ==== |
| | |
| | **Jellyfin** est installé en tant que service [[:systemd]], et activé par défaut. Vous n'avez rien à lancer manuellement. |
| | |
| | Les [[:systemd#gestion_basique_des_services|commandes systemd]] permettent si besoin |
| | * d'obtenir des informations sur le serveur :<code>sudo systemctl status jellyfin</code> |
| | * de gérer le serveur :<code>sudo systemctl start jellyfin</code><code>sudo systemctl stop jellyfin</code> |
| | * de redémarrer le serveur (après certaines modifications par ex.) :<code>sudo systemctl restart jellyfin</code> |
| | |
| | ===== Accélération matérielle ===== |
| | |
| | **Jellyfin** prend en charge l'accélération matérielle pour du transcodage vidéo à l'aide de FFmpeg. Il prend en charge plusieurs types d'accélération, AMD AMF, Intel Quick Sync, OpenMax OMX, nVidia NVENC, Intel/AMD VAAPI ... |
| | |
| | Les options d'accélération matérielle se trouvent dans le panneau d'administration sous la section //Transcodage//. Sélectionnez une option d'accélération matérielle dans le menu déroulant, indiquez un périphérique si besoin, et cochez //Activer l'encodage matériel//. |
| | |
| | L'accélération matérielle est disponible immédiatement pour la lecture multimédia. Aucun redémarrage du serveur n'est requis. |
| | |
| | Chaque type d'accélération matérielle, ainsi que chaque type d'installation **Jellyfin**, nécessite différentes options de configuration avant de pouvoir être utilisé. |
| | |
| | ==== Méthode VA API ==== |
| | |
| | Avant d'activer cette fonction, veuillez lire le sujet [[:vaapi|VA API]] de la documentation. |
| | |
| | [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] ''[[apt>mesa-utils]]'' puis vérifier que l'accélération graphique est bien supportée : |
| | <code>sudo apt install mesa-utils</code> |
| | <code>glxinfo | grep "direct rendering"</code> |
| | Cela devrait retourner ''direct rendering: Yes''. |
| | |
| | Vérifier quel groupe est disponible pour le périphérique ''render'' : |
| | <code>ls -l /dev/dri</code> |
| | |
| | Vous devriez voir une ligne du type : |
| | <code>crw-rw----+ 1 root video 226, 128 juin 21 15:11 renderD128</code> |
| | Le groupe dans cet exemple est ''video''. |
| | |
| | Ajouter l'utilisateur du service à ce groupe pour permettre au processus ''jellyfin-ffmpeg'' d'accéder au périphérique : |
| | <code>sudo usermod -aG video jellyfin</code> |
| | |
| | Relancer ''jellyfin'' : |
| | <code>sudo systemctl restart jellyfin</code> |
| | |
| ===== Clients ===== | ===== Clients ===== |
| |
| La liste des clients existants ou en développement est disponible [[https://jellyfin.readthedocs.io/en/latest/user-docs/apps/|ici]]. | On peut utiliser n'importe quel [[:navigateur|navigateur web]] pour accéder à du contenu sur **Jellyfin**, mais les formats et codecs disponibles dépendent du navigateur. |
| |
| On peut noter en particulier : | La liste des clients existants ou en développement est disponible [[https://jellyfin.org/downloads/clients/|ici]]. |
| * une [[https://github.com/jellyfin/jellyfin-kodi|extension]] pour [[:Kodi]] qui permet de remplacer complètement son contenu. | |
| | ==== Jellyfin Media Player ==== |
| | |
| | Pour Ubuntu il existe en particulier **[[https://github.com/jellyfin/jellyfin-media-player|Jellyfin Media Player]]**, disponible sur Linux, macOS et Windows. Pour l'installer sur Ubuntu le plus simple est d'[[[:tutoriel:installer_application_flatpak|installer le Flatpak]] ''[[https://flathub.org/fr/apps/com.github.iwalton3.jellyfin-media-player|com.github.iwalton3.jellyfin-media-player]]'' depuis [[https://flathub.org/fr/apps/com.github.iwalton3.jellyfin-media-player|Flathub]]. Contrairement à un navigateur web de très nombreux formats sont lisibles nativement, et il n'est donc pas nécessaire de réencoder à la volée côté serveur (ce qui est très gourmand en ressources). |
| | |
| | ==== Général ==== |
| | |
| | On peut aussi noter : |
| | * une [[https://github.com/jellyfin/jellyfin-kodi|extension]] pour **[[:Kodi]]** qui permet de remplacer complètement le contenu de celui-ci. |
| * une [[https://github.com/jellyfin/jellyfin-android|application pour Android]] disponible [[https://repo.jellyfin.org/releases/client/android/|ici]]. | * une [[https://github.com/jellyfin/jellyfin-android|application pour Android]] disponible [[https://repo.jellyfin.org/releases/client/android/|ici]]. |
| * une [[https://github.com/jellyfin/jellyfin-androidtv|application pour AndroidTV]] disponible [[https://repo.jellyfin.org/releases/client/androidtv/|là]]. | * une [[https://github.com/jellyfin/jellyfin-androidtv|application pour AndroidTV]] disponible [[https://repo.jellyfin.org/releases/client/androidtv/|là]]. |
| * une [[https://github.com/jellyfin/jellyfin-theater-electron|application Jellyfin Theater]] qui devrait être fonctionnelle sur Ubuntu quand elle sera terminée. | * **[[https://flathub.org/fr/apps/com.github.iwalton3.jellyfin-mpv-shim|Jellyfin MPV Shim]]**, ancêtre de **Jellyfin Media Player** basé sur le lecteur libre [[:MPV]]. |
| |
| ===== Voir aussi ===== | <note tip> |
| | Il existe aussi une [[https://github.com/jellyfin/jellyfin-plugin-dlna|extension]] pour ajouter la fonctionnalité de serveur [[:DLNA]] à **Jellyfin**. Ainsi toutes les applications et appareils compatibles ([[:VLC]], //smart TV//, etc.) peuvent aussi accéder à la médiathèque sur le [[:réseau]] local.\\ |
| | Par contre l'expérience utilisateur sera probablement moins bonne qu'avec le [[#Jellyfin Media Player|client dédié]] : entre autre les contenus éditoriaux, descriptions, fiches d'acteurs et de réalisateurs, etc. ne seront simplement pas disponibles. |
| | </note> |
| |
| * (//en//) [[https://github.com/jellyfin/jellyfin|site officiel]] | ==== Musique ==== |
| * (//en//) [[https://jellyfin.readthedocs.io/|documentation officielle]] | |
| |
| ---- | On trouve aussi des clients spécifiquement dédiés à la musique : |
| | * **[[https://github.com/jeffvli/feishin|Feishin]]** disponible sur Windows, macOS et Linux (donc Ubuntu) au format [[:Appimage]] sur [[https://github.com/jeffvli/feishin/releases/latest|cette page]]. |
| | * **[[https://f-droid.org/fr/packages/com.unicornsonlsd.finamp/|Finamp]]** sur Android. |
| | * **[[https://f-droid.org/fr/packages/nl.moeilijkedingen.jellyfinaudioplayer/|Fintunes]]** sur Android. |
| | * **[[https://f-droid.org/fr/packages/com.dkanada.gramophone/|Gelli]]** sur Android. |
| |
| Contributeurs principaux : [[utilisateurs:krodelabestiole]]// | ===== Voir aussi ===== |
| Contributeurs : [[utilisateurs:stylou]]// | |
| |
| | * (//en//) [[https://jellyfin.org/|site officiel]] |
| | * (//en//) [[https://github.com/jellyfin/jellyfin|GitHub]] |
| | * (//en//) [[https://jellyfin.org/docs/|documentation officielle]] |
| | * [[wpfr>Jellyfin|page Wikipedia]] |
| | * Autres [[:multimedia#serveurs multimédia]] |
| | |
| | ---- |
| | //Contributeurs : [[:utilisateurs:krodelabestiole]], [[:utilisateurs:stylou]].// |