Education·8 min

Yazan Shamir

Bir XMLTV EPG Dosyası Gerçekte Neye Benziyor (Örneklerle)

Program rehberleriyle ilgili kafa karışıklığını gidermek için en hızlı yol, birini açıp okumaktır. XMLTV düz XML'dir — ayrıntılı ama karmaşık değildir — ve gerçek bir örnekle on dakika, rehberinizin neden boş olduğunu saatlerce tahmin yapmaktan sizi kurtaracaktır.

Bu yazı gerçek bir dosya gösterir, tag tag olarak çözer ve bu anlayışı en yaygın rehber hatasını açıklamak için kullanır.

Açık söylemek gerekirse: Tuneline siz sağladığınız içerik için bir medya oynatıcısıdır. Rehberi siz sağladığınız bir program kaynağından görüntüler. Rehbersiz ve içeriksiz olarak gönderilir.

Yapı Tek Cümleyle

Bir XMLTV dosyası tam olarak iki tür öğe içerir: nelerin var olduğunu bildiren <channel> öğeleri ve ne zaman neler olduğunu söyleyen <programme> öğeleri.

Hepsi bu. Geri kalan her şey ayrıntıdır.

Minimal, Tam Bir Örnek

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

Bu, bir kaynağı ve bir saatlik programı açıklayan geçerli, tam bir rehberdir. Gerçek bir dosya, aynı iki şeklin binlerce kez tekrarlanmasıdır.

Tag Tag Olarak Çözülmüş

ÖğeNe yaptığı
<tv>Kök. Her şey içinde yaşar.
<channel id="…">Bir kaynağı bildirir. id önemli parçadır — bu birleştirme anahtarıdır.
<display-name>Rehberde gösterilen insan tarafından okunabilir ad.
<icon src="…">Logo URL'si.
<programme start stop channel>Zamanlanmış bir öğe. channel bir <channel id> ile eşleşmesi gerekir.
<title>Program adı.
<desc>Özet.
<category>Tür. Bu, ebeveyn denetimleri ve filtrelerin uygulandığı şeydir.

Zaman damgası biçimi herkesi yakalar

start="20260806180000 +0000"

YYYYMMDDHHMMSS ve ardından bir UTC sapması olarak oku. Yani bu, 6 Ağustos 2026, 18:00:00 UTC.

Sapma önemli olan parçadır. Bir dosya bunu ihmal ederse veya gerçeklikle eşleşmeyen bir şey bildirirse, rehberiniz mükemmel şekilde yüklenecek ve her şeyi yanlış zamanda gösterecektir. Bu, boş bir rehberin tamamen farklı bir sorundur ve kaynakları değiştirerek değil, saat dilimi ayarlarında düzeltilir. (Yanlış saat düzeltmesi.)

Birleştirme: Dosya Yüklenmesine Rağmen Rehberiniz Neden Boş?

İşte anlamaya değer olan şey, çünkü çoğu rehber şikayetini açıklar.

Çalma listeniz ve rehberiniz eşleştirilmesi gereken iki ayrı dosyadır. Eşleştirme bir kimlik üzerinde gerçekleşir.

M3U içinde:

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

XMLTV içinde:

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

tvg-id channel id ile eşit olmalıdır. Kesinlikle — büyük/küçük harf ve noktalama işaretleri dahil.

Eşleştiğinde, giriş programını gösterir. Eşleşmediğinde, boş bir rehberi olan bir giriş alırsınız ve dosya asla suçlu değildir. (Bunun M3U tarafı.)

Bu yüzden "rehber ekledim ve hiçbir şey olmadı" genellikle ne çalma listesinin ne de rehberin suçu değildir. Sorun, kimsenin onları kimlikleri konusunda anlaşmaya getirmemiş olmasıdır. Çalma listenizden farklı bir bölgeyi kapsayan bir rehber, girişlerinizin hiçbiriyle eşleşmeyen binlerce programı yükleyecektir.

Rehber kaynağı ekleme

Bir Rehber Kaynağına Güvenmeden Önce Nasıl İncelenir

Oynatıcınızı suçlamadan önce dosyaya bakın.

1. Sıkıştırılmış mı? Birçok kaynak .xml.gz gönderir. Bu normaldir — çoğu oynatıcı bunu işler. El ile inceliyorsanız, önce sıkıştırmayı açın.

2. Gerçekten kaynakları içeriyor mu? Dosyada tvg-id değerlerinizden birini arayın. Orada değilse, bu rehber listenizi kapsamaz ve hiçbir ayar bunu değiştirmez.

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"

İlki kaç kaynak bildirdiğini söyler. İkincisi sizinkinin bunlardan biri olup olmadığını söyler.

3. Kullanışlı bir zaman aralığını kapsar mı? En erken ve en geç start değerlerini kontrol edin. Bazı ücretsiz rehberler yalnızca 24 saat taşır; bazıları iki hafta taşır. Dün biten bir rehber bozuk olana özdeş görünür.

4. Ne kadar büyük? Tam ulusal rehberler sıkıştırılmamış halde onlarca veya yüzlerce megabayt ölçüsündedir. Bu normaldir ve bir TV kutusunda ilk yükün dakika sürebilmesinin nedeni budur. (Ücretsiz XMLTV kaynakları.)

Yaygın Yanlış Biçimler

Gerçek dünya rehberi dosyaları öngörülebilir şekillerde kırılır:

  • .xml olarak kaydedilmiş bir HTML hata sayfası. Açın. İlk satır <!DOCTYPE html> ise, indirme başarısız oldu ve hata kaydedildi.
  • Kaçışsız ve işaretleri. Bir başlıkta &amp; yerine basit bir &, geçersiz XML'dir ve tüm ayrıştırmayı durdurabilir. Bir kötü başlık, hiç rehber yok.
  • Yinelenen <channel id> girdileri. Aynı kimliğin iki bildirimi; davranış oynatıcıya bağlıdır.
  • Eşleşen kanalı olmayan programlar. channel özniteliği bildirilen <channel id> ile eşleşmeyen program girdileri. Sessizce bırakılırlar.
  • Eksik stop saatleri. Bazı yakalayıcılar bunları ihmal eder ve bir sonraki programın başlangıcının sonu ima etmesini bekler. Bazı oynatıcılar bunu tahmin etmez ve boşluklar kalır.

Kendim Yazabilir veya Düzenleyebilir miyim?

Evet. XML olduğu için herhangi bir metin editörü çalışır ve küçük bir seçilmiş kurulum için tamamen pratiktir.

Yararlı düzenlemeler:

  • Bir <channel id> değiştirin çalma listenizin zaten kullandığı tvg-id ile eşleşecek şekilde — genellikle yüzlerce çalma listesi satırını düzenlemekten daha kolaydır.
  • Budayın. İhtiyacınız olmayan <channel> ve <programme> öğelerini silin. Daha küçük bir dosya kısıtlı cihazlarda çok daha hızlı yüklenecektir.
  • Sapmayı düzeltin her zaman düzgün bir şekilde yanlışsa.

İki kural: UTF-8 olarak kaydedin ve iyi biçimlendirilmiş tutun — kaçışsız bir & tüm rehberi kaybettirebilir.

SSS

Bir EPG dosyası neye benziyor?

İki tür öğeli düz XML: her kaynağı bildiren <channel> ve her zamanlanmış öğe için başlama zamanı, durdurma zamanı ve başlık veren <programme>.

XMLTV hangi biçimdedir?

XML, genellikle .xml veya gzip-sıkıştırılmış .xml.gz olarak sunulur. Zaman damgaları YYYYMMDDHHMMSS artı UTC sapmasıdır.

Rehberim neden yükleniyor ama hiçbir şey göstermiyor?

Neredeyse her zaman çalma listenizin tvg-id değerleri rehberin <channel id> değerleriyle eşleşmediğinden. Dosya iyi yüklendi; ona birleştirilecek hiçbir şey yoktu.

Bir rehberin kaynaklarımı kapsayıp kapsamadığını nasıl kontrol edebilirim?

İndirin, gerekirse sıkıştırmayı açın ve tvg-id dizelerinizden birini arayın. Dosyada değilse, bu rehber listenizi açıklamaz.

Rehber dosyam neden bu kadar büyük?

Yüzlerce kaynak için iki haftalık program içeren ulusal bir rehber gerçekten onlarca veya yüzlerce megabaytta olur. Bu bekleniyor ve ilk yükün yavaş olmasının nedeni budur.

Bir XMLTV dosyasını düzenleyebilir miyim?

Evet, herhangi bir metin editöründe. UTF-8 olarak kaydedin ve XML'i iyi biçimlendirilmiş tutun — kaçışsız tek bir & tüm ayrıştırmayı bozabilir.

Sonuç

  • XMLTV tam olarak iki şeyi tutar: <channel> bildirimleri ve <programme> girdileri.
  • Zaman damgaları YYYYMMDDHHMMSS + UTC sapmasıdır — yanlış sapma doğru verileri, yanlış zamanları anlamına gelir.
  • Rehber tvg-id = channel id üzerinde çalma listenize birleşir, tam olarak. Uyuşmazlık boş rehberin en önemli nedenidir.
  • Suçlamadan önce inceleyin: sıkıştırmayı açın, kimliğiniz için grep yapın, tarih aralığını kontrol edin.
  • Bir kaçışsız & tüm rehber dosyasını geçersiz kılabilir.

Çalma listeniz ve rehber URL'niz var mı? İndir Tuneline — her ikisini de ekleyin ve ızgara dolacak. Ücretsiz ve reklamsız.

— Shamir

Yazıyı paylaş

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.

Bu yazıyı başka bir dilde okuyun

Tuneline bir medya oynatıcı uygulamasıdır. Hiçbir içerik sağlamaz, barındırmaz veya dağıtmaz. Kendi oynatma listenizi siz getirirsiniz, tıpkı VLC'de olduğu gibi.