Importación de EPG/XMLTV

La base de datos EPG se llena a partir de fuentes de tres tipos:

  • EIT de los flujos recibidos — ajuste «Extraer EIT a la base de datos EPG» del flujo (SPTS y MPTS, Modificación del flujo);

  • EIT de los adaptadores DVB — ajuste «Exportar EPG» del adaptador (Receptor DVB);

  • fuentes XMLTV externas — mediante un enlace a un recurso web o desde un archivo local.

El EIT extraído de los flujos y de los adaptadores DVB se acumula en una fuente integrada común, «importación de flujos»; cada fuente XMLTV externa mantiene su propia base de datos. El identificador de canal es único dentro de su propia fuente; los nombres de los canales y los textos de los eventos se almacenan en varios idiomas.

Configuración de las fuentes

Las fuentes se configuran en la pantalla «Ajustes de EPG» (Ajustes de EPG). En la pestaña «Importación» se encuentran los parámetros generales: «Activar importación», «Conservar historial, días» (profundidad de conservación de los eventos pasados) y «Limpieza automática de canales huérfanos» (eliminación de los canales que se han quedado sin eventos).

Las fuentes XMLTV externas se añaden en la pestaña «Fuentes»: nombre, «URL / ruta de la fuente», «Activada», «Intervalo de actualización, s» (una vez por hora por defecto), «Codificación del contenido» (detección automática o GZip forzado), credenciales y Cookies para las fuentes web restringidas y «Guardar la copia descargada» para diagnóstico. La fuente es una dirección http o https o una ruta absoluta a un archivo en el nodo; las Cookies se envían en la cabecera Cookie y solo al host de la fuente. Tras modificar una fuente activada (por ejemplo, su dirección), los datos se cargan de inmediato, sin esperar al intervalo de actualización.

Desde la versión 2.0.2.418, una fuente tiene un tiempo de espera de descarga: el parámetro fetch-timeout de la fuente en el archivo de configuración o mediante la API (de 0 a 3600 segundos; 0, los 30 segundos de antes); desde la versión 2.0.2.419 lo define el campo «Tiempo de espera de descarga, s» (Ajustes de EPG). Limita la espera de cada envío y de cada recepción de datos: el primer byte de la respuesta y cualquier pausa en la transferencia. Sirve para las fuentes lentas que generan el archivo bajo petición. La conexión se establece en 30 segundos como máximo, y la transferencia completa no dura más de 30 minutos (o de dos tiempos de espera, si es más). Un tiempo de espera agotado es una descarga fallida: se anota en el registro y se muestra en el error de la fuente.

Cola de descargas y reintentos

Desde la versión 2.0.2.418, las fuentes externas se descargan, analizan y aplican de una en una: mientras se procesa una, las demás esperan su turno, y la pestaña «Estado de las fuentes» muestra esa fuente en espera, con su posición en la cola (Queued: position N); desde la versión 2.0.2.419 se marca además con un punto azul. Varios «Actualizar ahora» seguidos para una fuente en espera se funden en una sola descarga. Tras iniciarse el servicio, las fuentes no empiezan a descargar a la vez, sino por turnos con un intervalo: la primera a los 10 segundos y cada una de las siguientes un segundo más tarde. Por eso el pico de memoria al reiniciar un nodo con varios archivos XMLTV grandes se queda en el nivel de un solo archivo, y tras la descarga la memoria se devuelve al sistema.

Una descarga fallida se repite no tras el intervalo de actualización completo, sino a los 2, 5 y 15 minutos y después cada 30 minutos (pero no con menos frecuencia que el intervalo de actualización); la hora del siguiente intento se muestra en el campo «Próxima actualización». Desde la versión 2.0.2.419, mientras duran los fallos este campo se llama «Próximo intento», y a su lado se muestra el campo «Descargas fallidas seguidas» (Base de datos EPG). El recuento de fallos se reinicia con una descarga correcta, una modificación de la fuente y un reinicio del servicio. Desde esta versión, una respuesta vacía de la fuente también se considera un error.

Base de datos EPG

La guía de programación acumulada se consulta en la pantalla «Base de datos EPG» (Base de datos EPG). En la pestaña «Base de datos» se selecciona la fuente y están disponibles la búsqueda de canales y el filtro por conjunto de canales; la programación del canal se hojea por días y el programa en curso aparece resaltado. En cada canal se pueden modificar:

  • «Nombre del canal» — el nombre utilizado en la exportación XMLTV;

  • «Zona horaria» — si en la importación la hora de los eventos no estaba referida a UTC;

  • «URL del icono» — el icono del canal;

  • «Conjuntos de canales» — pertenencia a los conjuntos que se entregan a los consumidores externos (EPG para middleware OTT).

Las modificaciones manuales pueden sobrescribirse en la siguiente actualización de la fuente; la interfaz web advierte de ello.

La pestaña «Estado de las fuentes» muestra el avance de la importación: la hora de la última y de la siguiente actualización, el número de canales y de eventos y los errores; el botón «Actualizar ahora» inicia la actualización de la fuente de inmediato, sin esperar a la planificación.

Desde la versión 2.0.2.420, los cambios de la programación en las fuentes externas se reconocen de forma más fiable: también cuenta como cambio el intercambio de texto entre dos campos de un programa. Un archivo XMLTV que no ha cambiado desde la última actualización no se vuelve a analizar, pero sus canales siguen considerándose actualizados, por lo que «Limpiar automáticamente canales huérfanos» no los elimina; antes de la versión 2.0.2.420 esos canales podían desaparecer. La primera actualización tras pasar a 2.0.2.420 no reescribe nada en la base de datos, y las ediciones de nombres de canales hechas en la interfaz web se conservan.