Skip to content

Repository files navigation

CleanMyPlex

CleanMyPlex Logo

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.

Table des matières

Statut

Version Issues Forks

Fonctionnalités

  • 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.

Prérequis

  • Python 3.7+
  • Flask
  • PlexAPI
  • pandas

Installation

  1. Clonez le dépôt GitHub :

    git clone https://github.com/jjtronics/cleanmyplex.git /opt/cleanmyplex
    cd /opt/cleanmyplex
    
  2. Créez un environnement virtuel et activez-le :

    python3 -m venv plex_env
    source plex_env/bin/activate
    
  3. Installez les dépendances :

    pip install -r requirements.txt
    
  4. 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": ""
    }
    
  5. Créer un Utilisateur Basique Sans Home Directory ni Password :

    sudo useradd -r -s /usr/sbin/nologin cleanmyplex
    
  6. Changer le Propriétaire du Répertoire du Projet :

    sudo chown -R cleanmyplex:cleanmyplex /opt/cleanmyplex
    

MCP

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_mcp

Exemple :

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.

Mise à jour

Pour mettre à jour une installation existante de CleanMyPlex via git :

  1. Placez-vous dans le répertoire du projet :
    cd /opt/cleanmyplex
    
  2. Récupérez la dernière version :
    git pull origin main
    
  3. Réactivez l'environnement virtuel :
    source plex_env/bin/activate
    
  4. Réinstallez les dépendances au cas où elles auraient changé :
    pip install -r requirements.txt
    
  5. 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.

Scripts Systemd

Pour exécuter l’application automatiquement au démarrage, créez un script systemd :

  1. Créez un fichier de service systemd :

    sudo nano /etc/systemd/system/cleanmyplex.service
    
  2. 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
    
  3. Rechargez systemd, activez et démarrez le service :

    sudo systemctl daemon-reload
    sudo systemctl enable cleanmyplex.service
    sudo systemctl start cleanmyplex.service
    

Contribution

Les contributions sont les bienvenues ! Veuillez ouvrir une issue ou soumettre une pull request sur GitHub.

About

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 plus gros doublons

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages