Education·8 min

Oleh Shamir

Rupa Sebenar Fail XMLTV EPG (Dengan Contoh)

Cara terpantas untuk memahami panduan rancangan ialah dengan membuka dan membacanya. XMLTV ialah XML biasa — panjang lebar, tetapi tidak rumit — dan sepuluh minit meneliti contoh sebenar boleh menjimatkan berjam-jam daripada meneka sebab panduan anda kosong.

Siaran ini menunjukkan fail sebenar, menghuraikannya tag demi tag, kemudian menggunakan pemahaman itu untuk menerangkan kegagalan panduan yang paling biasa.

Penjelasan yang jujur: Tuneline ialah pemain media untuk kandungan yang anda sediakan. Ia memaparkan panduan daripada sumber jadual yang anda bekalkan. Ia tidak disertakan dengan panduan atau kandungan.

Struktur dalam Satu Ayat

Fail XMLTV mengandungi tepat dua jenis perkara: elemen <channel> yang mengisytiharkan perkara yang wujud, dan elemen <programme> yang menyatakan apa yang sedang ditayangkan dan bila.

Itu sahaja. Yang lain semuanya perincian.

Contoh Minimum yang Lengkap

<?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>

Itulah panduan yang sah dan lengkap, yang menerangkan satu sumber serta jadual selama satu jam. Fail sebenar mempunyai dua bentuk yang sama, diulang beribu-ribu kali.

Huraian Tag demi Tag

ElemenFungsinya
<tv>Akar. Semua kandungan berada di dalamnya.
<channel id="…">Mengisytiharkan sumber. id ialah bahagian yang penting — ia merupakan kunci padanan.
<display-name>Nama yang mudah dibaca dan dipaparkan dalam panduan.
<icon src="…">URL logo.
<programme start stop channel>Satu item berjadual. channel mesti sepadan dengan <channel id>.
<title>Nama program.
<desc>Sinopsis.
<category>Genre. Inilah yang digunakan oleh kawalan ibu bapa dan penapis.

Format cap masa yang sering mengelirukan semua orang

start="20260806180000 +0000"

Baca sebagai YYYYMMDDHHMMSS diikuti ofset UTC. Jadi, waktunya ialah 6 Ogos 2026, 18:00:00 UTC.

Ofset ialah bahagian yang penting. Jika fail tidak menyertakannya atau mengisytiharkan ofset yang tidak sepadan dengan keadaan sebenar, panduan anda akan dimuatkan dengan sempurna tetapi semuanya dipaparkan pada waktu yang salah. Ini masalah yang berbeza sepenuhnya daripada panduan kosong, dan penyelesaiannya ialah pada tetapan zon waktu anda, bukan dengan menukar sumber. (Membaiki waktu yang salah.)

Padanan: Sebab Panduan Anda Kosong Walaupun Fail Berjaya Dimuatkan

Inilah perkara yang wajar difahami kerana ia menerangkan kebanyakan aduan tentang panduan.

Senarai main dan panduan anda ialah dua fail berasingan yang perlu dipadankan. Padanan itu dibuat berdasarkan ID.

Dalam M3U:

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

Dalam XMLTV:

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

tvg-id mesti sama dengan channel id. Tepat — termasuk huruf besar, huruf kecil dan tanda baca.

Apabila sepadan, entri itu akan memaparkan jadualnya. Jika tidak, anda akan mendapat entri dengan panduan kosong, dan fail tersebut sebenarnya tidak bermasalah. (Bahagian M3U tentang perkara ini.)

Sebab itulah "Saya sudah menambah panduan tetapi tiada apa-apa berlaku" biasanya bukan kesalahan senarai main mahupun panduan. Masalahnya ialah tiada siapa yang menyelaraskan pengecam mereka. Panduan yang meliputi wilayah berbeza daripada senarai main anda boleh memuatkan beribu-ribu rancangan yang tidak sepadan dengan mana-mana entri anda.

Menambah sumber panduan

Cara Menyemak Sumber Panduan Sebelum Mempercayainya

Sebelum menyalahkan pemain anda, lihat dahulu fail tersebut.

1. Adakah ia dimampatkan? Banyak sumber menyediakan fail .xml.gz. Itu perkara biasa — kebanyakan pemain boleh mengendalikannya. Jika anda menyemaknya secara manual, nyahmampatkan fail terlebih dahulu.

2. Adakah ia benar-benar mengandungi sumber anda? Cari salah satu nilai tvg-id anda dalam fail tersebut. Jika tiada, panduan itu tidak meliputi senarai anda dan tiada tetapan yang boleh mengubahnya.

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"

Yang pertama memberitahu anda jumlah sumber yang diisytiharkan. Yang kedua memberitahu sama ada sumber anda ialah salah satu daripadanya.

3. Adakah ia meliputi julat waktu yang berguna? Semak nilai start paling awal dan paling lewat. Sesetengah panduan percuma hanya menyediakan 24 jam; ada yang menyediakan dua minggu. Panduan yang tamat tempoh semalam kelihatan sama seperti panduan yang rosak.

