EPG, gerçekten izlediğiniz bir IPTV aboneliği ile içinde kaybolup vazgeçtiğiniz 5,000-kanallı bir samanlık arasındaki farktır. Ama XMLTV (IPTV EPG'lerini besleyen format) 2001'de farklı bir dönem için tasarlandı. Çalışır. Sadece kimsenin belgelemeye zahmet etmediği beş şeyi anlamanızı gerektirir.

IPTV'de EPG (XMLTV) nasıl kurulur?

KISA CEVAP Sağlayıcınızın verdiği XMLTV adresini (çoğu zaman .xml ya da .xml.gz) oynatıcıya ekleyin; Xtream Codes kullanıyorsanız rehber çoğunlukla sunucudan kendiliğinden gelir. Programlar, M3U'daki tvg-id değeri XMLTV'deki kanal kimliğiyle birebir eşleşirse görünür. Saatler kayıksa dosyadaki saat dilimi farkını ve cihaz saatini kontrol edin; büyük dosyalar sıkıştırılmış gelir ve düzenli yenilenmelidir.

EPG nedir, XMLTV nedir

Bir EPG (Electronic Program Guide), oynatıcınıza "Kanal 12 News One'dır; şu an Akşam Haberleri'ni 19:00-19:55 arasında oynatıyor, sonra Gece Belgeseli" diyen meta veridir. EPG olmadan kanal adlarının ve canlı videonun bir listesine sahipsiniz, ama ne olduğu veya sonra ne geleceği hakkında hiçbir fikriniz yok. Geleneksel kablo için bu Kanal 100 ızgarasında geliyordu. IPTV için, oynatıcınızın çekmesi ve eşleştirmesi gereken ayrı bir XML dosyasından geliyor.

XMLTV de facto dosya formatıdır. Başlangıçta Zap2it ızgaralarını ayrıştırmak için bir Linux projesi olan bu format, ilk orada olduğu ve herkesin kopyalayacak kadar basit olduğu için M3U'nun olduğu gibi standart haline geldi. Format kanalları ve programları XML olarak açıklar. Merkezi kayıt defteri yok, kanonik kaynak yok: her sağlayıcı, yayıncı veya topluluk kendisini üretir ve bir URL'de sunar.

XMLTV anatomi: gerçek dosya formatı

Bir XMLTV dosyasının iki tür öğesi var: <channel> ve <programme>. Önce kanallar, sonra programlar gelir. Kısaltılmış örnek:

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

  <channel id="newsone.uk">
    <display-name lang="en">News One HD</display-name>
    <icon src="https://example.com/icons/newsone.png"/>
    <url>https://example.com/newsone</url>
  </channel>

  <channel id="newstwo.uk">
    <display-name lang="en">News Two HD</display-name>
    <icon src="https://example.com/icons/newstwo.png"/>
  </channel>

  <programme start="20260515190000 +0100" stop="20260515195500 +0100" channel="newsone.uk">
    <title lang="en">Evening News</title>
    <sub-title lang="en">The Star Beast</sub-title>
    <desc lang="en">The Doctor and Donna meet again, but reality is unravelling.</desc>
    <category lang="en">Drama</category>
    <category lang="en">Sci-Fi</category>
    <episode-num system="onscreen">S14E01</episode-num>
    <icon src="https://example.com/posters/dw-s14e01.jpg"/>
    <rating system="UK"><value>PG</value></rating>
  </programme>

  <programme start="20260515195500 +0100" stop="20260515203000 +0100" channel="newsone.uk">
    <title lang="en">Gece Belgeseli</title>
  </programme>

</tv>

Dikkat edilecek önemli şeyler:

  • channel id opaktır, herhangi bir şey olabilir. Burada newsone.uk, ama news.1 veya News_One_HD veya id-12345 olabilir. Standart yok.
  • Programme kanala ad ile değil id ile referans verir.
  • Zamanlar YYYYMMDDHHMMSS formatında açık saat dilimi offset'iyle (+0100 burada BST).
  • Çoğu alan opsiyonel. Minimum-uygun bir programme sadece başlık + start + stop + kanaldır.

800 kanal için 7 günlük kapsama ile tam XMLTV dosyası 25-50 MB düz metindir. Sıkıştırılmış (gzip), 4-8 MB.

XMLTV vs Xtream-sunucusu EPG: ne değişir

M3U vs Xtream Codes makalemizi okuduysanız Xtream'in get_short_epg API'si üzerinden kanal-içi kendi EPG'sine sahip olduğunu hatırlayacaksınız. Peki XMLTV ile neden uğraşalım? Birkaç neden:

YönXMLTVXtream API
Kapsam7-14 gün standartGenellikle 1-3 gün, bazen sadece 24 saat
Programme başına detayTam: başlık, açıklama, oyuncu kadrosu, puanlar, posterlerGenellikle sadece başlık + açıklama
Çevrimdışı kullanımYerel dosya çalışırCanlı bağlantı gerektirir
Kanal eşleştirmeManuel tvg-id baş ağrısıOtomatik (sunucu eşleşmeli)
Güncelleme sıklığıGünde 1-4 kezTalep üzerine, daha taze
Son dakika program değişiklikleriBir sonraki yenilemeye kadar eskiHızlı yakalanır

Çoğu güç kullanıcının vardığı bölünmüş karar: canlı UX için Xtream'in API'si (yenilenen programme kartları, mevcut programme göstergeleri) artı 7 gün derinlik için ek bir XMLTV dosyası (Cuma günü kaydetmeyi planlama, hatırlatıcılar vb.). Nightmare TV ikisini birlikte kullanır: şu anki ve sıradaki program güncel görünür, ileriki günler de XMLTV ile dolar.

tvg-id eşleştirme: EPG başarısızlıklarının en sık nedeni

M3U dosyanızda tvg-id öznitelikleriyle kanallar var:

#EXTINF:-1 tvg-id="newsone.uk" tvg-name="News One HD" tvg-logo="..." group-title="UK | HD",News One HD
https://stream.example.com/live/abc/12345.m3u8

XMLTV dosyanızda id öznitelikleriyle kanallar var:

<channel id="newsone.uk">
  <display-name lang="en">News One HD</display-name>
</channel>

Oynatıcı bunları dize eşitliği ile eşleştirir. M3U'daki newsone.uk, XMLTV'deki newsone.uk ile eşleşir. Büyük/küçük harfe duyarlı. Boşluğa duyarlı. Normalizasyon yok.

"EPG'm bozuk" şikayetlerinin çoğu buradan geliyor. Sağlayıcınızdan gelen M3U'da tvg-id="News One HD" (boşluklarla) var ama topluluk XMLTV'si id="newsone.uk" kullanıyor. Eşleşmiyorlar. Oynatıcınız News One için EPG göstermiyor: veri her iki dosyada da olsa bile.

Nasıl tanılanır

En hızlı test:

  1. M3U dosyanızı metin editöründe açın. Bilinen yayını olan bir kanal bulun. tvg-id'sini tam olarak not edin.
  2. XMLTV dosyanızı açın (gerekirse önce gunzip yapın). Kanal görünen adını <channel id="..."> bulmak için arayın.
  3. İki dizeyi bayt-by-bayt karşılaştırın. Boşluklar? Büyük harfler? Son ek farkları?

Tam olarak eşleşmiyorlarsa, EPG o kanal için çalışmaz. Düzeltme onları eşleştirmek.

Nasıl düzeltilir

Artan zorluk sırasıyla üç yaklaşım:

  1. Eşleşmiş playlist+EPG çifti bulun. Bazı XMLTV sağlayıcıları kendi XMLTV'lerine uyacak şekilde tasarlanmış M3U dosyaları yayınlar. tvg-id'ler zaten hizalanmış. En kolay yol.
  2. M3U'nun tvg-id'sini yeniden yazın. M3U'yu açan, her kanal adını XMLTV'de arayan ve tvg-id'yi eşleşecek şekilde yeniden yazan bir Python script'i. "EPG mapping tool"larının çoğu bunu yapar.
  3. Oynatıcının çeviri tablosu uygulamasını sağlayın. Bazı oynatıcılar (TiviMate, Nightmare TV) UI'da kanal eşlemeleri kurmanıza izin verir. Script'lemeden yavaş ama UI dostu.

Yaklaşım #1 çoğu kullanıcı için doğru cevap. IPTV için ödüyorsanız, sağlayıcınızın önerdiği XMLTV kaynağı M3U tvg-id'leriyle eşleşmelidir. Eşleşmiyorsa, bu desteğe geri gönderilecek bir şikayet.

Saat dilimleri: etkileşen üç saat

Ciddi kullanıcıların bir Cumartesi öğleden sonrasını kaybettikleri yer.

Bir XMLTV dosyasının her start ve stop üzerinde açık saat dilimi offset'leri vardır. Ama üç farklı saat söz konusu:

  1. Yayının saat dilimi, geldiği ülkede gerçekte ne zaman yayınlandığı.
  2. XMLTV dosyasının belirttiği saat dilimi: generator'ın dosyaya +0100 veya UTC ne yazdığı.
  3. Ekranınızın saat dilimi: Windows/Android cihazınızın zamanın ne olduğunu düşündüğü.

Oynatıcının işi #2'yi yorumlayıp #3'te göstermek. Dosya start="20260515190000 +0100" diyor ve makineniz UTC+02:00'da (İstanbul) ayarlıysa, oynatıcı "yerel saatle 20:00" göstermelidir. Herkes standardı takip ederken bu basittir.

Sorunlar şu durumlarda başlar:

  • XMLTV generator start="20260515190000" yazıyor hiç saat dilimi offset'i olmadan. Bazı oynatıcılar UTC varsayar, diğerleri yerel saat. Aynı dosya, farklı ekran, farklı program.
  • Generator +0000 yazıyor ama aslında BST kastediyor. Saatler bir saat kayıyor, bazen mevsimsel olarak (DST).
  • Oynatıcınızın "EPG saat dilimi offset'i" ayarı var ve zaten doğru olanı "düzeltmek" için ayarladınız. Şimdi her şey "düzelttiğiniz" miktar kadar yanlış.
  • Generator yaz saati uygulamasını yanlış yapıyor: yarısında CEST olması gerekirken tüm yıl CET kullanıyor. UK kanalları yazın 1 saat kayar.
ALTIN KURAL

Oynatıcınızda manuel EPG saat dilimi offset'i asla uygulamayın, XMLTV dosyasının saat dilimini atladığını veya yanlış belirttiğini doğrulamadıkça. Açık +0100/-0500/vb. offset'leriyle iyi biçimlendirilmiş bir XMLTV dosyası düzeltme gerektirmez. Her şey yılda iki kez tam olarak bir saat ile kayıyorsa, bu XMLTV generator'da bir DST hatası, tarafınızda düzeltilecek bir şey değil.

XMLTV saat diliminizi nasıl doğrularsınız

Dosyayı bir metin editöründe açın. Yayın saatini bildiğiniz bir program bulun: örn. ana bir kanalın akşam haberleri. XMLTV zamanı + offset'i gerçek yayın saatine göre karşılaştırın. Eşleşmeliler. Tam olarak bir saat sapmışlarsa DST'den şüphelenin. 5 saat sapmışlarsa, Doğu ABD içeriğinde UTC offset'lerini +0000 olarak yazan bir generator'dan şüphelenin.

Sıkıştırma, boyut ve güncelleme kadansı

800 kanal için tam 7 günlük XMLTV sıkıştırılmamış olarak yaklaşık 30-50 MB. Gzipli, bu 4-8 MB'a düşer ve gzip sunucu için esasen ücretsiz (Cloudflare ve benzerleri otomatik yapar) ve istemci için ücretsiz (her HTTP kütüphanesi şeffaf olarak ele alır).

Oynatıcılar üç yaygın formatı destekler:

  • guide.xml, düz metin, en büyüğü, en basit
  • guide.xml.gz, gzipli, 6× küçük
  • guide.xml.xz: LZMA sıkıştırmalı, 8× küçük ama tüm oynatıcılar desteklemez

Çoğu sağlayıcı için URL deseni https://example.com/epg.xml.gz ve oynatıcı sıkıştırma açmayı işler. Oynatıcınız 30 MB düz metin çekiminde zaman aşımına uğruyor ama 5 MB gzip ile çalışıyorsa, bu bant genişliği, oynatıcı değil.

Güncelleme kadansı

Oynatıcı XMLTV dosyasını ne sıklıkla yeniden çekmeli?

  • Günde bir kez: çoğu için iyi. Programlar zaman zaman değişir ama günlük yenileme çoğunu yakalar.
  • Günde iki kez (her 12 saatte bir): daha iyi. Program değişikliklerini daha hızlı yakalar.
  • Her 4 saatte bir: programların sürekli değiştiği canlı spor dışında abartı.
  • Oynatıcı başlangıcında: günde birçok kez oynatıcı başlatıyorsanız israflı. Bir aralıktan fazla geçmedikçe yeniden çekmeyin.

Nightmare TV rehberi kendiliğinden yeniler, sizin bir aralık ayarlamanız gerekmez. Bu, kaynak sunucusunu yormadan rehberi taze tutar.

XMLTV nereden alınır (ve çoklu-kaynak hilesi)

2026'da bir XMLTV dosyasını nereden almalı:

  1. IPTV sağlayıcınızdan. Çoğu hesap kontrol panelinde bir xmltv_url gönderir. Bu birincil kaynak.
  2. Topluluk-bakımlı kaynaklar. Genel XMLTV grabber'ları ve toplayıcılar yaygın kanalları kapsayan dosyalar yayınlar. Kalite değişir; bölgeniz için kapsamı kontrol edin.
  3. Kendi oluşturulan. Kararlıysanız, tvgrabnl veya iptv-tools gibi projeler yayıncı web sitelerini kazır ve kendileri XMLTV oluşturur. Bakım yükü gerçek.

Çoklu-kaynak birleştirme hilesi

UK, US, Türk, Arap ve Latin Amerika kanallarını karıştıran 5,000-kanallı bir IPTV listesi için tek bir XMLTV kaynağı her şeyi iyi kapsamaz. Hile, oynatıcıya birden fazla XMLTV dosyası yüklemek ve kanal id'sine göre birleştirmesine izin vermek.

Strateji:

  1. İlk birincil XMLTV'yi yükleyin (tipik olarak sağlayıcınızdan), kanalların %60-70'ini doğru kapsar.
  2. İkincil XMLTV'yi sonra yükleyin: birincilinizdeki boşlukları kapsar (örn. birinciliniz UK odaklıysa Türk kanalları).
  3. Gerekirse üçüncüsünü yükleyin: bölgeye özel, uzun kuyruğu doldurur.

Oynatıcı kanal id'sine göre birleştirir. haber24.tr kanalı hem birincil hem ikincilde varsa, kopyalar elde edersiniz. Düzeltme genellikle birincilinizden açıkça farklı bir ikincil kullanmak: bilinçli olarak farklı adlandırma kuralları.

Nightmare TV birden fazla XMLTV URL'sini kaynak başına öncelik ayarlarıyla yapılandırmanıza izin verir: daha yüksek öncelikli kaynaklar çatışmalarda kazanır.

Nightmare TV birden çok EPG kaynağını şeffaf olarak birleştirir

Birincil + ikincil + üçüncül XMLTV URL'lerini yükleyin, kaynak başına önceliği ayarlayın, oynatıcı birleştirmeyi işler. Artı Xtream API XMLTV derinliğinin üzerinde "şimdi/sonraki" yer paylaşımı olarak bir arada bulunabilir.

Ücretsiz Deneme İndir Microsoft Store · 7 günlük deneme · Windows 10/11

Sıfırdan temiz EPG kurulumu

Sıfırdan başlıyorsanız:

  1. IPTV sağlayıcınızdan XMLTV URL'sini alın. Genellikle kontrol panelinizde "EPG", "XMLTV URL" veya "TV Rehberi" altında.
  2. Bir tarayıcıda test edin. URL'yi yapıştırın. Ya XML metni ya da indirme istemi görmelisiniz. 404 veya 403 alırsanız, URL yanlış veya aboneliğiniz EPG içermiyor.
  3. M3U ile eşleştiğini doğrulayın. M3U'dan bir kanal seçin, tvg-id'sini bulun, XMLTV'de arayın. Eşleşme bulundu = iyi. Eşleşme yok = uyumsuzluk sorunu (yukarıdaki bölüme bakın).
  4. Oynatıcınızı yapılandırın. Ayarlar → EPG → XMLTV URL ekleyin. Makul bir yenileme kadansı seçin (her 12 saatte bir iyi).
  5. İlk çekmeyi zorlayın. Çoğu oynatıcının "EPG'yi şimdi yenile" düğmesi var. Bunu yapın. Hata için izleyin.
  6. Bir kanalı açın ve rehberi kontrol edin. Mevcut programme başlık, saat, açıklama ile görünmelidir. Yoksa troubleshooting'e düşün.

10 sessiz başarısızlık ve nasıl tespit edilir

  1. Bazı kanallar için EPG boş. tvg-id uyumsuzluğu. M3U'yu açın, XMLTV'yi açın, eksik kanal için dizeleri karşılaştırın.
  2. Tüm kanallar için EPG boş. XMLTV çekilmedi. URL'yi tarayıcıda test edin; oynatıcı loglarını kontrol edin.
  3. EPG bir saat sapmış. DST hatası. Ya XMLTV generator DST'yi yanlış işliyor ya da makinenizin saat dilimi yanlış ayarlanmış.
  4. EPG birkaç saat sapmış. XMLTV saat dilimi offset'ini atlıyor. Farklı bir kaynak deneyin veya oynatıcıda manuel offset ayarlayın (son çare).
  5. Programme başlıkları yanlış dilde. XMLTV'nin çok dilli <title> tag'leri var; oynatıcı yanlış olanı seçiyor. Oynatıcı ayarları → tercih edilen EPG dili.
  6. EPG dünün programını gösteriyor. Önbelleğe alındı, yenilenmedi. Yenilemeyi zorlayın; önbellek TTL ayarını kontrol edin.
  7. "Şu an oynuyor" yanlış, ama günün geri kalanı doğru. Programme uzuyor veya program son dakika değişti. XMLTV bir sonraki yenilemeye kadar eski. "Şimdi" verisi için Xtream API'sine geçin.
  8. Açıklama metni &amp; veya &#x... olarak görünüyor. XMLTV iki kez escape edilmiş. Kaynak dosya bozuk; sağlayıcıya bildirin.
  9. Programme simgeleri eksik. <icon> URL'leri 404 veya HTTPS-mixed-content engellendi. URL'lerden birini tarayıcıda kontrol edin.
  10. Rastgele kanallar yanlış EPG'ye sahip. tvg-id çakışması: M3U'nuzun aynı id'ye sahip iki kanalı var, bu yüzden ikisi de ilkinin rehberini alır. Düzeltme: M3U tvg-id'lerini benzersiz yapın.

Kısa Özet

  • EPG, 5,000 IPTV kanalını gerçekten gezilebilir hale getiren şeydir. XMLTV dosya formatı; Xtream'in API'si daha zengin gerçek zamanlı veri için bir alternatif.
  • M3U ile XMLTV arasındaki tvg-id eşleştirme "EPG çalışmıyor" şikayetlerinin 1 numaralı kaynağı. Dizeler bayt-by-bayt eşleşmeli.
  • Saat dilimleri: üç saat etkileşir (yayın, dosya, ekran). Açık offset'li XMLTV dosyalarına güvenin; tam bir saat sapmaysa DST'den şüphelenin.
  • Gzip sıkıştırılmış XMLTV URL'lerini kullanın: 6× küçük, her yerde desteklenir.
  • Yenileme kadansı: 12 saatlik tatlı nokta. Daha agresif olan her şey bant genişliğini boşa harcar.
  • Çoklu-kaynak XMLTV birleştirme uzun kuyruğu kapsar; öncelikleri birincil çatışmalarda kazanacak şekilde yapılandırın.
  • En iyi uygulama: birincil XMLTV (sağlayıcı) + Xtream API (şimdi/sonraki) + opsiyonel ikincil XMLTV (bölgesel doldurmalar).