Outil CLI
iptv-org/epg avatar
iptv-org/epg

iptv-org/epg : fabriquer un guide TV XML à partir de sources multiples

Aperçu du projet : Utilitaires pour télécharger l'EPG (Electronic Program Guide) pour des milliers de chaînes de télévision à partir de centaines de sources.

3 297 étoiles515 forksHTMLUnlicense

En bref

De quoi s’agit-il ?
Un utilitaire Node.js qui transforme les données de chaînes spécifiques à un site en un seul fichier guide.xml, avec des options Docker et de planification.
À qui s’adresse-t-il ?
iptv-org-epg convient aux lecteurs qui ont précisément besoin des fonctions décrites dans son README. Il ne convient pas de lui attribuer une capacité absente du dépôt.
Puis-je l’utiliser commercialement ?
Oui. Unlicense est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 14 jours.
En quel langage est-il écrit ?
Principalement HTML, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Télécharger les guides de programmes depuis la ligne de commande

Le README présente iptv-org/epg comme des utilitaires pour télécharger le guide de programmes électronique (EPG) de milliers de chaînes de télévision à partir de centaines de sources. Le flux de travail principal est un script Node.js qui prend une liste de noms de sites, récupère les données de programmation de chacun et écrit un seul fichier XML appelé guide.xml. Le dépôt nécessite Node.js et Git pour l'installation, et les étapes documentées sont de cloner le dépôt, de se déplacer dans le répertoire epg et d'exécuter npm install. Le README ne spécifie pas de version minimale de Node.js ni d'exigences de système d'exploitation au-delà de la mention de la console ou du terminal, donc ces détails restent non vérifiés.

La commande grab et ses options

La commande principale est `npm run grab --- --sites=example.com`, où le nom du site est tiré du fichier SITES.md. Le script accepte un ensemble d'options de ligne de commande : une liste de sites séparés par des virgules, un chemin vers un fichier XML de chaînes personnalisées, un chemin de sortie (par défaut guide.xml), une restriction de langue, un délai d'attente et un délai par requête, la prise en charge d'un proxy, le nombre de jours, la limite de requêtes simultanées, la sortie gzip et JSON, et un mode d'affichage curl. Le README montre comment télécharger plusieurs sites à la fois en les listant avec des virgules, et comment diviser la sortie par site en utilisant un modèle de chemin de sortie comme `guides/{site}.xml`. La liste des options inclut des valeurs par défaut pour la sortie, le délai d'attente, le délai, maxConnections, gzip et json.

Téléchargements parallèles et listes de chaînes personnalisées

Par défaut, le script récupère chaque chaîne séquentiellement, mais l'option --maxConnections augmente la concurrence. Le README avertit que certains sites peuvent renvoyer des erreurs ou bloquer complètement l'accès sous forte charge. Pour un ensemble personnalisé de chaînes, vous créez un fichier XML avec les descriptions des chaînes copiées depuis le répertoire /sites et vous le passez via --channels. Le README inclut un exemple d'élément de chaîne avec les attributs site, lang, xmltv_id et site_id. Cette approche vous permet de contrôler exactement quelles chaînes sont incluses sans analyser tous les sites disponibles.

Planification et diffusion du guide

Pour les téléchargements planifiés, le README suggère d'utiliser cron ou tout autre planificateur de tâches, et mentionne un outil appelé chronos. La commande `npx chronos --execute="npm run grab --- --sites=example.com" --pattern="0 0,12 * * *" --log` exécute la commande grab selon une expression cron. Pour rendre le guide disponible par URL, le README recommande d'exécuter `npx serve`, qui sert guide.xml à http://localhost:3000/guide.xml et sur le réseau local à l'adresse IP de la machine. La commande serve est présentée comme le moyen le plus simple d'exposer le fichier, avec une note pour consulter la documentation de serve pour plus de détails.

Image Docker et variables d'environnement

Le dépôt publie une image Docker à ghcr.io/iptv-org/epg:master. Le flux documenté consiste à tirer l'image et à exécuter un conteneur avec le port 3000 mappé et un channels.xml local monté sur /epg/public/channels.xml. Par défaut, le guide est téléchargé quotidiennement à 00:00 UTC et enregistré dans /epg/public/guide.xml à l'intérieur du conteneur. Le README liste les variables d'environnement qui correspondent aux options du script : CRON_SCHEDULE, MAX_CONNECTIONS, GZIP, JSON, CURL, PROXY, DAYS, TIMEOUT, DELAY et RUN_AT_STARTUP. Le tableau donne des valeurs par défaut, notamment CRON_SCHEDULE par défaut "0 0 * * *" et MAX_CONNECTIONS par défaut 1. L'exemple docker run montre également comment définir ces variables avec les drapeaux -e.

Dépôts associés et contribution

Le README pointe vers des projets compagnons : les données de chaînes proviennent de iptv-org/database, la documentation API se trouve dans iptv-org/api, et les ressources IPTV sont rassemblées dans iptv-org/awesome-iptv. Les utilisateurs peuvent partager leurs guides créés via un fichier GUIDES.md. Les discussions sont hébergées sur GitHub Discussions. Pour les contributions, le README fait référence à un guide de contribution et liste les bailleurs de fonds et contributeurs via Open Collective. Les métadonnées du dépôt montrent 3 187 étoiles, 488 forks et 26 problèmes ouverts au moment de l'instantané, mais le README ne donne aucune statistique d'utilisation ni chiffre de performance. Les métadonnées listent également la langue principale comme HTML, bien que l'outillage soit clairement basé sur Node.js.

Licence et statut juridique

Le dépôt est sous licence Unlicense, que l'extrait de licence décrit comme domaine public. La licence accorde à quiconque la liberté de copier, modifier, publier, utiliser, compiler, vendre ou distribuer le logiciel à quelque fin que ce soit, commerciale ou non commerciale. Elle inclut une clause de non-responsabilité selon laquelle le logiciel est fourni "tel quel" sans garantie, et que les auteurs ne sont pas responsables des réclamations ou dommages. Le texte de la licence ne mentionne pas de garanties de sécurité, d'engagements de support ou de politique de maintenance. Le README lui-même n'élabore pas sur la licence au-delà d'un lien vers le texte complet.

Lire les limites de iptv-org-epg

Le README de iptv-org-epg décrit des commandes, des fichiers et des composants précis, mais il ne transforme pas ces indications en garantie universelle. Pour une équipe, le point important est de relier chaque promesse au chemin concret que le dépôt documente. Une fonction annoncée dans une liste ne doit pas être confondue avec un comportement vérifié dans toutes les configurations. Les éléments absents du texte restent non documentés, notamment lorsqu il s agit de sécurité, de disponibilité ou de capacité à grande échelle.

La vérification doit conserver les repères propres à iptv-org-epg. Il faut reprendre les noms de fichiers, les options et les commandes montrés dans le README, puis observer la sortie correspondante dans l environnement réellement visé. Cette démarche permet de distinguer un exemple, une intégration prévue et une hypothèse de l utilisateur. Elle est particulièrement utile pour iptv-org-epg, car ses usages dépendent de versions, de modèles, de sources, de composants ou de données que le README identifie lui-même.

Conclusion éditoriale

iptv-org-epg convient aux lecteurs qui ont précisément besoin des fonctions décrites dans son README. Il ne convient pas de lui attribuer une capacité absente du dépôt. Avant l adoption, exécutez la commande ou ouvrez le fichier propre à iptv-org-epg mentionné dans les sections, puis contrôlez la sortie, les dépendances et la limite explicitement documentée.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
Notes de la communauté

Notes de la communauté