Education·8 min

Аутор Shamir

Kako zapravo izgleda XMLTV EPG fajl (sa primerima)

Najbrži način da prestanete da se zbunjujete oko programskih vodiča jeste da otvorite jedan i pročitate ga. XMLTV je običan XML — opširan, ali ne i komplikovan — a deset minuta provedenih uz pravi primer uštedeće vam sate nagađanja o tome zašto je vaš vodič prazan.

U ovom tekstu prikazujemo pravi fajl, objašnjavamo ga oznaku po oznaku, a zatim to znanje koristimo da objasnimo najčešći problem sa vodičem.

Bez uvijanja: Tuneline je multimedijalni plejer za sadržaj koji vi obezbeđujete. On prikazuje vodič iz izvora programa koji vi navedete. Ne dolazi ni sa vodičem ni sa sadržajem.

Struktura u jednoj rečenici

XMLTV fajl sadrži tačno dve vrste elemenata: <channel> elemente koji definišu šta postoji i <programme> elemente koji navode šta se i kada prikazuje.

To je sve. Sve ostalo su detalji.

Minimalan, potpun primer

<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="example-grabber">

  <channel id="example.news.us">
    <display-name>Example News</display-name>
    <icon src="http://logos.example/news.png" />
  </channel>

  <programme start="20260806180000 +0000"
             stop="20260806190000 +0000"
             channel="example.news.us">
    <title lang="en">Evening Report</title>
    <desc lang="en">The day's headlines and analysis.</desc>
    <category lang="en">News</category>
  </programme>

</tv>

Ovo je važeći, potpun vodič koji opisuje jedan izvor i jedan sat programa. Pravi fajl sastoji se od ista dva oblika, ponovljena na hiljade mesta.

Objašnjenje oznaku po oznaku

ElementČemu služi
<tv>Koreni element. Sve se nalazi unutar njega.
<channel id="…">Definiše izvor. id je najvažniji deo — to je ključ za povezivanje.
<display-name>Čitljiv naziv koji se prikazuje u vodiču.
<icon src="…">URL logotipa.
<programme start stop channel>Jedna zakazana stavka. channel mora da odgovara elementu <channel id>.
<title>Naziv programa.
<desc>Kratak opis.
<category>Žanr. Na osnovu njega roditeljske kontrole i filteri određuju šta prikazuju.

Format vremenske oznake zbunjuje svakoga

start="20260806180000 +0000"

Čita se kao YYYYMMDDHHMMSS, nakon čega sledi UTC pomak. Dakle, to je 6. avgust 2026. u 18:00:00 po UTC-u.

Pomak je ono što je važno. Ako ga fajl izostavi ili navede vrednost koja ne odgovara stvarnosti, vodič će se učitati bez problema, ali će sve prikazivati u pogrešno vreme. To je potpuno drugačiji problem od praznog vodiča i rešava se u podešavanjima vremenske zone, a ne promenom izvora. (Rešenje za pogrešno vreme.)

Povezivanje: zašto je vodič prazan iako je fajl učitan

Ovo je važno razumeti, jer objašnjava većinu problema sa vodičima.

Vaša plejlista i vodič su dva odvojena fajla koje treba povezati. Povezivanje se obavlja pomoću identifikatora.

U fajlu M3U:

#EXTINF:-1 tvg-id="example.news.us" tvg-logo="…",Example News
http://example.com/news.m3u8

U fajlu XMLTV:

<channel id="example.news.us">

tvg-id mora biti jednako channel id. Potpuno isto — uključujući velika i mala slova i interpunkciju.

Kada se podudare, stavka prikazuje svoj raspored. Kada se ne podudare, dobijate stavku bez vodiča, a sam fajl nije bio problem. (Druga strana priče o M3U.)

Zato je tvrdnja „Dodao sam vodič i ništa se nije desilo“ obično krivica ni plejliste ni vodiča. Problem je u tome što ih niko nije uskladio po identifikatorima. Vodič koji pokriva drugi region od onog u vašoj plejlisti učitaće hiljade programa koji ne odgovaraju nijednoj vašoj stavci.

Dodavanje izvora vodiča

Kako proveriti izvor vodiča pre nego što mu ukažete poverenje

Pre nego što okrivite plejer, pogledajte fajl.

1. Da li je kompresovan? Mnogi izvori dolaze u obliku .xml.gz. To je uobičajeno — većina plejera ih podržava. Ako proveravate fajl ručno, prvo ga raspakujte.

2. Da li zaista sadrži vaše izvore? Pretražite fajl i potražite neku od vrednosti tvg-id. Ako je nema, taj vodič ne pokriva vašu listu i nijedno podešavanje to neće promeniti.

curl -s "https://example.com/guide.xml.gz" | gunzip | grep -c "<channel "
curl -s "https://example.com/guide.xml.gz" | gunzip | grep "example.news.us"

Prva provera govori vam koliko je izvora navedeno. Druga pokazuje da li je među njima i vaš.

