Education·8 min

Von Shamir

So sieht eine XMLTV EPG-Datei wirklich aus (mit Beispielen)

Der schnellste Weg, sich nicht mehr über Programmguides zu verwirren, ist, einen zu öffnen und zu lesen. XMLTV ist einfaches XML – ausführlich, aber nicht kompliziert – und zehn Minuten mit einem echten Beispiel sparen Ihnen Stunden des Rätsels, warum Ihr Guide leer ist.

Dieser Beitrag zeigt eine echte Datei, dekodiert sie Tag für Tag und nutzt dieses Verständnis dann, um das häufigste Guide-Problem zu erklären.

Die ehrliche Formulierung: Tuneline ist ein Media Player für Inhalte, die Sie bereitstellen. Er zeigt einen Guide aus einer Zeitplanquelle an, die Sie bereitstellen. Er wird ohne Guide und ohne Inhalte ausgeliefert.

Die Struktur in einem Satz

Eine XMLTV-Datei enthält genau zwei Arten von Dingen: <channel>-Elemente, die erklären, was vorhanden ist, und <programme>-Elemente, die angeben, was wann läuft.

Das ist alles. Alles andere ist Detail.

Ein minimales, vollständiges Beispiel

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

Das ist ein gültiger, vollständiger Guide, der eine Quelle und eine Stunde Zeitplan beschreibt. Eine echte Datei hat die gleichen zwei Formen tausendfach wiederholt.

Tag für Tag dekodiert

ElementWas es tut
<tv>Das Wurzelelement. Alles ist darin enthalten.
<channel id="…">Erklärt eine Quelle. Das id ist der wichtige Teil – es ist der Verbindungsschlüssel.
<display-name>Der im Guide angezeigte, lesbare Name.
<icon src="…">Logo-URL.
<programme start stop channel>Ein geplantes Element. channel muss einem <channel id> entsprechen.
<title>Programmname.
<desc>Zusammenfassung.
<category>Genre. Das ist, worauf Jugendschutz und Filter wirken.

Das Zeitstempelformat fängt jeden ab

start="20260806180000 +0000"

Lesen Sie es als YYYYMMDDHHMMSS gefolgt von einem UTC-Offset. Das ist also 6. August 2026, 18:00:00 UTC.

Der Offset ist der entscheidende Teil. Wenn eine Datei ihn weglässt oder einen angibt, der nicht der Realität entspricht, wird Ihr Guide perfekt geladen und zeigt alles zur falschen Zeit. Das ist ein ganz anderes Problem als ein leerer Guide, und es wird in Ihren Zeitzone-Einstellungen behoben, nicht durch das Ändern von Quellen. (Falsche Zeiten reparieren.)

Der Join: Warum Ihr Guide leer ist, obwohl die Datei geladen wurde

Hier ist das Wichtigste zum Verständnis, denn es erklärt die meisten Guide-Beschwerden.

Ihre Playlist und Ihr Guide sind zwei separate Dateien, die zugeordnet werden müssen. Die Zuordnung erfolgt über eine ID.

In der M3U:

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

In der XMLTV:

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

tvg-id muss channel id entsprechen. Genau – einschließlich Groß- und Kleinschreibung sowie Satzzeichen.

Wenn sie sich entsprechen, zeigt der Eintrag seinen Zeitplan an. Wenn nicht, erhalten Sie einen Eintrag mit leerem Guide, und die Datei war nie schuld. (Die M3U-Seite davon.)

Deshalb ist "Ich habe einen Guide hinzugefügt und nichts passiert" normalerweise weder die Schuld der Playlist noch des Guides. Es ist, dass niemand die IDs abgestimmt hat. Ein Guide, der eine andere Region abdeckt als Ihre Playlist, lädt Tausende von Programmen, die keinem Ihrer Einträge entsprechen.

Eine Guide-Quelle hinzufügen

So überprüfen Sie eine Guide-Quelle vor dem Vertrauen

Bevor Sie Ihren Player beschuldigen, schauen Sie sich die Datei an.

1. Ist sie komprimiert? Viele Quellen werden mit .xml.gz ausgeliefert. Das ist normal – die meisten Player können damit umgehen. Wenn Sie von Hand überprüfen, dekomprimieren Sie zuerst.

2. Enthält sie tatsächlich Ihre Quellen? Suchen Sie in der Datei nach einem Ihrer tvg-id-Werte. Wenn er nicht vorhanden ist, behandelt dieser Guide Ihre Liste nicht, und keine Einstellung wird das ändern.

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"

Der erste sagt Ihnen, wie viele Quellen er erklärt. Der zweite sagt Ihnen, ob Ihrer eine davon ist.

3. Deckt er einen nützlichen Zeitbereich ab? Überprüfen Sie die frühesten und neuesten start-Werte. Einige kostenlose Guides enthalten nur 24 Stunden; einige enthalten zwei Wochen. Ein Guide, der gestern endete, sieht identisch mit einem defekten aus.

