Vue normale

Reçu avant avant-hier

Streaming à la carte sans stockage local : Decypharr, débrideurs et torrenting

Par :Aerya
25 août 2025 à 17:53

Je continue mon tour d’horizon des solutions de streaming à la carte, légales ou non selon les pays, et qui permet de se créer et maintenir une bibliothèque multimédia sans stockage local.

Je n’aborderai pas publiquement les solutions de streaming depuis des .nzb directement.

Sur le même principe que Stremio, Vortex, ou RDT-Client/Zurg, ou encore DebridMediaManager, on peut utiliser Decypharr pour simuler un client BitTorrent (qBittorrent) et streaming le contenu de .torrent depuis des débrideurs, dont TorBox.

Je vais détailler ici l’installation manuelle de Decypharr, Prowlarr et Radarr/Sonarr/Plex mais tout est notamment inclus dans le script SSDv2 (avec une grosse et belle nouveauté à venir).

J’en profite pour remercier Laster13 et Teal-C pour leurs réponses à mes questions.

La dernière mouture de Decypharr embarque rClone et sa configuration sera automatisée. Mes tests sont réalisés avec Prowlarr et des indexeurs FR publics dont YGG via « api.eu », le débrideur AllDebrid ; et je ne « tape » que dans le contenu en cache chez AD (donc aucun téléchargement).
Verdict : RàS pour les films, quelques saisons de séries manquantes uniquement dans le cache, OK avec le téléchargement.

Le plus important est de bien comprendre que si on demande aux *arrs d’organiser les bibliothèques dans /mnt/Bibliothèques, ils ne vont y mettre que des symlinks vers le montage rClone d’AllDebrid (/mnt/decypharr).
Les *arrs, pour traiter les fichiers, tout comme Plex (ou autre) pour leur lecture, doivent avoir accès à ce montage rClone.
C’est pourquoi il est impératif de monter ce dossier en volume pour chaque Docker devant y avoir accès.

Arborescence du test :

aerya@StreamBox:/$ tree -L 2 /mnt/
/mnt/
├── Bibliothèques
│   ├── Films
│   └── Séries
├── Data
│   ├── lost+found
│   ├── quotaless
│   └── rCloneCache
└── decypharr
    ├── alldebrid
    └── qbit
        ├── radarr
        └── sonarr

Bibliothèques : dossier racine pour les *arrs
Data/rCloneCache : j’avais déjà le dossier pour autre chose, j’utilise le même

decypharr/alldebrid : montage de mon compte AD
decypharr/qbit : dossier de téléchargement (simulé) des fichiers. Les sous-dossiers radarr/sonarr seront ajoutés automatiquement lors de la configuration de Decypharr (tags)

Il faut installer et lancer Decypharr avant le reste vu que tout dépend ensuite du montage du débrideur et des symlinks. Idem s’il faut relancer le Docker Decypharr, il faut relancer les autres ensuite.

services:
  decypharr:
    image: cy01/blackhole:latest
    container_name: decypharr
    restart: always
    cap_add:
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    ports:
      - 8282:8282
    volumes:
      - /mnt:/mnt:rshared
      - /mnt/decypharr/qbit:/mnt/decypharr/qbit
      - /home/aerya/docker/decypharr/configs/:/app
    environment:
      - TZ=Europe/Paris
      - PUID=0
      - PGID=0
    devices:
      - /dev/fuse:/dev/fuse:rwm
    labels:
      - com.centurylinklabs.watchtower.enable=true

/mnt/decypharr/qbit devant être commun aux *arrs et Plex, on y montera /mnt:/mnt dans chaque ainsi que /mnt/decypharr/qbit:/mnt/decypharr/qbit dans les *arrs qui sauront directement où aller chercher les fichiers à traiter.

La configuration n’est pas vraiment expliquée dans la doc, la mienne n’est peut-être pas optimale mais fonctionne.

Je n’ai rien modifié dans l’onglet général. J’ai testé les notifications Discord (attention on voit la passkey des trackers utilisés) mais y’a vraiment pas d’intérêt si on ne fait qu’utilise le cache du débrideur (pas de téléchargement).

decypharr1

Pour la partie débrideur, on fait notre choix, on colle une clé API (ou plusieurs) et j’ai configuré le montage dans

/mnt/decypharr/alldebrid/__all__


On peut ajouter plusieurs débrideurs. On pourra les attribuer à un *arr lié à Decypharr et même les sélectionner lors de l’ajout manuel d’un .torrent

