EPG para middleware OTT¶
La guía de programación de la base de datos EPG se entrega a los sistemas externos — descodificadores, aplicaciones y middleware OTT — de dos formas: como documento XMLTV completo mediante un servidor EPG dedicado y como programación diaria de un canal en JSON mediante la API HTTP del nodo.
Entrega de XMLTV¶
XMLTV lo distribuye un servidor EPG integrado independiente. Se habilita en la pantalla «Servidor EPG» (Servidor EPG): «Habilitar el servidor EPG», el puerto HTTP (43973 por defecto), si es necesario HTTPS con certificado (puerto 43983 por defecto) y el «Nombre de host».
El acceso se concede por cuentas (pestaña «Cuentas» de la pantalla «Ajustes de EPG», Ajustes de EPG): usuario y contraseña, «Conjunto de canales», «Fecha de finalización» de la vigencia, «IP permitida» y el indicador «Pausado». El contenido de la entrega lo determina el conjunto de canales:
los conjuntos se crean en la pestaña «Conjuntos de canales»;
los canales se incluyen en los conjuntos en la base de datos EPG (Base de datos EPG); un canal puede pertenecer a varios conjuntos;
a una cuenta se le asigna un único conjunto — sin él la entrega está vacía.
El documento está disponible en la ruta /xmltv (y /xmltv.gz — el archivo comprimido); la autorización se realiza mediante HTTP Digest o a través de los parámetros de la consulta. Las horas de los programas se emiten con la zona horaria del canal; en el documento solo se incluyen los eventos actuales y futuros. Si un mismo identificador de canal ha llegado de fuentes distintas, el canal se emite una sola vez y la omisión se comunica en el registro.
Programación diaria en JSON¶
Para las interfaces de middleware el nodo devuelve la programación de un canal correspondiente a un día con una sola consulta a la API HTTP en formato JSON (la autorización es la misma que para el resto de las consultas de la API):
GET /data/epg/channel?src=<fuente>&ch=<canal>&lang=<idioma>&t=<hora>
Se devuelve la lista de los eventos del día (en UTC) en el que se sitúa la hora t: inicio, fin, título y descripción de cada programa en el idioma solicitado; si no hay traducción, se utiliza el idioma por defecto y, a continuación, cualquiera de los disponibles. Un día vacío es una lista vacía válida. El servidor almacena las respuestas en caché y las actualiza automáticamente cuando llegan nuevos datos de EPG.
La caché integrada está dimensionada para aproximadamente mil clientes simultáneos; en instalaciones mayores se recomienda situar tanto la entrega de XMLTV como la de JSON detrás de un proxy inverso con caché o de una CDN.
La reproducción del archivo DVR a partir de un evento de la guía de programación (parámetro epg en la URL de reproducción) se describe en Reproducción del archivo (VOD).