Vue normale

Reçu aujourd’hui — 4 juillet 2025Up and Clear

Streaming à la carte sans stockage : RDT-Client, rClone, Zurg, débrideurs et torrenting

Par :Aerya
4 juillet 2025 à 12:43

Je me remets doucement dans l’univers des *arrs & médiathèques et je dois dire qu’en 2 ans, des solutions ont poussé comme les champignons en Corrèze en plein automne !

J’en étais resté aux *arrs + Plex/Emby/Jellyfin et le stockage sur NAS, serveurs ou en Cloud via rClone et Dropbox/Telegram (abus). Les hébergeurs du moment sont Uloz, Quotaless et Pikpak. Seulement, depuis 2014/2015 avec rClone + Amazone, on sait bien qu’aucune solution de hoarding de ce genre n’est pérenne. Ou reste au même prix. Ou les deux, coucou Google Workspace.

Il y a toujours la solution des serveurs dédiés type OneProvider, Hetzner ou encore SeedHost mais les prix montent toujours petit à petit et on reste très loin des Po de stockage nécessaires à ce que j’appelle en bon vieux crouton : le P4S.

J’ai aussi profité du streaming depuis Usenet (via rClone) mais ce projet n’est pas abouti, non pas du fait du développeur, mais tout simplement parce que la purge se fait de plus en plus présente sur les newsgroups. Là où on pouvait archiver le contenu de trackers BitTorrent y’a 10-15 ans, on sait maintenant que tout peut être effacé sans prévenir. Faut dire… vu les prix des abonnements et la place nécessaire, y’a un choix à faire.

L’eldorado du moment ce sont les débrideurs. Ce qui était avant plutôt exploité en streaming pour l’IPTV est maintenant « mainstream ». Les *arrs ou autres solutions envoient les fichiers .torrents (AllDebrid, RealDebrid etc) ou .nzb (TorBox notamment) chez un débrideur qui télécharge et met en cache les fichiers cibles. On utilise ensuite Stremio ou un montage (rClone ou autre) pour en profiter via son lecteur favori Plex/Emby/Jellyfin.

Là encore, aucune garantie quant à la pérennité des fichiers ni même des services ou du moins de leur utilisation dans ce contexte :
Fin de vie pour UpToBox,
RealDebrid blacklist certains fichiers, (dont pas mal de YGG, forcément vu qu’ils sont semi-publics),
Débrideurs dans le collimateur des ayant-droits,
AllDebrid et vidage du cache

Et c’est là que c’est la foire d’empoigne niveau outils… L’un remplaçant l’autre, certaines versions sous abonnement (Patreon), outils compatibles uniquement avec certains hébergeurs etc.
Les 2 Discord en vue pour tous ses sujets sont celui de SSDv2 (francophone) et Ragnarok (EN). Et je vous glisse également celui de Whamy qui a monté TorBox chez qui je suis client et que je vais pérenniser vu qu’ils permettent d’utiliser Usenet. Ce sera sans doute mon prochain article.

Ici je teste RealDebrid et RDT-Client. RD étant monté avec rClone et Zurg pour une lecture sur Plex. Un grand MERCI à Wassabi qui m’a bien aidé quant aux foutus méandres des droits sous UNRAID 🙂
Niveau arborescence, tout va se passer dans /mnt/user/RealDebrid


root@HomeBox:/mnt/user/appdata/zurg/scripts# tree /mnt/user/RealDebrid/
/mnt/user/RealDebrid/
├── Medias
│   ├── Concerts
│   ├── Docs
│   ├── Films
│   ├── Series
│   └── Spectacles
├── local
├── rdt
├── seedtime
└── zurg
    ├── __all__
    ├── __unplayable__
    └── version.txt
  • Medias : stockage des médias symlinkés depuis RD
  • local : dossier de téléchargement des symlinks pour RDT-Client, où les *arrs viendront les prendre pour les traiter
  • rdt : dossier de téléchargement des .torrents ajoutés sur RD par RDT afin de les seeder depuis chez moi (via VPN)
  • seedtime : le dossier de téléchargement/seed des .torrents. Je seed 1 mois via qBitTorrent (44000 minutes)
  • Zurg : montage de RD en WebDav. C’est de là que seront faits les symlinks pour /Medias