3. Da li pokriva koristan vremenski period? Proverite najranije i najkasnije vrednosti start. Neki besplatni vodiči sadrže samo 24 sata programa, dok drugi obuhvataju dve nedelje. Vodič kome je važenje isteklo juče izgleda isto kao i pokvaren vodič.

4. Koliko je velik? Potpuni nacionalni vodiči nakon raspakivanja mogu imati desetine ili stotine megabajta. To je normalno i zato prvo učitavanje na TV boxu može potrajati nekoliko minuta. (Besplatni izvori XMLTV.)

Uobičajene greške u formatu

Fajlovi vodiča iz stvarnog sveta kvare se na predvidive načine:

  • HTML stranica sa greškom sačuvana kao .xml. Otvorite je. Ako je prvi red <!DOCTYPE html>, preuzimanje nije uspelo, već je sačuvana stranica sa greškom.
  • Nezaštićeni ampersandi. Samostalni znak & umesto &amp; u naslovu čini XML nevažećim i može prekinuti celu obradu. Jedan neispravan naslov znači da nema vodiča.
  • Duplikati unosa <channel id>. Dve deklaracije sa istim ID-jem; ponašanje zavisi od plejera.
  • Programi bez odgovarajućeg kanala. Stavke rasporeda čiji atribut channel ne odgovara nijednom deklarisanom elementu <channel id>. One se tiho odbacuju.
  • Nedostajuća vremena stop. Neki alati ih izostavljaju i očekuju da se kraj izvede iz početka sledećeg programa. Neki plejeri to ne rade, pa ostaju praznine.

Mogu li sam da napišem ili izmenim vodič?

Da. To je XML, pa će poslužiti bilo koji uređivač teksta, a za malu, ručno odabranu postavku to je sasvim praktično.

Korisne izmene:

  • Promenite <channel id> tako da odgovara vrednosti tvg-id koju vaša plejlista već koristi — često je lakše nego menjati stotine redova plejliste.
  • Skratite fajl. Obrišite elemente <channel> i <programme> koji vam nisu potrebni. Manji fajl se mnogo brže učitava na uređajima sa ograničenim resursima.
  • Ispravite pomak ako je svako vreme podjednako pogrešno.

Dva pravila: sačuvajte fajl kao UTF-8 i vodite računa da bude dobro formatiran — jedan nezaštićeni znak & može vas koštati celog vodiča.

Česta pitanja

Kako izgleda fajl EPG?

Običan XML sa dve vrste elemenata: <channel> definišu svaki izvor, a <programme> navode početak, kraj i naziv svake zakazane stavke.

U kom formatu je XMLTV?

XML, koji se obično isporučuje kao .xml ili kao gzip-kompresovani .xml.gz. Vremenske oznake su u formatu YYYYMMDDHHMMSS sa UTC pomakom.

Zašto se moj vodič učita, ali ne prikazuje ništa?

Gotovo uvek zato što se vrednosti tvg-id u vašoj plejlisti ne podudaraju sa vrednostima <channel id> u vodiču. Fajl se učitao bez problema, ali nije imao sa čim da se poveže.

Kako da proverim da li vodič pokriva moje izvore?

Preuzmite ga, po potrebi ga raspakujte i potražite neki od svojih nizova tvg-id. Ako ga nema u fajlu, taj vodič ne opisuje vašu listu.

Zašto je moj fajl vodiča toliko velik?

Nacionalni vodič sa dve nedelje programa za stotine izvora zaista može imati desetine ili stotine megabajta. To je očekivano i zato je prvo učitavanje sporo.

Mogu li da izmenim fajl XMLTV?

Da, u bilo kom uređivaču teksta. Sačuvajte ga kao UTF-8 i vodite računa da XML bude dobro formatiran — jedan nezaštićeni znak & može prekinuti celu obradu.

Zaključak

  • XMLTV sadrži tačno dve stvari: deklaracije <channel> i stavke <programme>.
  • Vremenske oznake su u formatu YYYYMMDDHHMMSS + UTC pomak — pogrešan pomak znači ispravne podatke, ali pogrešno vreme.
  • Vodič se sa vašom plejlistom povezuje preko tvg-id = channel id, bez izuzetka. Nepodudaranje je najčešći uzrok praznog vodiča.
  • Proverite pre nego što okrivite: raspakujte fajl, pretražite ga po svom ID-ju i proverite raspon datuma.
  • Jedan nezaštićeni znak & može učiniti ceo fajl vodiča nevažećim.

Imate URL plejliste i vodiča? Preuzmite Tuneline — dodajte oba i programski vodič će se popuniti. Besplatno i bez reklama.

— Sem Elis

Подели чланак

The fast fix

Get Tuneline free

A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.

Download free

The cross-platform media player behind these answers — new platforms, sync updates, the honest build story. No spam, unsubscribe anytime.

Прочитајте овај чланак на другом језику

Tuneline је апликација за репродукцију медија. Не пружа, не хостује нити дистрибуира никакав садржај. Сопствену плејлисту доносите ви, исто као код VLC-а.