AICKO IPTV: la app gratuita para tus listas IPTV Descargar

Publicado el · por el equipo de AICKO IPTV · 7 min de lectura

EPG: una guía que viaja aparte

La EPG (Electronic Program Guide, guía electrónica de programación) es la parrilla que indica qué se emite ahora y después en cada canal. En la TDT, esta información viaja en la propia señal, dentro de tablas normalizadas por el estándar DVB. En Internet es distinto: el vídeo de un canal y su guía llegan, por lo general, por dos caminos distintos.

EPG y XMLTV: de dónde viene la guía de programación

Por un lado, el reproductor recibe el flujo de vídeo a partir de una lista M3U o de una conexión Xtream Codes. Por otro, descarga un archivo de guía, casi siempre en formato XMLTV, que describe varios días de programas para decenas o cientos de canales. El trabajo del reproductor consiste entonces en hacer corresponder cada canal de la lista con su parrilla en el archivo.

Esta separación explica la mayoría de los problemas: un canal puede funcionar perfectamente y tener la guía vacía, porque el vídeo y la guía no dependen el uno de la otra.

La estructura de un archivo XMLTV

XMLTV es un formato abierto, nacido a principios de los años 2000 en la comunidad del software libre, basado en el lenguaje XML. Un archivo contiene un elemento raíz <tv> y después dos tipos de bloques: los canales y los programas.

<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="ejemplo">
  <channel id="ejemplo1.es">
    <display-name>Ejemplo 1</display-name>
    <icon src="https://img.ejemplo.es/ex1.png"/>
  </channel>
  <programme start="20260928204500 +0200" stop="20260928223000 +0200" channel="ejemplo1.es">
    <title lang="es">Documental de la noche</title>
    <desc lang="es">Viaje al corazón de los volcanes de Auvernia.</desc>
    <category lang="es">Documental</category>
  </programme>
</tv>

El elemento channel

Cada <channel> lleva un atributo id, el identificador único del canal en ese archivo. A menudo se forma como un nombre de dominio (ejemplo1.es), pero es solo una convención: vale cualquier cadena de caracteres. Contiene además uno o varios nombres para mostrar (<display-name>) y a veces un logotipo (<icon>).

El elemento programme

Cada <programme> describe un programa: hora de inicio (start), hora de fin (stop), canal correspondiente (channel, que repite el id de un elemento <channel>), título y, opcionalmente, sinopsis, categoría, episodio, año, cartel o clasificación por edades. Los programas son independientes unos de otros, lo que permite que un archivo cubra desde unas horas hasta varias semanas.

La correspondencia entre lista y guía: tvg-id

El vínculo entre el canal de tu lista y su parrilla se basa en el atributo tvg-id de la línea #EXTINF. La regla es sencilla: el tvg-id de la lista debe ser idéntico, carácter por carácter, al id del <channel> en el archivo XMLTV.

#EXTINF:-1 tvg-id="ejemplo1.es" group-title="Generalistas",Ejemplo 1 HD
https://tv.ejemplo.es/live/ex1.m3u8

Si la lista indica tvg-id="Ejemplo1.es" y la guía id="ejemplo1.es", la correspondencia falla en muchos reproductores, porque la comparación distingue mayúsculas y minúsculas. Cuando no hay tvg-id, algunos reproductores intentan una correspondencia por el nombre (tvg-name o nombre mostrado) con el <display-name> de la guía; es menos fiable, porque «Ejemplo 1 HD» y «Ejemplo 1» no son idénticos.

Con una conexión Xtream Codes, la correspondencia es en principio automática: el servidor proporciona para cada canal un campo epg_channel_id que hace de tvg-id, y una guía XMLTV coherente con esos identificadores. El funcionamiento de esta API se detalla en nuestro artículo sobre las conexiones Xtream Codes, y la sintaxis de las listas en el formato M3U línea por línea.

Horas, zonas horarias y desfases