Commençons par rClone. Je suis sur UNRAID mais ça marche bien entendu sur tout Linux/Unix et j’utilise le plugin de Waseh qu’on trouve dans les Applis. Testé avec rClone normal et en BETA, RàS.
Édifier le fichier de configuration et y placer les remotes pour Zurg.

[zurg]
type = webdav
url = http://localhost:9999/dav
vendor = other
pacer_min_sleep = 0

[zurghttp]
type = http
url = http://localhost:9999/http
no_head = false
no_slash = false

On peut ensuite monter RD avec un petit script rClone dans user-scripts (ou systemd sur un autre OS) :
Comme je suis sur UNRAID, que user-script lance les scripts en root mais que mes Dockers tournent avec l’UID 99 et le GID 100, je les force pour ce script rClone (merci Wassabi).

#!/bin/bash

rclone mount zurg: /mnt/user/RealDebrid/zurg --allow-non-empty --allow-other --dir-cache-time 05s --allow-other --uid 99 --gid 100 --daemon -v

Passons à Zurg(-testing) :
J’utilise la version gratuite (sans DMM).
C’est un WebDav pour RealDebrid qui n’en propose pas et qui permet de le monter dans rClone. AllDebrid par exemple dispose d’un WebDav en standard, c’est pourquoi on peut le monter directement dans rClone. Si c’était simple… 🙂

services:
  zurg:
    image: ghcr.io/debridmediamanager/zurg-testing:latest
    container_name: zurg
    restart: always
    ports:
      - 9999:9999
    volumes:
      - /mnt/user/appdata/zurg/scripts/plex_update.sh:/app/plex_update.sh
      - /mnt/user/appdata/zurg/config.yml:/app/config.yml
      - /mnt/user/appdata/zurg/data:/app/data
    labels:
      - com.centurylinklabs.watchtower.enable=true

Si vous devez mapper d’autres ports pensez à les changer dans la configuration de rClone.

Le script d’update de Plex (en cas de changement de symlinks) :
Il faut y mettre l’URL du serveur Plex et son token ainsi que le dossier de montage de RealDebrid.

#!/bin/bash

# PLEX PARTIAL SCAN script or PLEX UPDATE script
# When zurg detects changes, it can trigger this script IF your config.yml contains
# on_library_update: sh plex_update.sh "$@"

# docker compose exec zurg apk add libxml2-utils
# sudo apt install libxml2-utils

plex_url="https://plex.domain.tld"
token="***" 
zurg_mount="/mnt/user/RealDebrid"

# Get the list of section IDs
section_ids=$(curl -sLX GET "$plex_url/library/sections" -H "X-Plex-Token: $token" | xmllint --xpath "//Directory/@key" - | grep -o 'key="[^"]*"' | awk -F'"' '{print $2}')

for arg in "$@"
do
    parsed_arg="${arg//\\}"
    echo $parsed_arg
    modified_arg="$zurg_mount/$parsed_arg"
    echo "Detected update on: $arg"
    echo "Absolute path: $modified_arg"

    for section_id in $section_ids
    do
        echo "Section ID: $section_id"

        curl -G -H "X-Plex-Token: $token" --data-urlencode "path=$modified_arg" $plex_url/library/sections/$section_id/refresh
    done
done

echo "All updated sections refreshed"

# credits to godver3, wasabipls

Son fichier de configuration :
Pour la version gratuite. Très épuré, selon les recommandations de Wassabi. Y ajouter son token RealDebrid.

root@HomeBox:/mnt/user/appdata/zurg# cat config.yml 
zurg: v1
token: ***
enable_repair: true
auto_delete_rar_torrents: true
retain_rd_torrent_name: false
retain_folder_name_extension: false
serve_from_rclone: false
retries_until_failed: 5
check_for_changes_every_secs: 10
repair_every_mins: 60
rate_limit_sleep_secs: 6
#force_ipv6: false
on_library_update: sh plex_update.sh "$@"

