Vous avez une playlist M3U qui contient des centaines (voire des milliers) de flux IPTV, mais beaucoup ne fonctionnent pas ou sont de qualité médiocre ?
TV-Playlist-Cleaner est l’outil qui va vous sauver du chaos : il analyse, filtre, dédoublonne et sélectionne les meilleurs flux en un clin d’œil — le tout de manière automatisée.
Qu’est-ce que TV-Playlist-Cleaner ?
TV-Playlist-Cleaner est un projet open source en Python qui a pour objectif de nettoyer, filtrer et optimiser des playlists M3U. Il combine l’usage de curl et **ffprobe pour tester les flux, déduire leur qualité réelle et ne conserver que les meilleurs.
Il ne fournit pas de playlists ou de contenus vidéo, il fonctionne uniquement sur les sources que vous lui fournissez.
Fonctionnalités principales
- Multi-sources : support de plusieurs sources
- Vérification des flux : test via curl + ffprobe pour détecter la validité et la résolution
- Sélection automatique du meilleur flux par chaîne (meilleure résolution)
- Dédoublonnage intelligent : suppression des redondances, conservation du flux le plus pertinent
- Traitement parallèle (workers) pour accélérer le filtrage
- Configuration flexible : catégories de chaînes (françaises, européennes, sport, etc.)
- Support spécialisé pour les chaînes TNT françaises via un script dédié
- Barre de progression et statistiques en temps réel pendant le traitement
Architecture du projet & scripts inclus
Le dépôt contient plusieurs scripts et modules complémentaires :
cleaner.py
: version de base utilisant curl.cleaner_advanced.py
: version plus complète avec options avancées.cleaner_multi_source.py
: pour gérer plusieurs sources simultanément et dédoublonner.cleaner_config.py
: wrapper pour configurer les sources par catégorie.cleaner_tnt.py
: script spécialisé pour les 25 chaînes TNT françaises.- Modules utilitaires :
sources_config.py
, tests,compare_playlists.py
, etc.
Installation & prérequis
Avant d’utiliser TV-Playlist-Cleaner, assurez-vous d’avoir les outils suivants :
- curl installé sur votre système (souvent déjà présent)
- Dépendances Python définies dans
requirements.txt
(à installer via pip)
Pour installer rapidement :
git clone https://github.com/gonzague/TV-Playlist-Cleaner.git
cd TV-Playlist-Cleaner
pip install -r requirements.txt
Ou en mode Docker (recommandé pour plus de portabilité) : le projet inclut un fichier Docker et un script docker-run.sh
pour construire et lancer.
Utilisation recommandée
Quelques exemples de commandes utiles :
python cleaner_config.py french --direct-only
: pour générer une playlist française en vérification directe (curl uniquement)python cleaner_tnt.py --direct-only --workers 20 --output tnt_playlist.m3u
: pour une playlist ciblée TNT française optimiséepython cleaner_multi_source.py --direct-only
: traitement multi-sources avec dédoublonnage- Et d’autres options :
--timeout
,--no-deduplication
, etc.
Exemple de sortie & gains observés
Le projet donne des chiffres d’amélioration dans son README :
Avant, avec 1 source : ~223 flux ; après filtration multi-sources : ~2 910 flux, dont 1 543 valides (soit un gain de +1 400 % sur certains indicateurs)
Le script affiche un rapport : nombre de flux testés, valides, échoués, qualité sélectionnée, etc.
Avantages & limites
✅ Avantages
- Automatisation complète : pas de tri manuel fastidieux
- Qualité assurée : sélection du meilleur flux parmi les options disponibles
- Support multi-sources et dédoublonnage intelligent
- Configuration flexible selon vos besoins (langues, catégories, timeout, etc.)
⚠️ Limites & précautions
- Ne garantit pas que tous les flux sont légaux ou accessibles selon votre localisation — l’utilisateur est responsable.
- Certains flux peuvent échouer (timeout, erreur HTTP, restrictions géographiques).
- Le traitement peut prendre du temps selon le nombre de flux et la vitesse réseau
- Besoin d’un environnement Python et/ou Docker
Comment contribuer ou participer ?
Le projet est sous licence MIT. Si vous souhaitez y contribuer :
- Forkez le dépôt
- Créez une branche pour votre fonctionnalité
- Committez vos changements
- Ouvrez une Pull Request
Les contributions sont les bienvenues, qu’il s’agisse de correction de bugs, de nouvelles fonctionnalités ou d’optimisations.
Conclusion
TV-Playlist-Cleaner est un outil puissant et pratique pour tous ceux qui manipulent des playlists M3U, que ce soit pour de l’IPTV, des flux TV ou simplement pour structurer vos sources. En combinant rigueur (tests avec curl/ffprobe), flexibilité (options de configuration) et efficacité (dédoublonnage, parallélisme), il simplifie grandement la tâche.
Si vous cherchez à fiabiliser votre collection de flux, c’est un excellent point de départ.
FAQ
Qu’est-ce qu’une playlist M3U ?
Une playlist M3U est un fichier texte listant une série de flux multimédias (URL) que les lecteurs peuvent interpréter pour la lecture en continu.
Pourquoi nettoyer une playlist M3U ?
Beaucoup de flux dans une playlist peuvent être inactifs ou de mauvaise qualité ; un nettoyage permet de conserver uniquement les flux valides et optimisés.
Comment TV-Playlist-Cleaner vérifie les flux ?
Il utilise curl pour tester l’accessibilité des flux et ffprobe pour extraire les informations de résolution et qualité.
Le projet est-il open source ?
Oui, le projet est sous licence MIT et son code est accessible sur GitHub.
Puis-je l’utiliser via Docker ?
Oui, le dépôt inclut un script Docker pour construire et exécuter l’outil dans un conteneur.
Quels sont les scripts disponibles dans le projet ?
Parmi les scripts : cleaner.py, cleaner_advanced.py, cleaner_multi_source.py, cleaner_config.py, cleaner_tnt.py, etc.
Qu’est-ce que le dédoublonnage intelligent ?
Le dédoublonnage intelligent élimine les flux redondants en normalisant les noms et en conservant le flux de meilleure qualité.
Peut-on configurer les options (timeout, nombre de workers, etc.) ?
Oui, TV-Playlist-Cleaner propose plusieurs options de configuration comme –timeout, –workers, –no-deduplication, etc.
Le projet prend-il en charge les chaînes françaises ?
Oui, il y a un script spécialisé (cleaner_tnt.py) pour les 25 chaînes TNT françaises, ainsi que des catégories par langue / région.
Comment contribuer au projet ?
Vous pouvez forker le dépôt, créer une branche pour votre fonctionnalité, puis ouvrir une Pull Request.