260914-les films de la Seedbox sur le Kdrive et indexation automatique Jellyfin
Mise en place le 14/09/2026. Scripts et README dans Jux-scripts/Seedbox-Films/ (arbre Syncthing). Tableau de bord : ligne « Seedbox » du tableau des procédures en pied de la veille du jour, et sonde « Seedbox-Films » des tâches nocturnes.
Le besoin, et ce qui a été écarté
Faire passer un film de la seedbox (pool372.seedbox.fr, accessible en WebDAV — c'est un Nextcloud) jusqu'à Jellyfin, sans le faire transiter par le PC, et que Jellyfin l'indexe tout seul.
- FileZilla, l'idée de départ : impossible. La version gratuite ne parle pas WebDAV (FTP/SFTP seulement) et, même en Pro, FileZilla ne fait jamais de transfert serveur → serveur : tout octet passe par le PC, deux fois le volume sur la ligne, PC allumé. Le mode direct FXP est propre au FTP et FileZilla ne l'a jamais implémenté.
- Un « dossier film du VPS » : le VPS n'a que 22 Go libres sur 99 (78 %) et aucune bibliothèque Jellyfin n'y vit — les 15 lisent toutes kDrive via
/mnt/nas_videosdepuis la bascule du 30/08. Cinq films et le disque était plein, BookStack avec. - Le streaming direct depuis la seedbox (montage rclone de son WebDAV dans Jellyfin) : techniquement possible, Nextcloud gère les requêtes par plage. Mais la seedbox est un espace de transit : le film disparaîtrait de Jellyfin — historique de visionnage compris — le jour du ménage. Écarté, la copie vers kDrive reste la voie durable.
Retenu : rclone sur le VPS, seedbox déclarée comme second remote à côté de kdrive. Le VPS pilote, mais le flux WebDAV de la seedbox est réécrit tel quel dans le flux WebDAV de kDrive — le disque du VPS n'est pas touché. La seedbox et kDrive restent « deux mondes » : le seul point de contact est le dossier FILMS de l'une vers le dossier movies de l'autre.
Le circuit
seedbox (WebDAV Nextcloud) kDrive (WebDAV) VPS
Seedbox/FILMS/*.mkv --rclone copy--> Videos_NAS/video/movies --FUSE--> /mnt/nas_videos/video/movies
(id 1482703) = /data/movies dans Jellyfin
bibliothèque « Films récents »
Un film terminé sur la seedbox est dans Jellyfin 5 à 11 minutes plus tard : jusqu'à 5 min pour qu'il soit tenu pour stable, jusqu'à 5 min avant le passage du cron, ~1 min de copie par film, ~30 s de scan.
Ce que fait seedbox_films.sh (cron VPS toutes les 5 min)
- Verrou par PID — un double lancement copierait deux fois les mêmes fichiers.
- Liste la seedbox (
rclone lsjson) : c'est la seule source de vérité (voir le piège kDrive ci-dessous). - Retient ce qui est présent sur la seedbox, stable depuis 5 min, et absent de sa mémoire (
/home/debian/.seedbox_films.copies, une lignetaille ⇥ nompar fichier copié). Exclut*.part,*.!qB,*.aria2et les dossiers cachés. Rien à faire → sort en silence, le journal ne grossit que quand il se passe quelque chose. - Vérifie que kDrive répond, puis
rclone copy --files-from-rawverskdrive:…/Videos_NAS/video/movies, en--size-only(le WebDAV kDrive n'expose ni hash ni date).copy, jamaissync: la seedbox n'est jamais modifiée, et une suppression sur la seedbox ne supprime rien sur kDrive. - Si la copie a réussi, les fichiers entrent en mémoire, puis :
rclone rc vfs/refresh dir=video/moviessur le montagekdrive-video(port 5578). Sans cela le montage garde son listing 72 h et Jellyfin ne voit rien — le même piège que Komga (page 168) ;POST /Items/{id}/Refreshsur la seule bibliothèque « Films récents » (a8c97a7ab1c7545488876ca753a24ab3), avec une clé API Jellyfin dédiéeseedbox-films— pas un scan général des 15 bibliothèques sur kDrive.
- Si la copie a échoué : rien n'entre en mémoire, tout est retenté au passage suivant.
--simulation passe --dry-run à rclone et s'arrête avant la mémoire et le rafraîchissement.
Première exécution — 14/09/2026
| Étape | Mesure |
|---|---|
| Copie seedbox → kDrive | 7 films, 13,4 Gio en 196 s (~73 Mo/s), disque du VPS intact |
| Rafraîchissement du montage | 3 s |
| Scan Jellyfin | 30 s plus tard, .nfo, affiches, fonds et logos produits pour 6 films sur 7 |
| Identification | La Corde au cou (Dead Man's Wire), Dreams, Michael, La Vallée des fous, Que la bête meure, Vivaldi et moi (Primavera) — et un raté : The.Mandalorian.And.Grogu.2026.Multi.Truefrench.Imax.WEBRIP.mp4, resté sous son nom brut (trop de jetons après l'année). À identifier à la main, ou nommer Titre (Année).ext sur la seedbox avant copie |
Pièges rencontrés — à ne pas redécouvrir
- ⚠ kDrive met plusieurs minutes à lister un gros fichier frais en WebDAV. Première version du script : un
rclone copyclassique, qui compare source et destination. Le passage suivant a recopié 5 films sur 7 — 10 Gio, 143 s — copiés 3 à 5 min plus tôt : kDrive ne les listait pas encore (à 8 min,rclone checkdonnait 0 différence ; retard d'indexation, pas perte). Avec un cron toutes les 5 min, chaque film aurait été copié deux fois. D'où la mémoire locale des copies : le script ne demande plus à kDrive ce qu'il possède. Conséquence à connaître : un film supprimé sur kDrive mais toujours dansFILMSn'est pas recopié — retirer sa ligne de.seedbox_films.copiespour le ravoir. La mémoire se purge seule des fichiers retirés de la seedbox, et un fichier remplacé par une version de taille différente est recopié (clé = taille + nom). - La racine WebDAV de la seedbox ne contient que
Seedbox/: le dossier estSeedbox/FILMS, pasFILMS. - rclone 1.74 dit « Skipped copy as --dry-run is set », plus « Not copying » : un comptage sur l'ancien motif fait croire à une simulation vide.
grep -crenvoie 1 quand il ne trouve rien —|| truederrière, toujours.- Trois noms pour la même chose : dossier kDrive
movies(id 1482703), bind Jellyfin/data/movies, bibliothèque « Films récents ». - Le garde-fou de session Claude Code a refusé de faire transiter le mot de passe de la seedbox dans une commande — heureusement : Julien l'a posé lui-même par
rclone config password seedbox pass '…', depuis sa console, en 30 secondes. Voir Sécurité.
Où sont les choses sur le VPS
| Quoi | Où |
|---|---|
| Script (propagé par Syncthing) | /home/debian/Documents/Jux_univers/Jux-scripts/Seedbox-Films/seedbox_films.sh |
| Cron | */5 * * * *, crontab de debian (sauvegarde crontab.bak-260914) |
| Journal | /home/debian/logs/seedbox_films.log (+ seedbox_films.cron.log, sortie brute) |
| Mémoire des copies | /home/debian/.seedbox_films.copies, amorcée le 14/09 avec les 7 premiers films |
| Secrets | /home/debian/.seedbox_films.env (chmod 600, hors Syncthing) : clé API Jellyfin, id de la bibliothèque, mot de passe RC du montage video |
Remote rclone seedbox | /home/debian/.config/rclone/rclone.conf (sauvegarde .bak-260914) — type = webdav, vendor = nextcloud, url = https://pool372.seedbox.fr/files/remote.php/dav/files/seedbox4f65a4ad8f8a0 |
Sécurité — le mot de passe de la seedbox
Il n'existe qu'à un seul endroit : rclone.conf du VPS, obscurci, permissions 600. Consigne explicite de Julien : il n'est ni dans CLAUDE.md, ni dans le README, ni dans cette page, ni dans la mémoire de Claude — contrairement aux autres identifiants de l'infrastructure. Il a été saisi par Julien depuis sa propre console. S'il change : rclone config password seedbox pass 'nouveau' sur le VPS, à taper par Julien.
Canari du matin
Deux entrées ajoutées le 14/09 dans Jux-scripts/Etat-Infra/ :
config.json, blocjournaux: sonde « Seedbox-Films », alerte surERREUR|AVERTISSEMENTparmi les 60 dernières lignes datées de moins de 24 h (erreur_heures, nouveau), et sansmax_heures: ce journal est muet quand rien n'est à copier, un silence n'est pas une panne.max_heuresest devenu facultatif dansetat_infra.pypour ce cas (sauvegarde.bak-260914).procedures.json: ligne « Seedbox → kDrive movies → Jellyfin », dernière copie lue sur le motiffichier(s) copie(s) en, sans cadence — « OK — à la demande ».
Lecture : ERREUR : seedbox injoignable toutes les 5 min = mot de passe changé ou seedbox arrêtée ; AVERTISSEMENT : vfs/refresh a echoue = montage kdrive-video mort, monitor-rclone.sh s'en occupe.
Débits mesurés
| Trajet | Débit |
|---|---|
| seedbox.fr → kDrive, piloté par le VPS, 2 flux | ~73 Mo/s (13,4 Gio en 196 s ; 10 Gio en 143 s) |
| kDrive → conteneur Jellyfin (mesure du 30/08) | 65,6 Mo/s |
| Pour mémoire : ce qu'aurait fait FileZilla | 2 × le volume sur la ligne Orange du PC |
Non fait, à décider
- Déclenchement à l'événement plutôt qu'au sondage. Le VPS ne peut pas être notifié par WebDAV. L'événement « téléchargement terminé » existe côté seedbox : le crochet « exécuter une commande à la fin » du client torrent (ruTorrent, qBittorrent, Deluge…) appellerait une URL du VPS (nginx, chemin secret, jeton) qui pose un drapeau lu par un
systemd.path. Le délai tomberait à la seule durée de la copie, et les 5 min de stabilité disparaîtraient — le client sait, lui, que le fichier est complet. Les identifiants kDrive ne quitteraient pas le VPS. Il faut savoir quel client torrent la seedbox propose et si ce réglage est accessible. - Ménage de la seedbox : rien ne supprime les fichiers copiés. Julien vide
FILMSquand il veut ; rien ne bouge sur kDrive. - Renommer les fichiers en
Titre (Année).extsur la seedbox avant copie, pour que Jellyfin identifie tout du premier coup.
No comments to display
No comments to display