CleanMyPlex est une application web permettant de gérer et nettoyer vos bibliothèques Plex. Elle permet également de faire une comparaison entre deux serveurs plex pour trouver les doublons.
- Nettoyage de vos films/séries
- Scan des films et séries non visionnés selon des critères spécifiques.
- Visualisation et gestion des données indexées en SQLite, avec export CSV si besoin.
- Archivage ou suppression des éléments directement depuis l’interface web.
- Vérification des doublons entre serveurs Plex
- Comparaison des bibliothèques de films et séries entre deux serveurs Plex.
- Indexation des éléments en commun.
- Calcul de l’espace disque pouvant être libéré en supprimant les doublons.
- Gestion des utilisateurs
- Liste les users, leurs adresse email etc ...
- Configuration des paramètres
- Interface web pour configurer les paramètres de l’application.
- Mise à jour des informations de connexion au serveur Plex et des critères de nettoyage.
- MCP pour assistants IA
- Exposition d’un serveur MCP HTTP pour lancer les scans, consulter les datasets, marquer les actions et suivre les jobs.
- Python 3.7+
- Flask
- PlexAPI
- pandas
-
Clonez le dépôt GitHub :
git clone https://github.com/jjtronics/cleanmyplex.git /opt/cleanmyplex cd /opt/cleanmyplex -
Créez un environnement virtuel et activez-le :
python3 -m venv plex_env source plex_env/bin/activate -
Installez les dépendances :
pip install -r requirements.txt
-
Créer et Configurez les paramètres dans
config.json: Vous pouvez saisir un token Plex existant ou renseigner username/password dans l'IHM. Si le MFA Plex est actif, la page Paramètres permet de saisir le code MFA pour récupérer et enregistrer automatiquement un nouveau token.{ "PLEX_URL": "http://127.0.0.1:32400", "PLEX_TOKEN": "your_plex_token", "PLEX_USERNAME": "your_plex_username", "PLEX_PASSWORD": "your_plex_password", "FRIEND_SERVER_NAME": "FriendServerName", "MCP_API_KEY": "" } -
Créer un Utilisateur Basique Sans Home Directory ni Password :
sudo useradd -r -s /usr/sbin/nologin cleanmyplex
-
Changer le Propriétaire du Répertoire du Projet :
sudo chown -R cleanmyplex:cleanmyplex /opt/cleanmyplex
CleanMyPlex expose un serveur MCP HTTP intégré à Flask :
- Découverte :
GET /.well-known/mcp - MCP streamable HTTP :
POST /mcp - Compatibilité API :
POST /api/mcp/initialize,GET /api/mcp/tools,POST /api/mcp/call
Configurez MCP_API_KEY dans config.json ou CLEANMYPLEX_MCP_API_KEY dans l’environnement systemd. Si la valeur est vide, le MCP reste ouvert sur le réseau qui expose CleanMyPlex. Les clients MCP authentifiés doivent envoyer :
Authorization: Bearer votre_cle_mcpExemple :
curl -H "Authorization: Bearer votre_cle_mcp" http://127.0.0.1:5000/.well-known/mcp
curl -H "Authorization: Bearer votre_cle_mcp" http://127.0.0.1:5000/api/mcp/tools
curl -X POST http://127.0.0.1:5000/api/mcp/call \
-H "Authorization: Bearer votre_cle_mcp" \
-H "Content-Type: application/json" \
-d '{"toolName":"cleanmyplex_status","arguments":{}}'Outils disponibles : cleanmyplex_status, list_libraries, list_datasets, query_dataset, set_dataset_actions, start_unwatched_scan, start_duplicate_scan, start_delete_marked_items, list_jobs, list_users.
Pour mettre à jour une installation existante de CleanMyPlex via git :
- Placez-vous dans le répertoire du projet :
cd /opt/cleanmyplex - Récupérez la dernière version :
git pull origin main
- Réactivez l'environnement virtuel :
source plex_env/bin/activate - Réinstallez les dépendances au cas où elles auraient changé :
pip install -r requirements.txt
- Si CleanMyPlex est lancé via systemd, redémarrez le service :
sudo systemctl restart cleanmyplex.service
Si vous avez modifié des fichiers suivis par git localement, pensez à sauvegarder vos changements avant le git pull avec un commit ou un git stash.
Pour exécuter l’application automatiquement au démarrage, créez un script systemd :
-
Créez un fichier de service systemd :
sudo nano /etc/systemd/system/cleanmyplex.service
-
Ajoutez le contenu suivant :
[Unit] Description=CleanMyPlex Service After=network.target [Service] User=cleanmyplex WorkingDirectory=/opt/cleanmyplex ExecStart=/bin/bash -c 'source /opt/cleanmyplex/plex_env/bin/activate && exec python3 /opt/cleanmyplex/cleanmyplex.py' Restart=always [Install] WantedBy=multi-user.target
-
Rechargez systemd, activez et démarrez le service :
sudo systemctl daemon-reload sudo systemctl enable cleanmyplex.service sudo systemctl start cleanmyplex.service
Les contributions sont les bienvenues ! Veuillez ouvrir une issue ou soumettre une pull request sur GitHub.