4. Wie groß ist er? Vollständige nationale Guides benötigen Zehner oder Hunderte von Megabyte unkomprimiert. Das ist normal, und deshalb kann das erste Laden auf einer TV-Box Minuten dauern. (Kostenlose XMLTV-Quellen.)

Häufige Missbildungen

Echte Guide-Dateien brechen auf vorhersehbare Weise:

  • Eine als .xml gespeicherte HTML-Fehlerseite. Öffnen Sie sie. Wenn die erste Zeile <!DOCTYPE html> ist, ist der Download fehlgeschlagen und hat den Fehler gespeichert.
  • Nicht maskierte Ampersands. Ein bloßes & statt &amp; in einem Titel ist ungültiges XML und kann den gesamten Parse abbrechen. Ein schlechter Titel, überhaupt kein Guide.
  • Doppelte <channel id>-Einträge. Zwei Erklärungen derselben ID; das Verhalten hängt vom Player ab.
  • Programme ohne passendem Kanal. Zeitplaneinträge, deren channel-Attribut keinem deklarierten <channel id> entspricht. Sie werden stillschweigend gelöscht.
  • Fehlende stop-Zeiten. Einige Grabber lassen sie aus und erwarten, dass der Anfang des nächsten Programms das Ende impliziert. Einige Player leiten das nicht ab, was Lücken hinterlässt.

Kann ich selbst einen schreiben oder bearbeiten?

Ja. Es ist XML, also funktioniert jeder Texteditor, und für eine kleine kuratierte Einrichtung ist es völlig praktisch.

Nützliche Bearbeitungen:

  • Ändern Sie ein <channel id>, um dem tvg-id zu entsprechen, das Ihre Playlist bereits verwendet – oft einfacher als das Bearbeiten von Hunderten von Playlist-Zeilen.
  • Kürzen Sie es. Löschen Sie <channel> und <programme> Elemente, die Sie nicht benötigen. Eine kleinere Datei wird auf eingeschränkten Geräten viel schneller geladen.
  • Reparieren Sie den Offset, wenn jede Zeit einheitlich falsch ist.

Zwei Regeln: Speichern Sie als UTF-8 und halten Sie es wohlgeformt – ein nicht maskiertes & kann Sie den gesamten Guide kosten.

Häufig gestellte Fragen

Wie sieht eine EPG-Datei aus?

Einfaches XML mit zwei Arten von Elementen: <channel> erklären jede Quelle, und <programme> geben eine Startzeit, Stoppzeit und einen Titel für jedes geplante Element an.

In welchem Format ist XMLTV?

XML, typischerweise als .xml oder gzip-komprimiert .xml.gz bereitgestellt. Zeitstempel sind YYYYMMDDHHMMSS plus ein UTC-Offset.

Warum lädt mein Guide, zeigt aber nichts?

Fast immer, weil Ihre Playlist-tvg-id-Werte nicht den Guide-<channel id>-Werten entsprechen. Die Datei wurde einwandfrei geladen; es gab nichts zum Verbinden.

Wie überprüfe ich, ob ein Guide meine Quellen abdeckt?

Laden Sie ihn herunter, dekomprimieren Sie ihn bei Bedarf und suchen Sie nach einer Ihrer tvg-id-Zeichenfolgen. Wenn sie nicht in der Datei enthalten ist, beschreibt dieser Guide Ihre Liste nicht.

Warum ist meine Guide-Datei so groß?

Ein nationaler Guide mit zwei Wochen Zeitplan für Hunderte von Quellen ist wirklich Zehner oder Hunderte von Megabyte. Das ist zu erwarten, und deshalb ist das erste Laden langsam.

Kann ich eine XMLTV-Datei bearbeiten?

Ja, in jedem Texteditor. Speichern Sie als UTF-8 und halten Sie das XML wohlgeformt – ein einzelnes nicht maskiertes & kann den gesamten Parse unterbrechen.

Fazit

  • XMLTV enthält genau zwei Dinge: <channel>-Deklarationen und <programme>-Einträge.
  • Zeitstempel sind YYYYMMDDHHMMSS + UTC-Offset – ein falscher Offset bedeutet richtige Daten, falsche Zeiten.
  • Der Guide verbindet sich mit Ihrer Playlist auf tvg-id = channel id, genau. Nichtübereinstimmung ist die Hauptursache für einen leeren Guide.
  • Überprüfen Sie vor dem Beschuldigen: dekomprimieren, grep für Ihre ID, überprüfen Sie den Datumsbereich.
  • Ein nicht maskiertes & kann eine ganze Guide-Datei ungültig machen.

Haben Sie eine Playlist und eine Guide-URL? Herunterladen Tuneline – fügen Sie beide hinzu und das Gitter füllt sich auf. Kostenlos und werbefrei.

— Shamir

Artikel teilen

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.

Diesen Artikel in einer anderen Sprache lesen

Tuneline ist eine Medienplayer-Anwendung. Sie stellt keine Inhalte bereit, hostet und verbreitet keine. Die eigene Playlist bringen Sie selbst mit, genau wie bei VLC.