RDT-Client est un outil qui se fait passer pour qBitTorrent auprès des *arrs et permet de télécharger des .torrents via un débrideur, d’en télécharger le symlinks pour que les *arrs puissent faire leur travail et enfin, sur option, de télécharger le .torrent localement afin de le seeder pour respecter à la fois les règles du P2P mais aussi des trackers.

RDT est compatible avec AllDebrid, RealDebrid, TorBox, Premiumize et DebridLink. Il ne peut cependant utiliser qu’un débrideur à la fois. Si vous avez plusieurs comptes il faudra lancer autant d’instances et répartir leur utilisation avec les tags. Plutôt que d’avoir les classiques radarr, sonarr on peut imaginer radarr, sonarr, radarr4k, sonarr4k, radarranimes, sonarranimes etc.

Afin de prévenir tout couac lié aux droits d’accès entre RDT, les *arrs et Plex, remplacer le volume par défaut du Docker pour Downloads et mettre en local comme en container /mnt/user/RealDebrid/

En se rendant sur la WebUI, créer un user:pwd et commencer à configurer en se rendant sur l’onglet GUI Defaults.

Sélectionner Download all files to host. Vu qu’on va utiliser le client de téléchargement « Symlink Downloader », ça va bien rapatrier les symlinks dans le dossier /mnt/user/RealDebrid/local où les *arrs iront les chercher pour les ranger correctement dans les bibliothèques qui sont dans /mnt/user/RealDebrid/Medias

Indiquer les catégories radarr,sonarr qui seront utilisées par les applications éponymes. Et en rajouter selon vos besoins et le nombre d’instances de RDT que vous voulez.

En Post Download Action, choisir de retirer le .torrent du client

Activer (remplacer 0 par 1) Delete download when in error. De cette manière RDT supprimer tout .torrent foireux (pas de téléchargement, blacklisté par RD etc) et donc les *arrs sauront qu’il faut en chercher un autre

Onglet Provider : choisir un débrideur et sa clé API.

Cocher Automatically delete downloads removed from provider pour ne pas avoir de symlink orphelin. Si Radarr ou Sonarr voient un fichier manquant ils le remettront en téléchargement.

Onglet General, vous pouvez désactiver l’authentification en passant si c’est qu’un local chez vous, il faut indiquer le chemin de sauvegarde des .torrents que RDT envoie sur le provider. Comme expliqué plus haut, chez moi c’est /mnt/user/RealDebrid/rdt

Le but étant de seeder correctement ces derniers. Sans parler des 7-8 sites FR/QC privés qu’on quasi tous dans nos Prowlarr/Jackett, même si on ne se sert que de YGGtorrent, ne pas seeder est contre l’esprit du P2P et surtout hors règles des dits trackers BitTorrent et on s’expose à un bannissement en ne jouant pas le jeu.

Si certains utilisent ruTorrent et ses plugins pour gérer finement le seedtime selon la source, je suis venu avec mes gros sabots et utilise qBitTorrent avec un seedtime unique d’1 mois (44000 minutes). Attention en passant, la dernière version de qBit déraille pour la WebUI, restez au max sur la 5.1.2

services:
  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:5.1.2-libtorrentv1
    container_name: qbittorrent-divers-mullvad
    network_mode: container:gluetun-mullvad
    environment:
      - PUID=99
      - PGID=100
      - TZ=Europe/Paris
      - WEBUI_PORT=8011
      - TORRENTING_PORT=45657
    volumes:
      - /mnt/user/appdata/qbittorrent-divers-mullvad:/config
      - /mnt/user/RealDebrid/:/downloads
    restart: always

On continue avec l’onglet Download Client de RDT : sélectionner le Symlink Downloader.

