Introduction
Cet article est plus accessible que le précédent, mais il suppose que tu as déjà ta seedbox sous Docker et Ubuntu Server. Si ce n'est pas le cas, commence par là.
Ta seedbox télécharge et partage, c'est très bien. Mais récupérer tes fichiers en SFTP pour les ouvrir dans un lecteur vidéo, c'est vite pénible. L'étape suivante, c'est de te monter une vraie médiathèque : une interface propre, avec affiches, résumés et reprise de lecture, accessible depuis ta télé, ton téléphone ou ton navigateur.
C'est le rôle de Jellyfin, un serveur multimédia libre, gratuit et sans compte à créer chez un tiers. On va l'installer à côté de qBittorrent, sur le même serveur, et le faire lire directement dans le dossier des téléchargements : un torrent se termine, il apparaît dans ta médiathèque.
(Comme toujours : pour des contenus dont tu as les droits.)
Glossaire
| Terme | Définition |
|---|---|
| Jellyfin | Serveur multimédia libre qui organise et diffuse tes films, séries et musiques |
| Bibliothèque | Un dossier que Jellyfin analyse et présente (films, séries...) |
| Catégorie (qBittorrent) | Une étiquette attribuée à un torrent, qui peut aussi lui imposer un dossier de destination |
| Métadonnées | Les informations affichées autour d'un média : affiche, résumé, casting, année... |
| Lecture directe (direct play) | Le fichier est envoyé tel quel à l'appareil, sans conversion |
| Transcodage | Conversion du fichier à la volée quand l'appareil ne sait pas le lire. C'est gourmand en processeur |
Ce que l'on va construire
- Des catégories qBittorrent (films, séries) qui rangent chaque téléchargement dans le bon sous-dossier.
- Un dossier pour les téléchargements en cours, séparé, pour que Jellyfin ne voie jamais un fichier à moitié téléchargé.
- Un conteneur Jellyfin, ajouté au même
docker-compose.ymlque qBittorrent, qui lit le dossier des torrents en lecture seule.
Cette lecture seule est importante : le dossier est aussi celui que ta seedbox partage. Si Jellyfin renommait ou déplaçait un fichier, le torrent ne le retrouverait plus et arrêterait de partager. Ici, Jellyfin regarde, mais ne touche à rien.
Prérequis
- La seedbox de l'article précédent, avec Docker et le dossier
/srv/data. - Un espace disque suffisant.
- Tes UID/GID (
id -uetid -g, en général1000).
Étape 1 : organiser les dossiers
Crée les sous-dossiers de destination, et le dossier des téléchargements en cours :
mkdir -p /srv/data/torrents/movies /srv/data/torrents/tv
mkdir -p /srv/data/incomplete
mkdir -p ~/seedbox/jellyfin/config ~/seedbox/jellyfin/cache
Remarque : incomplete est à côté de torrents, pas dedans, pour que Jellyfin n'ait jamais accès à ce qui n'est pas terminé.
Étape 2 : configurer qBittorrent
Dans l'interface web de qBittorrent, Options → Téléchargements :
- Mode de gestion des torrents par défaut : "Automatique". C'est ce qui permet aux catégories de choisir le dossier.
- Coche Conserver les torrents incomplets dans et indique
/data/incomplete. À la fin du téléchargement, qBittorrent déplace le fichier dans son dossier final.
Ensuite, crée deux catégories (clic droit dans la colonne de gauche, Catégories → Ajouter une catégorie) :
movies, avec le dossier de destination/data/torrents/movies;tv, avec le dossier de destination/data/torrents/tv.
Désormais, quand tu ajoutes un torrent, tu choisis sa catégorie : il se télécharge dans incomplete, puis arrive tout seul dans le bon dossier.
Étape 3 : ajouter Jellyfin au docker-compose.yml
Ouvre ton fichier existant et ajoute le service sous qbittorrent (à l'intérieur de services:) :
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: 1000:1000
ports:
- 8096:8096
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- /srv/data/torrents:/data/torrents:ro
restart: unless-stopped
Ce que fait chaque ligne :
user: l'utilisateur sous lequel tourne Jellyfin. Mets le même UID/GID que pour qBittorrent.ports: l'interface web est sur le port 8096../jellyfin/configet./jellyfin/cache: la configuration et le cache de Jellyfin, conservés hors du conteneur./srv/data/torrents:/data/torrents:ro: le dossier des torrents, en lecture seule (:ro). Garde-le tel quel.
Étape 4 : lancer et configurer
cd ~/seedbox
docker compose up -d
docker compose ps
Ouvre http://IP_DE_TON_SERVEUR:8096 et suis l'assistant de démarrage :
- Choisis la langue.
- Crée ton compte administrateur (avec un vrai mot de passe).
- Passe l'ajout de bibliothèques pour l'instant, on le fait juste après.
- Garde la langue des métadonnées en français.
Étape 5 : créer les bibliothèques
Dans Tableau de bord → Bibliothèques → Ajouter une bibliothèque :
- Films : type "Films", dossier
/data/torrents/movies. - Séries : type "Séries TV", dossier
/data/torrents/tv.
Garde le français pour la langue des métadonnées et la France comme pays. Jellyfin va ensuite chercher les affiches et les résumés pour chaque média.
Étape 6 : tester
- Ajoute un torrent dans qBittorrent, avec la catégorie
moviesoutv. - Attends la fin du téléchargement.
- Le fichier arrive dans le dossier de la catégorie, et Jellyfin le détecte (ou lance un scan manuel de la bibliothèque si besoin).
Si Jellyfin se trompe de film ou de série, ouvre le média, menu à trois points → Identifier, et choisis la bonne fiche. Il vaut mieux corriger ici que de renommer le fichier, car on ne touche pas à ce que partage la seedbox.
Étape 7 : regarder sur tes appareils
- Navigateur :
http://IP_DE_TON_SERVEUR:8096, ça marche tout de suite. - Télé, téléphone, box : installe l'application Jellyfin de ta plateforme, puis saisis l'adresse de ton serveur.
Privilégie les appareils qui lisent tes fichiers en lecture directe. Si l'appareil ne supporte pas le format, Jellyfin transcode, et ce n'est pas anodin pour le processeur d'un petit serveur.
Étape 8 : y accéder depuis l'extérieur (sans prendre de risques)
Comme pour qBittorrent, ne redirige pas le port 8096 sur ta box. Un serveur multimédia exposé tel quel est une cible facile. Deux options sérieuses :
- Un VPN (WireGuard, Tailscale...) : tu te connectes à ton réseau privé, et tout est accessible comme à la maison.
- Un reverse proxy avec HTTPS devant Jellyfin, si tu sais ce que tu fais.
Étape 9 : l'entretien
- Mettre à jour :
cd ~/seedbox
docker compose pull jellyfin
docker compose up -d
docker image prune -f
- Sauvegarder le dossier
~/seedbox/jellyfin/config: il contient tes comptes, tes réglages et l'historique de visionnage. - Surveiller l'espace disque (
df -h), comme pour la seedbox.
Les pièges classiques
- Une bibliothèque vide : le chemin renseigné dans Jellyfin est celui de ta machine, pas celui du conteneur. Utilise
/data/torrents/.... - Un film ou une série mal reconnus : les noms de torrents sont rarement parfaits. Utilise "Identifier" plutôt que de renommer.
- Un torrent qui n'apparaît pas : la catégorie n'a pas été choisie à l'ajout, ou le mode de gestion n'est pas sur "Automatique".
- Un fichier incomplet visible : le dossier des téléchargements en cours est resté dans
torrents. Permission denied: l'UID/GID du conteneur ne correspond pas au propriétaire des fichiers.- Un média qui disparaît : normal si tu supprimes le torrent avec ses fichiers dans qBittorrent.
- Saccades à la lecture : l'appareil ne sait pas lire le format, et le serveur transcode.
- Port 8096 redirigé sur la box : à éviter.
Conclusion
Tu as maintenant une chaîne complète : ta seedbox télécharge et partage, et Jellyfin présente le tout comme un vrai service de streaming, sans copier un seul fichier.
Reste un point faible : choisir la catégorie à la main à chaque ajout, et subir les noms de torrents. Dans le prochain article, on automatise l'ensemble pour que tout arrive tout seul, bien rangé et bien nommé.

Commentaires
Connectez-vous pour commenter ou répondre.