Las horas XMLTV se escriben con la forma AAAAMMDDhhmmss seguida de un desfase respecto al tiempo universal (UTC). Así, 20260928204500 +0200 significa el 28 de septiembre de 2026 a las 20:45, en una zona adelantada dos horas respecto al UTC, es decir, las 18:45 UTC.

En la Francia metropolitana, la hora legal es UTC+1 en invierno (+0100) y UTC+2 en verano (+0200). El cambio a la hora de verano tiene lugar el último domingo de marzo, y la vuelta a la hora de invierno, el último domingo de octubre. Una guía correcta para un canal francés debe, por tanto, cambiar de desfase en esas fechas, o expresarlo todo en UTC con +0000. Las zonas horarias y las fechas de cambio de hora varían según los países.

El reproductor convierte después esas horas a la zona de tu dispositivo. De ahí tres posibles fuentes de desfase:

SíntomaCausa probableRemedio
Toda la guía está desfasada exactamente una horaEl archivo indica un desfase fijo que ignora el cambio de hora, o +0000 cuando las horas son localesAjuste de desfase de la guía en el reproductor, o atributo tvg-shift
Desfase de varias horasZona horaria del dispositivo mal configurada, o guía prevista para otro paísComprobar fecha, hora y zona horaria en los ajustes del sistema
Un solo canal desfasadoCanal emitido desde otra zona horaria o desfasado a propósito (versión «+1»)tvg-shift solo en ese canal
Desfase de unos minutosEl canal no respeta sus horarios anunciadosNinguno: la guía refleja la parrilla prevista

El atributo tvg-shift se coloca en una línea #EXTINF y se expresa en horas, que pueden ser negativas o decimales: tvg-shift="-1" retrasa la guía una hora para ese canal. Es un parche: si el desfase aparece o desaparece con el cambio de hora, el verdadero defecto está en el archivo de origen.

Una última trampa, frecuente en los sticks de TV y las box: una fecha del sistema incorrecta. Si el dispositivo no ha sincronizado su reloj (sin red al arrancar, sin pila de respaldo), el reproductor busca los programas de otro día y no muestra nada. Activa la fecha y la hora automáticas en los ajustes.

Guía vacía: las causas, por orden

Cuando la guía se queda desesperadamente vacía, procede con método, de lo más sencillo a lo más técnico.

  1. La guía aún no se ha cargado. Un archivo grande puede tardar de unos segundos a varios minutos en la primera descarga, sobre todo en un dispositivo modesto. Deja que el reproductor termine y vuelve a abrir la lista de canales.
  2. No hay ninguna dirección de guía configurada. Con una lista M3U, hace falta un atributo url-tvg en la cabecera o una dirección introducida en los ajustes del reproductor.
  3. La dirección no responde. Ábrela en un navegador: debes obtener una descarga o XML, no una página de error.
  4. Los identificadores no coinciden. Busca el tvg-id de un canal en el archivo XMLTV (una vez descomprimido). Si no figura exactamente igual, el vínculo está roto.
  5. La guía está caducada. Mira las fechas de los últimos <programme>: un archivo que termina ayer no puede mostrar nada hoy.
  6. La fecha del dispositivo es incorrecta. Consulta la sección anterior.

Si solo algunos canales no tienen guía, casi siempre es el paso 4: esos canales no existen en el archivo, o figuran con otro identificador. Ningún ajuste del reproductor puede inventar una parrilla que la fuente no tiene.

Tamaño, compresión y frecuencia de actualización

Un archivo XMLTV es prolijo: cada programa repite sus etiquetas, sus atributos y a veces largas sinopsis. Para unos cientos de canales durante una semana, el archivo puede pesar varias decenas de megabytes. Por eso se distribuye muy a menudo comprimido en formato gzip, con la extensión .xml.gz. El texto XML, muy repetitivo, se comprime bien: es habitual que el tamaño se reduzca entre cinco y diez veces.

