AICKO IPTV: l’app gratuita per le tue playlist IPTV Scarica

Pubblicato il · dal team di AICKO IPTV · 7 min di lettura

EPG: una guida che viaggia a parte

L'EPG (Electronic Program Guide, guida elettronica ai programmi) è la griglia che indica cosa va in onda adesso e dopo su ogni canale. Sul digitale terrestre queste informazioni sono trasportate nel segnale stesso, all'interno di tabelle standardizzate dalla norma DVB. Su Internet è diverso: il video di un canale e la sua guida arrivano in genere per due strade distinte.

EPG e XMLTV: da dove arriva la guida ai programmi

Da un lato, il lettore riceve il flusso video da una playlist M3U o da una connessione Xtream Codes. Dall'altro, scarica un file di guida, quasi sempre in formato XMLTV, che descrive diversi giorni di programmi per decine o centinaia di canali. Il compito del lettore consiste poi nel far corrispondere ogni canale della playlist al suo palinsesto nel file.

Questa separazione spiega la maggior parte dei problemi: un canale può funzionare perfettamente pur avendo una guida vuota, perché il video e la guida non dipendono l'uno dall'altra.

La struttura di un file XMLTV

XMLTV è un formato aperto, nato all'inizio degli anni 2000 nella comunità del software libero, basato sul linguaggio XML. Un file contiene un elemento radice <tv>, poi due tipi di blocchi: i canali e i programmi.

<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="exemple">
  <channel id="exemple1.fr">
    <display-name>Exemple 1</display-name>
    <icon src="https://img.exemple.fr/ex1.png"/>
  </channel>
  <programme start="20260928204500 +0200" stop="20260928223000 +0200" channel="exemple1.fr">
    <title lang="fr">Documentaire du soir</title>
    <desc lang="fr">Voyage au cœur des volcans d'Auvergne.</desc>
    <category lang="fr">Documentaire</category>
  </programme>
</tv>

L'elemento channel

Ogni <channel> porta un attributo id, l'identificatore univoco del canale in quel file. È spesso formato come un nome di dominio (exemple1.fr), ma è solo una convenzione: qualsiasi stringa di caratteri è valida. Contiene anche uno o più nomi visualizzati (<display-name>) e talvolta un logo (<icon>).

L'elemento programme

