Script de Correction d'Encodage pour NZBGet

Description

Ce script de post-processing pour NZBGet corrige automatiquement les problèmes d'encodage dans les noms de fichiers. Il est particulièrement utile pour corriger les caractères français mal encodés (UTF-8 interprété comme ISO-8859-1).

Problèmes corrigés

Le script détecte et corrige automatiquement :

  • éé
  • èè
  • êê
  • Ã à (avec espace normal)
  • Ã\xa0à (avec espace insécable - cas le plus fréquent)
  • ââ
  • çç
  • ôô
  • Et tous les autres caractères accentués français

Note importante : Le caractère "à" peut être encodé de deux façons différentes selon les systèmes. Le script gère automatiquement les deux cas.

Exemple :

  • 19-La grâce.flac19-La grâce.flac
  • 06-La fièvre dans le sang.flac06-La fièvre dans le sang.flac
  • 02-Géant.flac02-Géant.flac

Installation

1. Prérequis

  • NZBGet installé et fonctionnel
  • Python 3.x installé sur votre système

2. Installation du script

  1. Téléchargez le fichier FixEncoding.py

  2. Copiez le script dans le répertoire des scripts de NZBGet :

    • Linux/macOS : /path/to/nzbget/scripts/
    • Windows : C:\ProgramData\NZBGet\scripts\
    • Docker : montez le script dans /scripts/
  3. Rendez le script exécutable (Linux/macOS/Docker uniquement) :

    chmod +x FixEncoding.py
    

3. Configuration dans NZBGet

  1. Ouvrez l'interface web de NZBGet
  2. Allez dans Settings (Paramètres)
  3. Cliquez sur Reload en bas à droite pour que NZBGet détecte le nouveau script
  4. Cherchez la section FIXENCODING
  5. Configurez les options selon vos besoins (voir ci-dessous)

4. Activation du script

Option A : Global (pour tous les téléchargements)

  1. Allez dans Settings → Extension Scripts
  2. Activez FixEncoding.py

Option B : Par catégorie

  1. Allez dans Settings → Categories
  2. Sélectionnez une catégorie
  3. Dans Extensions, ajoutez FixEncoding.py

Configuration

Le script propose plusieurs options configurables dans NZBGet :

Debug

  • Valeurs : yes / no
  • Défaut : no
  • Description : Active le mode débogage pour afficher plus d'informations dans les logs

FileExtensions

  • Valeurs : Extensions séparées par des virgules (ex: .flac,.mp3,.mkv)
  • Défaut : Vide (tous les fichiers)
  • Description : Limite le traitement aux fichiers avec ces extensions

DryRun

  • Valeurs : yes / no
  • Défaut : no
  • Description : Mode simulation - affiche ce qui serait fait sans modifier les fichiers

Utilisation

Automatique

Une fois configuré, le script s'exécute automatiquement après chaque téléchargement et corrige les noms de fichiers si nécessaire.

Test manuel

Pour tester le script sur un téléchargement déjà terminé :

  1. Ouvrez l'interface web de NZBGet
  2. Allez dans History (Historique)
  3. Sélectionnez un téléchargement
  4. Cliquez sur Post-Process Again
  5. Sélectionnez FixEncoding.py
  6. Cliquez sur Start

Mode simulation (recommandé pour le premier test)

  1. Dans Settings, activez DryRun=yes pour FixEncoding
  2. Exécutez le script sur un téléchargement de test
  3. Vérifiez les logs pour voir ce qui serait modifié
  4. Si tout est correct, désactivez DryRun

Vérification des logs

Pour voir ce que le script a fait :

  1. Allez dans Messages dans NZBGet
  2. Cherchez les messages [INFO] de FixEncoding
  3. Vous verrez :
    • Les fichiers détectés avec des problèmes d'encodage
    • Les anciens et nouveaux noms
    • Un résumé du nombre de fichiers traités

Exemples de logs

Succès

[INFO] === Début du traitement de correction d'encodage ===
[INFO] Répertoire: /downloads/Music/Album
[INFO] Renommage: 19-La grâce.flac
[INFO]       ->   19-La grâce.flac
[INFO] Renommage: 06-La fièvre dans le sang.flac
[INFO]       ->   06-La fièvre dans le sang.flac
[INFO] === Résumé ===
[INFO] Fichiers traités: 15
[INFO] Fichiers renommés: 2
[INFO] Correction d'encodage terminée avec succès

Aucun fichier à corriger

[INFO] === Début du traitement de correction d'encodage ===
[INFO] Répertoire: /downloads/Music/Album
[INFO] === Résumé ===
[INFO] Fichiers traités: 10
[INFO] Fichiers renommés: 0
[INFO] Aucun fichier à corriger

Compatibilité

Le script est compatible avec :

  • Linux (toutes distributions)
  • Windows (avec Python installé)
  • macOS
  • Docker (NZBGet en conteneur)
  • NAS Synology, QNAP, etc. (avec Python)

Outils de diagnostic

Script de diagnostic

Le package inclut un script de diagnostic pour analyser les noms de fichiers problématiques :

# Analyser un fichier spécifique
python3 diagnose_filename.py "nom-du-fichier.ext"

# Analyser tous les fichiers d'un dossier
python3 diagnose_filename.py /chemin/vers/dossier

Ce script affiche :

  • Les octets exacts du nom de fichier
  • Les caractères suspects (espaces insécables, etc.)
  • Les patterns d'encodage détectés
  • Le résultat de la correction

Utilisez-le en cas de problème pour comprendre exactement ce qui se passe !

Dépannage

Le script ne s'exécute pas

  1. Vérifiez que Python 3 est installé :

    python3 --version
    
  2. Vérifiez les permissions du script :

    ls -l /path/to/scripts/FixEncoding.py
    
  3. Activez le mode Debug et consultez les logs

Les fichiers ne sont pas renommés

  1. Vérifiez que le script est bien activé dans la configuration
  2. Activez DryRun pour voir ce que le script détecte
  3. Consultez les logs dans NZBGet

Un fichier spécifique n'est pas corrigé

Si un fichier contenant "Ã " n'est pas corrigé, c'est probablement dû à un espace insécable invisible.

Diagnostic :

python3 diagnose_filename.py "nom-du-fichier-problematique.ext"

Ce script vous montrera exactement quels caractères posent problème.

Solution :

  • Assurez-vous d'utiliser la dernière version du script (qui gère les espaces insécables)
  • Réexécutez le post-processing sur ce téléchargement

Consultez PROBLEME_FICHIER_NON_CORRIGE.md pour plus de détails.

Erreur "File exists"

Le script ne renommera pas un fichier si le nom de destination existe déjà. Vous devrez renommer manuellement l'un des deux fichiers.

Support

Pour toute question ou problème :

  • Consultez les logs avec Debug=yes
  • Vérifiez que vous utilisez Python 3.x
  • Assurez-vous que le script a les bonnes permissions

Licence

Script libre d'utilisation et de modification.

Description
No description provided
Readme 46 KiB
Languages
Python 100%