ElementoEfecto en el pesoConsejo
Número de días cubiertosProporcionalDos o tres días bastan para el directo
Número de canalesProporcionalUna guía limitada a tus canales es más rápida
Sinopsis e imágenesImportanteÚtiles, pero hacen más pesada la carga
Compresión .gzReduce mucho la descargaPreferirla cuando la fuente la ofrezca

En un stick de TV con poca memoria, lo que cuesta no es tanto la descarga como el análisis del archivo: hay que leer e indexar decenas de miles de programas. Una guía acotada se carga bastante más rápido que una guía «mundial» de la que solo usas una fracción.

En cuanto a la frecuencia, los reproductores vuelven a descargar la guía a intervalos regulares (a menudo una vez al día) o bajo demanda. Si tu parrilla parece congelada, fuerza una actualización desde los ajustes. En AICKO IPTV, esta operación y la incorporación de una fuente de guía se describen en la página guía de TV (EPG).

En resumen

  • La guía de programación es un archivo XMLTV aparte del vídeo.
  • Contiene elementos <channel> y <programme> vinculados por un identificador.
  • El tvg-id de la lista debe ser estrictamente idéntico al id de la guía.
  • Las horas llevan un desfase UTC (+0100 o +0200 en Francia); tvg-shift corrige un canal desfasado.
  • Una guía comprimida en .xml.gz y limitada a tus canales se carga más rápido.

Preguntas frecuentes

¿Por qué mi guía está desfasada una hora desde el cambio de hora?

El archivo de origen usa un desfase fijo que no sigue el paso a la hora de verano o de invierno. El remedio duradero es una fuente corregida; mientras tanto, un desfase de una hora en los ajustes de la guía o un tvg-shift compensan el defecto.

¿Puedo usar una guía distinta de la de mi servicio?

Sí, si tu reproductor permite introducir una dirección XMLTV. Pero la guía solo funcionará si sus identificadores de canal coinciden con los tvg-id de tu lista; si no, hay que adaptar esos identificadores en la lista.

¿Tiene que descomprimir el reproductor el archivo .gz?

Sí, la mayoría de los reproductores de televisión aceptan directamente los archivos .xml.gz. Solo tienes que descomprimirlo tú mismo para inspeccionarlo, por ejemplo con 7-Zip en Windows.

¿Por qué algunos canales tienen guía y otros no?

Los canales sin guía no están en el archivo XMLTV o figuran con un identificador distinto de su tvg-id. El reproductor solo puede mostrar lo que la fuente describe.

Para saber más

También te puede interesar

🧩

Formatos y técnica

El formato M3U / M3U8 explicado línea por línea

#EXTM3U, #EXTINF, tvg-id, tvg-logo, group-title: entiende cada línea de una lista M3U, evita errores de codificación y crea la tuya correctamente.

Leer el artículo
🧩

Formatos y técnica

Cómo funciona una conexión Xtream Codes

Servidor, puerto, usuario, player_api.php, categorías, películas, series, caducidad y conexiones simultáneas: así funciona una conexión Xtream Codes.

Leer el artículo
🧩

Formatos y técnica

HLS, MPEG-TS y DASH: los protocolos del streaming de vídeo

Segmentos, manifiestos, tasa de bits adaptativa, latencia y compatibilidad: entiende HLS, MPEG-TS y MPEG-DASH, los tres formatos del streaming de vídeo.

Leer el artículo

Descarga AICKO IPTV

La aplicación es gratuita y funciona con tu propia suscripción IPTV. Elige tu dispositivo: el enlace móvil te lleva automáticamente a la tienda correcta.

Android e iOS Versión móvil Windows 10 y 11 Versión PC Samsung, Android TV, Fire TV Versión televisión
Consíguelo en el App Store Disponible en Google Play Disponible enMicrosoft Store Disponible enAmazon Appstore