4. Berapa besarkah fail itu? Panduan nasional penuh boleh mencapai saiz berpuluh-puluh atau beratus-ratus megabait selepas dinyahmampatkan. Itu perkara biasa dan sebab muatan pertama boleh mengambil masa beberapa minit pada kotak TV. (Sumber XMLTV percuma.)

Kecacatan yang Biasa Berlaku

Fail panduan dunia sebenar rosak dalam cara yang boleh dijangka:

  • Halaman ralat HTML yang disimpan sebagai .xml. Buka fail itu. Jika baris pertama ialah <!DOCTYPE html>, muat turun gagal dan menyimpan ralat tersebut.
  • Ampersand yang tidak diekskap. & biasa dan bukannya &amp; dalam tajuk menjadikan XML tidak sah dan boleh menghentikan keseluruhan proses penghuraian. Satu tajuk yang rosak, tiada panduan langsung.
  • Entri <channel id> pendua. Dua pengisytiharan dengan ID yang sama; kelakuannya bergantung pada pemain.
  • Program tanpa saluran yang sepadan. Entri jadual yang atribut channel-nya tidak sepadan dengan mana-mana <channel id> yang diisytiharkan. Entri ini digugurkan secara senyap.
  • Waktu stop yang hilang. Sesetengah pengambil data tidak menyertakannya dan menganggap waktu mula program seterusnya sebagai waktu tamat. Sesetengah pemain tidak membuat andaian itu, lalu menyebabkan terdapat ruang kosong.

Bolehkah Saya Menulis atau Menyuntingnya Sendiri?

Ya. Ia ialah XML, jadi mana-mana penyunting teks boleh digunakan, dan untuk persediaan kecil yang dipilih sendiri, cara ini sememangnya praktikal.

Suntingan yang berguna:

  • Tukar <channel id> supaya sepadan dengan tvg-id yang sudah digunakan oleh senarai main anda — selalunya lebih mudah daripada menyunting beratus-ratus baris senarai main.
  • Kecilkan saiznya. Padam elemen <channel> dan <programme> yang tidak diperlukan. Fail yang lebih kecil dimuatkan jauh lebih pantas pada peranti yang terhad sumbernya.
  • Betulkan ofset jika semua waktu tersasar secara seragam.

Dua peraturan: simpan sebagai UTF-8, dan pastikan ia terbentuk dengan baik — satu & yang tidak diekskap boleh menyebabkan keseluruhan panduan gagal.

Soalan Lazim

Apakah rupa fail EPG?

XML biasa dengan dua jenis elemen: <channel> yang mengisytiharkan setiap sumber, dan <programme> yang memberikan waktu mula, waktu tamat serta tajuk bagi setiap item berjadual.

Dalam format apakah XMLTV?

XML, biasanya disediakan sebagai .xml atau .xml.gz yang dimampatkan dengan gzip. Cap masa ialah YYYYMMDDHHMMSS ditambah ofset UTC.

Mengapa panduan saya dimuatkan tetapi tidak memaparkan apa-apa?

Hampir selalu kerana nilai tvg-id dalam senarai main anda tidak sepadan dengan nilai <channel id> dalam panduan. Fail itu berjaya dimuatkan; cuma tiada padanan untuk menghubungkannya.

Bagaimanakah saya menyemak sama ada panduan meliputi sumber saya?

Muat turunnya, nyahmampatkan jika perlu, kemudian cari salah satu rentetan tvg-id anda. Jika tiada dalam fail, panduan itu tidak menerangkan senarai anda.

Mengapa fail panduan saya begitu besar?

Panduan nasional dengan jadual selama dua minggu untuk beratus-ratus sumber memang boleh berukuran berpuluh-puluh atau beratus-ratus megabait. Itu dijangka, dan sebab muatan pertama mengambil masa yang lama.

Bolehkah saya menyunting fail XMLTV?

Ya, menggunakan mana-mana penyunting teks. Simpan sebagai UTF-8 dan pastikan XML terbentuk dengan baik — satu & yang tidak diekskap boleh merosakkan keseluruhan proses penghuraian.

Kesimpulan

  • XMLTV mengandungi tepat dua perkara: pengisytiharan <channel> dan entri <programme>.
  • Cap masa ialah YYYYMMDDHHMMSS + ofset UTC — ofset yang salah bermaksud data betul tetapi waktunya salah.
  • Panduan dipadankan dengan senarai main anda berdasarkan tvg-id = channel id, tepat. Ketidakpadanan ialah punca utama panduan kosong.
  • Semak dahulu sebelum menyalahkan: nyahmampatkan, cari ID anda menggunakan grep dan semak julat tarikh.
  • Satu & yang tidak diekskap boleh menyebabkan keseluruhan fail panduan tidak sah.

Ada senarai main dan URL panduan? Muat turun Tuneline — tambah kedua-duanya dan grid akan terisi. Percuma dan tanpa iklan.

— Shamir

Kongsi artikel ini

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.

Baca artikel ini dalam bahasa lain

Tuneline ialah aplikasi pemain media. Ia tidak menyediakan, mengehos atau mengedarkan sebarang kandungan. Anda membawa senarai main anda sendiri, sama seperti dengan VLC.