J’utilise le WebDav et je NE COCHE PAS la case Download Uncached pour qu’il ne télécharge aucun fichier (sur AD) mais n’utilise que son cache.
Je fais ça parce que je voulais tester le cache d’AD et ne voulais pas télécharger des fichiers sans les partager. On peut tout à fait faire les 2 mais attention, il n’y aura pas de seed (donc ratio 0). A ne pas faire chez les Tier 1 sous peine de voir son compte banni !
Certains ont créé des scripts qui captent les .torrent utilisés pour les mettre en seed depuis un client local ou sur un serveur. Dans ce cas, Decypharr est utilisable sans crainte sur les trackers privés.

decypharr2

Configuration du client qBittorrent émulé. Je met le chemin qui correspond au volume local dont je parlais au début

/mnt/decypharr/qbit
decypharr3

On peut ajouter les *arrs soit depuis Decypharr soit depuis les *arrs eux-mêmes. Je n’ai qu’AD en débrideur j’ai donc laissé la sélection auto mais on peut choisir.
Par exemple Radarr sur AD et Sonarr sur RD ou Sonarr4K sur TB etc. Selon les goût de chacun. Ce qui est certain, c’est que le cache de contenu MULTi/FRENCH est évidemment plus important sur AD et RD que sur TB, principalement utilisé par les anglophones pour Stremio.

decypharr4

Le Repair est le contrôle et la réparation des symlinks. Qui peuvent être cassés si le contenu lié est effacé du débrideur. Dans ce cas, selon la config, ça peut soit rechercher sur le débrideur (si le fichier a été renommé, vu que ça fonctionne avec le hash et non le nom) soit ça ira chercher un autre .torrent via les *arrs.
Pour l’instant je laisse l’option par défaut à savoir « per torrent » mais il est peut-être préférable d’utiliser « per file ». Dans le cas d’un .torrent de saison complètement, que ça ne recherche que l’épisode manquant (du cache) plutôt que de tout relancer.
Je l’ai mis en autotmatique, toutes les 24h.

decypharr5


Et enfin la partie rClone. Le monte globalement dans /mnt/decypharr et souhaite utiliser un cache (100Go) dans un dossier (et disque) qui me sert déjà à ça : /mnt/Data/rCloneCache
On peut sans doute améliorer cette configuration mais Plex lit un fichier de 94Go sans broncher…


decypharr6

Avec le mode de téléchargement activé, voici le rendu. PausedUP signifie que le .torrent est complété (et de fait plus en seed).

decypharr7

Je ne montre que l’exemple de configuration de Radarr. Pour Sonarr c’est la même logique. Chez moi c’est derrière un VPN pour des interrogations de sources hors Prowlarr et NZBHydra, il n’y a donc pas de port de publié.
Je retire tous les volumes par défaut pour ne monter que /mnt/decypharr/qbit:/mnt/decypharr/qbit et /mnt:/mnt

services:
  radarr:
    container_name: radarr
    restart: always
    network_mode: container:gluetun-mullvad
    environment:
      - TZ=Europe/Paris
      - PUID=0
      - PGID=0
    volumes:
      - /home/aerya/docker/radarr:/config
      - /mnt/decypharr/qbit:/mnt/decypharr/qbit
      - /mnt:/mnt
    labels:
      - com.centurylinklabs.watchtower.enable=true
    image: linuxserver/radarr:nightly

Configuration du dossier racine : /mnt/Bibliothèques/Films

radarr1

Configuration du client de téléchargement si on n’a pas ajouté Radarr depuis Decypharr. Il faut sélectionner qBittorrent

radarr2

Et dans l’adresse il faut mettre l’URL (ou l’IP) de Decypharr et le port (et SSL si vous utilisez une URL et un reverse proxy).
Le nom d’utilisateur et le mot de passe sont l’URL de Radarr et sa clé API.
La catégorie : radarr (et donc sonarr pour Sonarr ofc!)

Ne surtout pas cocher la case Sequential Order (sinon ça DL localement)

radarr3

Et comme le même chemin/volume est monté dans chaque Docker, il n’y a aucun Remote Path Mapping à mettre

radarr4

Lors de l’ajout d’un film, la complétion est quasi instantanée pour peu que le fichier cherché soit déjà dans le cache d’AllDebrid. Si vous activez le téléchargement des fichiers non encore en cache, ça peut prendre quelques minutes.


radarr5

En regardant de plus près, on voit bien que c’est un symlink vers le cache d’AllDebrid

