Import EPG/XMLTV

La base EPG est alimentée par trois types de sources :

  • EIT issu des flux reçus — le paramètre « Extraire l’EIT vers la base de données EPG » du flux (SPTS et MPTS, Modification du flux) ;

  • EIT issu des adaptateurs DVB — le paramètre « Export EPG » de l’adaptateur (Récepteur DVB) ;

  • sources XMLTV externes — via un lien vers une ressource web ou depuis un fichier local.

L”EIT extrait des flux et des adaptateurs DVB s’accumule dans une source intégrée commune, « flux-import » ; chaque source XMLTV externe tient sa propre base. L’identifiant de chaîne est unique au sein de sa propre source ; les noms des chaînes et les textes des événements sont conservés en plusieurs langues.

Configuration des sources

Les sources se configurent sur l’écran « Paramètres EPG » (Paramètres EPG). L’onglet « Import » regroupe les paramètres généraux : « Activer l’import », « Conserver l’historique, jours » (profondeur de conservation des événements passés) et « Nettoyage automatique des chaînes orphelines » (suppression des chaînes pour lesquelles il ne reste plus aucun événement).

Les sources XMLTV externes s’ajoutent sur l’onglet « Sources » : le nom, « URL / chemin de la source », « Activé », « Intervalle de mise à jour, s » (une fois par heure par défaut), « Encodage du contenu » (détection automatique ou GZip forcé), les identifiants de connexion et les Cookies pour les sources web à accès restreint, « Conserver la copie téléchargée » pour le diagnostic. La source est une adresse http ou https ou un chemin absolu vers un fichier sur le nœud ; les Cookies sont transmis dans l’en-tête Cookie et uniquement à l’hôte de la source. Après la modification d’une source activée (par exemple de son adresse), les données sont chargées immédiatement, sans attendre l’intervalle de mise à jour.

Depuis la version 2.0.2.418, une source dispose d’un délai de téléchargement — le paramètre fetch-timeout de la source dans le fichier de configuration ou via l’API (de 0 à 3600 secondes, 0 — les 30 secondes d’avant) ; depuis la version 2.0.2.419, il se définit par le champ « Délai de téléchargement, s » (Paramètres EPG). Il limite l’attente de chaque envoi et de chaque réception de données : le premier octet de la réponse et toute pause dans le transfert. Il sert aux sources lentes qui constituent le fichier à la demande. La connexion s’établit en 30 secondes au plus, et le transfert complet ne dure pas plus de 30 minutes (ou de deux délais, si c’est plus long). Un délai expiré est un téléchargement échoué : il est consigné dans le journal et affiché dans l’erreur de la source.

File de téléchargement et nouvelles tentatives

Depuis la version 2.0.2.418, les sources externes sont téléchargées, analysées et appliquées une par une : pendant qu’une source est traitée, les autres attendent leur tour, et l’onglet « État des sources » affiche une telle source comme en attente, avec sa position dans la file (Queued: position N) ; depuis la version 2.0.2.419, elle est en outre signalée par un point bleu. Des « Mettre à jour maintenant » répétés pour une source en attente sont fusionnés en un seul téléchargement. Après le démarrage du service, les sources ne commencent pas leur téléchargement en même temps, mais tour à tour, à intervalle : la première au bout de 10 secondes, chacune des suivantes une seconde plus tard. Ainsi, le pic de mémoire au redémarrage d’un nœud doté de plusieurs gros fichiers XMLTV reste au niveau d’un seul fichier, et après le téléchargement la mémoire est rendue au système.

Un téléchargement échoué est relancé non pas après l’intervalle de mise à jour complet, mais au bout de 2, 5 et 15 minutes, puis toutes les 30 minutes (mais pas moins souvent que l’intervalle de mise à jour) ; l’heure de la prochaine tentative s’affiche dans le champ « Prochaine mise à jour ». Depuis la version 2.0.2.419, ce champ s’intitule « Prochaine tentative » pendant les échecs, et le champ « Téléchargements échoués d’affilée » s’affiche à côté (Base de données EPG). Le compteur d’échecs est remis à zéro par un téléchargement réussi, une modification de la source et un redémarrage du service. Une réponse vide de la source compte aussi comme une erreur à partir de cette version.

Base de données EPG

Le guide des programmes accumulé se consulte sur l’écran « Base de données EPG » (Base de données EPG). L’onglet « Base de données » permet de sélectionner la source et donne accès à la recherche de chaînes ainsi qu’à un filtre par ensemble de chaînes ; la grille d’une chaîne se feuillette par jour et l’émission en cours est mise en évidence. Pour chaque chaîne, il est possible de modifier :

  • « Nom de la chaîne » — le nom utilisé pour l’export XMLTV ;

  • « Fuseau horaire » — si les heures des événements n’ont pas été rapportées à UTC lors de l’import ;

  • « URL de l’icône » — l’icône de la chaîne ;

  • « Ensembles de chaînes » — l’appartenance aux ensembles distribués aux consommateurs externes (EPG pour middleware OTT).

Les modifications manuelles peuvent être écrasées lors de la prochaine mise à jour de la source — l’interface web en avertit.

L’onglet « État des sources » indique la progression de l’import : l’heure de la dernière et de la prochaine mise à jour, le nombre de chaînes et d’événements, les erreurs ; le bouton « Mettre à jour maintenant » lance la mise à jour de la source immédiatement, sans attendre l’échéance planifiée.

Depuis la version 2.0.2.420, les modifications du programme dans les sources externes sont reconnues de façon plus fiable : un échange de texte entre deux champs d’une émission compte aussi comme une modification. Un fichier XMLTV qui n’a pas changé depuis la dernière mise à jour n’est pas réanalysé, mais ses chaînes restent considérées comme mises à jour, si bien que « Nettoyage automatique des chaînes orphelines » ne les supprime pas ; avant la version 2.0.2.420, ces chaînes pouvaient disparaître. La première mise à jour après le passage à 2.0.2.420 ne réécrit rien dans la base, et les modifications des noms de chaînes faites dans l’interface web sont conservées.