6.1 KiB
title: Jellysweep created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, file-management, jellyfin, cleanup, python, automation] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=file-management, https://github.com/jon4hz/jellysweep]
Jellysweep 🧹
Outil Python d'auto-nettoyage pour Jellyfin : supprime automatiquement les films et épisodes non visionnés depuis longtemps, en s'appuyant sur les statistiques de visionnage de votre serveur média.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | https://github.com/jon4hz/jellysweep |
| GitHub | https://github.com/jon4hz/jellysweep |
| License | MIT |
| Langage | Python |
| Étoiles GitHub | 13 ⭐ |
| Dernière MAJ | 2025 |
| Catégorie | cat-file-management |
📝 Description
Jellysweep répond à un problème typique des utilisateurs de Jellyfin : les bibliothèques gonflent mécaniquement au fil des mois (séries terminées non revisitées, films vus une fois et oubliés, doublons). Plutôt que de purger à la main, Jellysweep automatise la suppression selon des règles temporelles et des statistiques d'usage fournies par l'API Jellyfin.
Le fonctionnement : Jellysweep interroge l'API Jellyfin, identifie les items (films/épisodes) non joués depuis X jours, vérifie qu'ils ne sont pas dans une « keep list » de l'utilisateur, puis supprime les fichiers du filesystem (et du catalogue Jellyfin) après une période de grâce configurable. Possibilité de recevoir une notification Telegram / Discord / webhook avant suppression effective.
⚠️ Note de confiance (low) : le projet est jeune (13⭐), la dernière MAJ est récente mais la communauté reste limitée. ⚠️ Tester sur un dataset non critique avant déploiement production, et toujours conserver un backup des médias.
Idéal pour les utilisateurs de Sonarr / Radarr / Jellyfin qui veulent boucler la boucle du cycle : téléchargement → lecture → suppression automatique.
🚀 Installation
Option 1 : Docker Compose (recommandé)
version: '3.8'
services:
jellysweep:
image: ghcr.io/jon4hz/jellysweep:latest
container_name: jellysweep
restart: unless-stopped
environment:
- JELLYFIN_URL=http://jellyfin:8096
- JELLYFIN_API_KEY=*** # Créer dans Jellyfin > Admin > API Keys
- JELLYFIN_USER_IDS=***_user_id
- GRACE_PERIOD_DAYS=14
- UNWATCHED_DAYS_THRESHOLD=90
- SCAN_CRON=0 3 * * * # Tous les jours à 3h du matin
- TZ=Europe/Paris
- WEBHOOK_URL=*** # Optionnel : notification Telegram/Discord avant suppression
volumes:
- /srv/media:/media:ro # Lecture seule pour l'analyse
- /srv/media-trash:/trash # Poubelle avant suppression définitive
depends_on:
- jellyfin
networks:
- media
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- "8096:8096"
volumes:
- /srv/media:/media
- jellyfin-config:/config
networks:
- media
volumes:
jellyfin-config:
networks:
media:
driver: bridge
Option 2 : Installation manuelle
git clone https://github.com/jon4hz/jellysweep.git
cd jellysweep
pip install -r requirements.txt
cp config.example.yaml config.yaml
# Éditer config.yaml (URL Jellyfin, API key, seuils)
python -m jellysweep --config config.yaml --dry-run
python -m jellysweep --config config.yaml
⚙️ Configuration
- API Key Jellyfin :
Dashboard > Administration > API Keys > +→ nommer « Jellysweep ». - Grace period : nombre de jours entre la détection et la suppression effective (sécurité anti-faux positif).
- Keep list : titres à ne jamais supprimer, via fichier
keep.txtou interface. - Cron interne : configurer la fréquence d'analyse (1×/jour suffit).
- Mode dry-run : toujours tester en
--dry-rund'abord pour voir ce qui serait supprimé. - Webhook : Telegram/Discord pour recevoir la liste des fichiers supprimés la nuit.
🔄 Alternatives
Open Source
- Sonarr / Radarr — Gestionnaires automatisés (mais ne suppriment pas l'ancien)
- cleanup-jellyfin (scripts) — Projets similaires communautaires
- trash-guides (rConfig) — Bonnes pratiques, pas un outil
- app-filebrowser — Permet la suppression manuelle
- autoremove-torrents — Cible qBittorrent/Deluge, pas Jellyfin
Propriétaires
- Aucune solution propriétaire équivalente. Plex propose des outils similaires côté « managed cloud », mais sans équivalent self-host direct.
- Plex Pass + Tautulli — Monitoring Plex (pas Jellyfin), avec quelques règles de cleanup.
- iDrive / Backblaze B2 lifecycle rules — Plutôt orienté backup, pas média.
🔐 Sécurité
- HTTPS recommandé si Jellyfin est exposé (sinon l'API key circule en clair).
- Limiter les permissions de l'API key Jellyfin au strict minimum (lecture + delete).
- Toujours démarrer en
--dry-runet vérifier la liste avant d'activer la suppression réelle. - Backup des médias supprimés : monter un volume
trashséparé et purger manuellement après 30 jours. - Volumes en
:rosur les dossiers médias pour l'analyse (l'app n'écrit que dans/trash). - Surveiller l'espace disque de la poubelle (peut saturer si beaucoup de suppressions).
- RGPD : si vos médias contiennent des données personnelles (vidéos de famille), Jellysweep supprime définitivement → adapter la politique de rétention.
- Tester la restauration depuis
/trashavant de faire confiance à l'outil.
📚 Ressources
Pages Liées
- cat-file-management — Catégorie File Management
- recettes-docker-compose — Templates Docker Compose
- securisation-home-lab — Sécurité
- traefik — Reverse proxy (si Jellyfin exposé)