aerya@StreamBox:/mnt/Bibliothèques/Films$ ls -l Alien\ -\ Romulus\ \(2024\)/
total 4
lrwxrwxrwx 1 root root 208 Aug 25 18:55 Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv -> /mnt/decypharr/alldebrid/__all__/Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY/Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv
ncdu 1.19 ~ Use the arrow keys to navigate, press ? for help
--- /mnt/Bibliothèques/Films/Alien - Romulus (2024)- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@   4.0 KiB [###################################################]  Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv


Plus globalement, tous les fichiers sont bien chez AllDebrid, monté via WebDav/rClone et je n’ai localement que des symlinks qui ne prennent aucune place.
En théorie, on pourrait se faire cette installation sur une Carte MicroSD de quelques Go 🙂

ncdu 1.19 ~ Use the arrow keys to navigate, press ? for help
--- /mnt ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   15.9 TiB [###################################################] /decypharr
    4.0 MiB [                                                   ] /Bibliothèques

Pour terminer, la configuration de Plex. Toujours avec /mnt:/mnt de monté pour garantir l’accès aux symlinks.

services:
  pms-docker:
    container_name: plex
    restart: always
    ports:
      - 32400:32400/tcp
      - 33401:33401/tcp
      - 3005:3005/tcp
      - 8324:8324/tcp
      - 32469:32469/tcp
      - 1900:1900/udp
      - 32410:32410/udp
      - 32412:32412/udp
      - 32413:32413/udp
      - 32414:32414/udp
    environment:
      - PLEX_UID=0
      - PLEX_GID=0
      - TZ=Europe/Paris
      - PLEX_CLAIM=claim-xxx
      - ADVERTISE_IP=http://192.168.0.163:32400/
    hostname: plex.xxx.xxx
    volumes:
      - /home/aerya/docker/plex:/config
      - /mnt:/mnt
      - type: tmpfs
        target: /transcode
        tmpfs:
          size: 4g
    labels:
      - com.centurylinklabs.watchtower.enable=true
    image: plexinc/pms-docker:latest
plex1
plex2

Loading

Script Seedbox Docker (SSDv2) et bien plus encore !

Par :Aerya
25 juin 2025 à 10:43

Ça fait maintenant quelques années que je suis et parle de « SSDv2 », mené notamment par Laster13 & Merrick puis rejoints au fil du temps par de nombreux développeurs francophones de l’univers du DL/streaming.

Ce script installe de manière assez simple, et pourtant complète, tout un tas d’outils en format Docker, derrière un proxy Traefik, pour créer, gérer et profiter d’une librairie de contenus numériques. Les configurations restent à charge de l’utilisateur bien évidemment.
Je pense confirme que le WiKi n’est pas à jour, mais voici un aperçu de ce qu’il permet d’installer, « c’est pas mal » 🙂
La liste est quasi sans fin puisqu’en plus de pouvoir installer des applications de son choix en parallèle du script, il est très souvent mis à jour.
Il y a des commits très fréquents, les développeurs (staffiens ou non) sont hyper présents et réactifs aux questions, remarques et suggestions. Il n’est pas rare de croiser une demande d’applicatif avec une réponse testée voire envoyée en prod dans les quelques heures. Ça sent la passion et la bienveillance !
Le Discord est très clair et très bien catégorisé et on peut y discuter de tout du moment qu’on ne poste pas d’accès direct à du contenu non autorisé.

Ce script s’adresse d’une part aux débutants sur serveurs Linux, mais qui ont déjà des notions liées aux univers de l’auto-hébergement, du téléchargement et du streaming (ou savent utiliser Google/Reddit) pour savoir ce que sont Traefik, PlexPatrol, Decypharr, RDT-Client, Radarr, Jellyfin etc.
Mais ce script est également destiné aux geeks qui souhaitent juste installer des applications simplement, testées, avec un support, en quelques choix dans un terminal. Sans se prendre le chou.

De mon point de vue, sans compter les applications « tierces » qui servent à faire ses comptes, héberger ses photos ou des serveurs de jeux, ce script couvre les 3 tendances de ces dernières années :
– La création d’une bibliothèque multimédia locale via les *arr, selon son stockage disponible,
– La création d’une bibliothèque distante via les *arr et des débrideurs (leur cache plus précisément),
– L’hébergement d’outils dédiés à Stremio pour se faire sa plateforme personnalisée de streaming.

Les incontournables pour l’installer : savoir lire, un nom de domaine ajouté à Cloudflare et une machine dédiée en fresh install Ubuntu 24 (à date) : VPS, VM, serveur baremetal, vieux PC/portable…
Tout est indiqué dans les prérequis. Et si Linux = martien pour vous, vous êtes guidés tout au long de l’installation, c’est vraiment bien expliqué.

J’installe ça sur un vieux PC avec un i3-6100 @3.70GHz, 8GB de RAM et Ubuntu serveur 24, ce qui correspond au minimum requis.

Si vous hébergez la machine chez vous, le script va interroger ip-api.com qui est bloqué par une liste de filtrage DNS (AdGuardHome, Pi-Hole), anticipez son déblocage.
De même, pensez à rediriger les ports 80 et 443 vers la machine depuis votre box FAI/routeur, pour que le reverse proxy puisse fonctionner. Si vous avez déjà un reverse proxy, comme moi j’ai NPM, soit vous le coupez le temps de tester soit vous migrez vers Traefik soit vous faites tourner les 2 en parallèle (je dois tester ça).

Après MàJ de l’OS et installation de git, cloner le repo SSDv2 dans son /home

Puis lancement du script

On répond à quelques questions pour la configuration : définir un mot de passe, renseigner un email, un nom de domaine

Indiquer si on souhaite utiliser Cloudflare. Comme dit au début de cet article, c’est bien plus pratique, notamment pour la création des sous-domaines utilisés pour les différents services, mais également pour masquer son IP privée (si serveur à la maison) des personnes qui auront accès auxdits services.

On indique alors email et clé API. Là encore, si vous ne savez pas faire, suivre la procédure du WiKi (prérequis).

Puis l’installation suit son cours

À l’installation de Traefik, le reverse proxy Nginx, on peut modifier le sous-domaine par défaut et définir le type d’authentification : basique, oauth ou Authelia (application tierce, renforcée, mais qui fait aussi plus « pro »). Tout est là encore indiqué dans le WiKi.

Et nous arrivons au choix d’installation ou non de Zurg. C’est particulièrement là que le WiKi n’est plus à jour, Zurg et tout cet univers du streaming via les débrideurs étant assez récent.

Car il s’agit en fait d’installer une version modifiée de rClone qui permet d’utiliser RealDebrid via un WebDav pour accéder/indexer/lire leur contenu en cache plutôt que de le télécharger sur son serveur, de manière « classique », que ce soit en BitTorrent ou Usenet.
Attention, comme toujours, cette méthode n’est pas sans risque pour les comptes utilisés sur les trackers BitTorrent (assimilé à de la triche) et non plus infaillible puisque de nombreux utilisateurs se rendent par exemple compte ce matin que beaucoup de contenu en cache sur AllDebrid a été vidé (tout se reDL de manière automatisée, mais ça met un coup à l’instant T aux bibliothèques Emby/JellyFin). Et il se dit également qu’il y a plus de contenu VF en cache chez AD que RD.
Bien entendu, ça suppose d’avoir un compte Real-Debrid et la clé API qui va bien.

On pourra par la suite installer RDT-Client qui permet d’utiliser, entre autres, AllDebrid.

S’ensuit la création des dossiers pour la bibliothèque, je fais simple et me contente de Films et Series

Et l’installation de base est terminée !

Tadaaaaa !!!

De là, on peut suivre les consignes puis de déco/reconnecter à son serveur et relancer le script.

Pour le configurer ou modifier les applis, vous pouvez le relancer
cd /home/aerya/seedbox-compose
./seedbox.sh

Le 1er choix permet d’installer des applications (ou les copier, sauvegarder, etc).

Pour parcourir/installer les applications disponibles dans le script, aller sur Installer / Applications seedbox et <entrée> puis utiliser les flèches haut/bas et la barre espace pour cocher les cases

Une fois le ou les choix fait.s, poursuivre en appuyant sur <entrée>

Dans ce test, je ne personnalise aucun nom de domaine (choix n => tout par défaut => application.domaine.com) et utilise Authelia pour les authentifications.
J’aurais apprécié avoir une option pour sélectionner par défaut, pour l’installation en cours, les choix de sous-domaine et auth, pour ne pas avoir à rester devant le terminal et interagir pendant la suite du processus.

Là je m’installe quelques trucs à tester et de quoi me refaire un setup Stremio personnel. Notez que pour ça (StreamFusion et StremioCatalog/Trakt) il faudra des clés API Alldebrid et/ou Real-Debrid (lien référent si vous voulez vous faire un compte), TMDB, Trakt (client ID et secret).

On peut gérer la seedbox via le choix 2 : sécurisation, changement de domaine, ajout d’un client VPN, de divers outils…

Il ne reste enfin qu’à configurer les outils installés. C’est propre à chacun et dépend de ses abonnements à des débrideurs, de ses comptes sur des sites « sources » et de ses goûts en termes de qualités et langues. Bref, bien trop compliqué de préparer des configurations prêtes à l’emploi.
TRaSH-Guides propose des exemples et profils, par exemple pour les *arr.

Le petit bémol de SSDv2 est qu’il ne propose pas encore de dashboard récapitulatif des applications installées et des sous-domaines. Il semble que ce soit en projet, mais sans ETA. Vu le boulot qu’ils abattent à côté, on ne leur en veut pas 😛

Du coup je me suis fait un petit script qui va chercher les sous-domaines de Traefik, les Dockers créés et mix tout ça dans une récap qui n’est sans doute pas la plus belle mais que je trouve bien pratique. J’ai publié ça sur mon GitHub.

Merci à laster13 pour sa dispo et sa bienveillance, depuis des années 🙂

Loading

❌