Dans le dossier local /mnt/user/RealDebrid/local et le même en chemin mappé pour les *arrs, comme ça on n’a rien à configurer de leur côté

Et viser aussi le Rclone mount path (only used for the Symlink Downloader) : /mnt/user/RealDebrid/zurg/_all_ (y’a 2 underscores de chaque côté de all, vive le markdown qui transforme all en gras…)

Normalement rien à configurer dans l’onglet qBitTorrent / *darr qui reprend les informations enregistrées dans GUI Defaults.

Je ne me sers pas de Watch, les *arrs s’occupant des films et séries mais ça pourrait pas exemple servir pour des documentaires, qu’on doit souvent récupérer à la main ou via un RSS/API et un REGEX.

Bien que je me doute que vous savez installer Radarr, Sonarr et Plex en 2025, attention encore une fois à bien mettre /mnt/user/RealDebrid/ comme volume local et container.

Pour ajouter RDT-Client comme client de téléchargement aux *arrs, passer par l’ajout du client émulé : qBitTorrent.

Je vous laisse configurer comme vous voulez les profils, tags, qualités etc.

Attention, le root folder est /mnt/user/RealDebrid/Medias/Films et ce sera d’ailleurs là aussi qu’il faudra aller chercher les bibliothèques dans Plex.

Plex indexe tout dès que le téléchargement est signalé complété par un *arrs.

Niveau consommation de ressources c’est peanuts, ça passe très bien sur mon petit NAS UNRAiD LincStation N1 et son CPU… « basse consommation » 🙂

Alors ? Où est le loup ?! Bah y’en n’a pas vraiment. Y’a de tous les avis sur chaque débrideur, encore en plus en cas de panne, sur qui a le plus de contenu VF en cache etc.

De mon côté, très petit consommateur, qui va de toute manière se concentrer sur TorBox parce qu’ils permettent d’utiliser des .nzb, j’ai pas constaté de pépin. Quelques .torrents bogues mais ils sont retirés automatiquement par RDT et un *arr en envoie un autre. J’ai juste dû le faire manuellement pour 1 film où aucune version 20160p ne passait. Mais attention, je n’ai utilisé quasi que YGG pour ce test, avec des trackers privés il n’y a aucun raison que les .torrents soient blacklisté par RealDebrid.

Après… fibré, amateur de Usenet… j’ai un peu tiqué en voyant les vitesses de téléchargement côté RD ^^

Bon, je vous rassure, c’est comme sur son propre serveur, ça fluctue selon les peers, la charge des serveurs du débrideur et le sens du vent. C’est du P2P !

Au final le système est très pratique et RDT-Client s’intègre facilement dans une stack déjà établie. Et utiliser les *arrs permet d’affiner la qualité et les sources, en comparaison avec une solution comme Stremio (en passant par les services mis à disposition publiquement).

Là j’ai testé avec Plex mais c’est aussi fonctionnel avec Emby/Jellyfin puisque si un fichier disparaît de RealDebrid, les *arrs l’identifieront comme manquant et le remettrons en téléchargement.

Loading

Reçu avant avant-hierUp and Clear

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

SmartProxy : l’extension pratique

Par :Aerya
12 juin 2025 à 06:00

Je navigue tout le temps sous VPN et il arrive que certains sites soient bloqués du fait de l’IP utilisée. C’est par exemple le cas de YouTube qui veut donc que je me connecte pour vérifier mon droit d’accès.
SmartProxy est un plugin Firefox (tous OS, Android), Chrome & Edge (…) qui permet d’ajouter des proxies personnels ou via liste et surtout de créer des règles d’utilisation.
Je le trouve plus simple (et « moderne ») que FoxyProxy que j’ai utilisé des années.

Dans mon cas, un simple serveur proxy (https/socks) installé sur mon serveur au garage suffit vu que je n’ai besoin que d’une IP française « propre ». Ceci dit rien n’interdit de lier ce serveur à un Docker VPN.

Et on peut soit activer un proxy par défaut soit via des règles

Simple et pratique.

Loading

❌