Guide Expert EPG : Créer, scraper et héberger son propre XMLTV
Même avec le meilleur fournisseur IPTV, l'EPG peut parfois manquer de précision sur certaines chaînes de niche. Apprenez à forger votre propre guide TV de A à Z.
Si Atlas Pro fournit un EPG (Electronic Program Guide) très qualitatif et synchronisé nativement via l'API Xtream Codes, les "Power Users" aiment avoir le contrôle absolu. Peut-être souhaitez-vous un EPG étendu sur 14 jours, ajouter des descriptions ultra-détaillées (acteurs, réalisateurs, notes IMDb), ou intégrer le programme d'une chaîne locale roumaine très spécifique. C'est là qu'intervient la création de son propre XMLTV.
Comprendre le format XMLTV
L'EPG n'est rien d'autre qu'un fichier texte formaté selon la norme XMLTV. Il contient la définition de la chaîne (son ID, nom, logo) suivie de la liste des programmes temporels (titre, description, heure de début/fin).
<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="Mon EPG Perso">
<channel id="tf1.fr">
<display-name>TF1</display-name>
<icon src="https://mon-serveur.com/logos/tf1.png" />
</channel>
<programme start="20261014210000 +0200" stop="20261014231500 +0200" channel="tf1.fr">
<title>Match de Football HD</title>
<desc>Ligue des Champions - Finale.</desc>
</programme>
</tv>Étape 1 : Le Scraping avec WebGrab+Plus
Vous n'allez pas écrire le programme de M6 à la main ! Il faut un "Scraper" (un bot) qui va lire les sites officiels de programmes TV (comme Télé-Loisirs ou Le Figaro) et les convertir en XMLTV. L'outil roi pour cela s'appelle WebGrab+Plus (WG++).
- Installation : Utilisez Docker. L'image
linuxserver/webgrabplusest la plus maintenue. - Les fichiers SiteIni : WG++ a besoin de plugins (.ini) propres à chaque site source (ex:
teleboy.ch.inipour la Suisse,telerama.fr.inipour la France). - Le fichier WebGrab++.config.xml : C'est là que vous déclarez quelles chaînes vous voulez scrapper :
<channel update="i" site="telerama.fr" xmltv_id="TF1">TF1</channel>
Étape 2 : Automatisation et Hébergement
Une fois configuré, WG++ génère un magnifique fichier guide.xml. Mais votre TiviMate ne peut pas lire ce fichier sur votre disque dur ; il a besoin d'une URL web (ex: http://mon-nas.com/guide.xml.gz).
La stack Docker recommandée :
- Container WebGrab+Plus : Tourne via CronJob (ex: tous les vendredis à 3h du matin) pour scrapper la semaine suivante et sortir un fichier
guide.xml. - Script de compression : Un petit script bash qui gzip le fichier (
gzip -9 -c guide.xml > guide.xml.gz). Les lecteurs IPTV préfèrent largement les XMLTV compressés (.gz) car un guide de 500 chaînes sur 7 jours fait vite 80 Mo en texte brut (contre 5 Mo en GZIP). - Container Nginx (Web Server) : Pointez le dossier root de Nginx vers le dossier contenant votre
guide.xml.gz. Exposez Nginx sur le port 8080 de votre NAS.
Étape 3 : Mapping avec votre M3U (tvg-id)
Pour que TiviMate fasse le lien entre votre nouvelle URL et la chaîne, l'ID XMLTV doit correspondre exactement au "tvg-id" de votre liste M3U.
Si votre M3U indique #EXTINF:-1 tvg-id="TF1.fr",TF1 FHD,
Votre fichier WebGrab+ config doit générer : xmltv_id="TF1.fr".
L'alternative : Les services freemium (IPTVBoss, m3u4u)
Créer et maintenir un Scraper demande des compétences en administration Linux et prend du temps (les sites sources changent souvent leurs balises HTML). Si vous voulez la version "facile" de cette méthode experte, des outils comme IPTVBoss ou la gestion EPG interne de m3u4u, qui pré-mâchent le travail de scraping sur leurs serveurs, sont de superbes compromis pour le Power User moderne.
Vous savez désormais d'où proviennent les guides TV électroniques ! Combinez un EPG parfait avec le flux ultra-stable d'Atlas Pro, et vous ne regarderez plus jamais votre TV de la même façon.