Ogni <programme> descrive una trasmissione: ora di inizio (start), ora di fine (stop), canale interessato (channel, che riprende l'id di un elemento <channel>), titolo, ed eventualmente riassunto, categoria, episodio, anno, locandina o classificazione per età. I programmi sono indipendenti l'uno dall'altro, il che permette a un file di coprire da qualche ora a diverse settimane.

La corrispondenza tra playlist e guida: tvg-id

Il collegamento tra il canale della vostra playlist e il suo palinsesto si basa sull'attributo tvg-id della riga #EXTINF. La regola è semplice: il tvg-id della playlist deve essere identico, carattere per carattere, all'id del <channel> nel file XMLTV.

#EXTINF:-1 tvg-id="exemple1.fr" group-title="Généralistes",Exemple 1 HD
https://tv.exemple.fr/live/ex1.m3u8

Se la playlist indica tvg-id="Exemple1.fr" e la guida id="exemple1.fr", la corrispondenza fallisce in molti lettori, perché il confronto distingue maiuscole e minuscole. Quando manca il tvg-id, alcuni lettori tentano una corrispondenza per nome (tvg-name o nome visualizzato) con il <display-name> della guida; è meno affidabile, perché «Exemple 1 HD» ed «Exemple 1» non sono identici.

Con una connessione Xtream Codes, la corrispondenza è in linea di principio automatica: il server fornisce per ogni canale un campo epg_channel_id che svolge il ruolo del tvg-id, e una guida XMLTV coerente con questi identificatori. Il funzionamento di questa API è dettagliato nel nostro articolo sulle connessioni Xtream Codes, e la sintassi delle playlist nel formato M3U riga per riga.

Ore, fusi e sfasamenti

Le ore XMLTV si scrivono nella forma AAAAMMGGhhmmss seguita da uno scarto rispetto al tempo universale (UTC). Così, 20260928204500 +0200 significa il 28 settembre 2026 alle 20:45, in un fuso in anticipo di due ore sull'UTC, cioè le 18:45 UTC.

Nella Francia metropolitana, come in Italia, l'ora legale è UTC+1 in inverno (+0100) e UTC+2 in estate (+0200). Il passaggio all'ora estiva avviene l'ultima domenica di marzo, il ritorno all'ora invernale l'ultima domenica di ottobre. Una guida corretta per un canale di questi paesi deve quindi cambiare scarto in quelle date, oppure esprimere tutto in UTC con +0000.

Il lettore converte poi queste ore nel fuso del vostro dispositivo. Da qui tre possibili fonti di sfasamento:

SintomoCausa probabileRimedio
Tutta la guida è sfasata di un'ora esattaIl file indica uno scarto fisso che ignora il cambio d'ora, oppure +0000 mentre le ore sono localiImpostazione di sfasamento della guida nel lettore, oppure attributo tvg-shift
Sfasamento di più oreFuso del dispositivo impostato male, o guida prevista per un altro paeseVerificare data, ora e fuso nelle impostazioni di sistema
Un solo canale sfasatoCanale trasmesso da un altro fuso o sfasato volontariamente (versione «+1»)tvg-shift solo su quel canale
Sfasamento di qualche minutoIl canale non rispetta gli orari annunciatiNessuno: la guida riflette il palinsesto previsto

L'attributo tvg-shift si colloca su una riga #EXTINF e si esprime in ore, eventualmente negative o decimali: tvg-shift="-1" sposta indietro la guida di un'ora per quel canale. È un cerotto: se lo sfasamento compare o scompare al cambio d'ora, il vero difetto è nel file di origine.

Un'ultima trappola, frequente su chiavette TV e box: una data di sistema errata. Se il dispositivo non ha sincronizzato l'orologio (assenza di rete all'avvio, batteria tampone assente), il lettore cerca i programmi di un altro giorno e non mostra nulla. Attivate data e ora automatiche nelle impostazioni.

Guida vuota: le cause, in ordine

Quando la guida resta disperatamente vuota, procedete con metodo, dal più semplice al più tecnico.

  1. La guida non è ancora caricata. Un file grande può richiedere da qualche secondo a diversi minuti al primo download, soprattutto su un dispositivo modesto. Lasciate finire il lettore, poi riaprite l'elenco dei canali.
  2. Nessun indirizzo di guida è indicato. Con una playlist M3U serve o un attributo url-tvg nell'intestazione, o un indirizzo inserito nelle impostazioni del lettore.
  3. L'indirizzo non risponde. Apritelo in un browser: dovete ottenere un download o del XML, non una pagina di errore.
  4. Gli identificatori non corrispondono. Cercate il tvg-id di un canale nel file XMLTV (dopo la decompressione). Se non vi compare esattamente, il collegamento è rotto.
  5. La guida è scaduta. Guardate le date degli ultimi <programme>: un file che si ferma a ieri non può mostrare nulla oggi.
  6. La data del dispositivo è errata. Vedere la sezione precedente.

Se solo alcuni canali non hanno la guida, è quasi sempre il passaggio 4: questi canali non esistono nel file, o con un altro identificatore. Nessuna impostazione del lettore può inventare un palinsesto assente dalla sorgente.

Dimensioni, compressione e frequenza di aggiornamento

Un file XMLTV è prolisso: ogni programma ripete i suoi tag, i suoi attributi e talvolta lunghi riassunti. Per qualche centinaio di canali su una settimana, il file può pesare diverse decine di megabyte. Per questo viene molto spesso distribuito compresso in formato gzip, con l'estensione .xml.gz. Il testo XML, molto ripetitivo, si comprime bene: si osserva comunemente una dimensione divisa per cinque o dieci.

ElementoEffetto sul pesoConsiglio
Numero di giorni copertiProporzionaleDue o tre giorni bastano per la diretta
Numero di canaliProporzionaleUna guida limitata ai vostri canali è più rapida
Riassunti e immaginiImportanteUtili, ma appesantiscono il caricamento
Compressione .gzRiduce fortemente il downloadDa privilegiare quando la sorgente la offre

Su una chiavetta TV con poca memoria, a pesare è meno il download che l'analisi del file: decine di migliaia di programmi devono essere letti e indicizzati. Una guida mirata si carica molto più in fretta di una guida «mondiale» di cui usate solo una frazione.

Quanto alla frequenza, i lettori riscaricano la guida a intervalli regolari (spesso una volta al giorno) o su richiesta. Se il palinsesto sembra bloccato, forzate un aggiornamento dalle impostazioni. In AICKO IPTV, questa operazione e l'aggiunta di una sorgente di guida sono descritte nella pagina guida TV (EPG).

In sintesi

  • La guida ai programmi è un file XMLTV separato dal video.
  • Contiene elementi <channel> e <programme> collegati da un identificatore.
  • Il tvg-id della playlist deve essere rigorosamente identico all'id della guida.
  • Le ore portano uno scarto UTC (+0100 o +0200 in Francia e in Italia); tvg-shift corregge un canale sfasato.
  • Una guida compressa in .xml.gz e limitata ai vostri canali si carica più in fretta.

Domande frequenti

Perché la mia guida è sfasata di un'ora dopo il cambio d'ora?

Il file di origine usa uno scarto fisso che non segue il passaggio all'ora estiva o invernale. Il rimedio duraturo è una sorgente corretta; nel frattempo, uno sfasamento di un'ora nelle impostazioni della guida o un tvg-shift compensa il difetto.

Posso usare una guida diversa da quella del mio servizio?

Sì, se il vostro lettore permette di inserire un indirizzo XMLTV. La guida funzionerà però solo se i suoi identificatori di canale corrispondono ai tvg-id della vostra playlist; altrimenti bisogna adattare questi identificatori nella playlist.

Il lettore deve decomprimere da solo il file .gz?

Sì, la maggior parte dei lettori per televisione accetta direttamente i file .xml.gz. Dovete decomprimerlo voi stessi solo per ispezionarlo, per esempio con 7-Zip su Windows.

Perché alcuni canali hanno la guida e altri no?

I canali senza guida sono assenti dal file XMLTV oppure vi compaiono con un identificatore diverso dal loro tvg-id. Il lettore può mostrare solo ciò che la sorgente descrive.

Per approfondire

Leggi anche

🧩

Formati e tecnica

Il formato M3U / M3U8 spiegato riga per riga

#EXTM3U, #EXTINF, tvg-id, tvg-logo, group-title: capite ogni riga di una lista M3U, evitate gli errori di codifica e create la vostra in modo corretto.

Leggi l’articolo
🧩

Formati e tecnica

Come funziona una connessione Xtream Codes

Server, porta, nome utente, player_api.php, categorie, film, serie, scadenza e connessioni simultanee: il funzionamento di una connessione Xtream Codes.

Leggi l’articolo
🧩

Formati e tecnica

HLS, MPEG-TS, DASH: i protocolli dello streaming video

Segmenti, manifest, bitrate adattivo, latenza e compatibilità dei dispositivi: capire HLS, MPEG-TS e MPEG-DASH, i tre formati dello streaming video.

Leggi l’articolo

Scarica AICKO IPTV

L’app è gratuita e funziona con il tuo abbonamento IPTV. Scegli il dispositivo: il link mobile ti porta automaticamente allo store giusto.

Android e iOS Versione mobile Windows 10 e 11 Versione PC Samsung, Android TV, Fire TV Versione televisore
Scarica su App Store Disponibile su Google Play Disponibile suMicrosoft Store Disponibile suAmazon Appstore