"EPG not loading" (EPG lädt nicht) ist die mit Abstand häufigste Beschwerde von Leuten, die IPTV auf Android TV einrichten, und fast jede Ursache sieht aus Nutzersicht identisch aus: Die Senderliste ist in Ordnung, Videos werden abgespielt, aber der Programmführer (Guide) ist leer. Die gute Nachricht ist, dass die Fehlerquellen überschaubar sind. Es gibt etwa sechs davon, und Sie können die meisten in wenigen Minuten ausschließen.

Dieser Leitfaden geht jede in der Reihenfolge durch, in der sie geprüft werden sollten. Wenn Sie Ihre XMLTV-URL vorab in den EPG-Validator einfügen können, überspringen Sie die Schritte 2–4 komplett.

Two side-by-side panels — an M3U fragment with tvg-id="bbc1" and an XMLTV fragment whose channel id flips between "BBC1" and "bbc1". A connector between them switches from a red cross to a green check as the IDs match or mismatch.

Kanal-IDs werden Byte für Byte abgeglichen: Ein einziger Großbuchstabe reicht aus, damit ein Sender einen leeren Programmführer hat.

1. Prüfen Sie, ob Sie überhaupt eine EPG-URL haben

Das Erste, was Sie überprüfen sollten, ist, ob Sie überhaupt eine Programmquelle konfiguriert haben. Einige IPTV-Anbieter liefern die Senderliste (M3U) und den Programmführer (XMLTV) als zwei separate URLs, und eine ganze Reihe von Nutzern richtet die eine ein und geht davon aus, dass die andere automatisch dabei ist.

Öffnen Sie die Quelleneinstellungen Ihres Players und suchen Sie nach zwei unterschiedlichen Feldern. Die M3U-URL endet auf .m3u, .m3u8 oder enthält type=m3u_plus. Die XMLTV-URL endet normalerweise auf .xml, .xml.gz oder enthält xmltv.php. Wenn nur ein Feld ausgefüllt ist, ist das Ihr Problem. Die meisten Anbieter im Xtream-Stil stellen das XMLTV unter demselben Hostnamen wie die Playlist zur Verfügung; der Pfad lautet typischerweise /xmltv.php?username=…&password=… mit denselben Zugangsdaten.

2. Bestätigen Sie, dass die URL tatsächlich XMLTV zurückgibt

Fügen Sie die URL in einen Browser ein. Sie sollten XML sehen — Text, der mit <?xml oder <tv> beginnt und voll von <channel>- und <programme>-Tags ist. Wenn Sie stattdessen eine HTML-Seite sehen, hat Ihr Anbieter Sie zu einem Login oder einem Captive Portal weitergeleitet, und Ihr Player erhält dieselbe Antwort. Die Lösung liegt beim Anbieter: Die URL benötigt andere Zugangsdaten oder ein neues Token.

Wenn Sie XML sehen, dieses aber winzig ist — weniger als ein paar KB —, hat Ihr Anbieter ein leeres Dokument zurückgegeben. Auch das ist dessen Problem; die meisten XMLTV-Dateien für ein paar tausend Sender sind 5–50 MB groß.

3. Überprüfen Sie die Struktur der Datei

Hier macht sich der EPG-Validator bezahlt. Fügen Sie die URL in den Validator ein und schauen Sie sich die vier Zahlen oben an:

  • Channels. Sollte in etwa der Anzahl der Sender in Ihrer M3U entsprechen. Wenn es nur ein Zehntel davon ist, ist die Datei nicht der vollständige Programmführer Ihres Anbieters.
  • Programmes. Sollte viele Tausend betragen. Ein Programmführer mit insgesamt unter 100 Programmen wird nichts Nützliches anzeigen.
  • Covering next 24h. Die wichtigste Zahl überhaupt. Wenn sie null ist, ist Ihr Programmführer veraltet — die Datei lässt sich parsen, aber jeder Eintrag darin liegt in der Vergangenheit. Der Player hat nichts anzuzeigen.
  • Hours total. Ein gesunder EPG deckt 24–168 Stunden von jetzt an in die Zukunft ab. Weniger als 24 Stunden bedeutet, dass der Programmführer heute ausläuft.

4. Schauen Sie sich das Problem-Panel an

Wenn die Zahlen richtig aussehen, der Programmführer aber immer noch leer ist, ist die Fehlerliste (Issues) des Validators der nächste Ort, um nachzuschauen. Drei Probleme kommen bei echten Anbieter-Ausgaben häufig vor:

Orphan programmes. (Verwaiste Programme). Programme verweisen auf Kanal-IDs, die nicht in derselben Datei als <channel> deklariert sind. Strikte Player (die meisten modernen Android TV-Player) verwerfen diese beim Import — das Programm hat keinen Kanal, an den es angehängt werden kann, also verschwindet es. Wenn Ihr Anbieter ein paar hundert verwaiste Einträge liefert, ist das normal und harmlos. Wenn er jedoch Zehntausende davon liefert, ist das der Grund, warum riesige Abschnitte Ihres Programmführers leer sind.

Duplicate channels. (Doppelte Kanäle). Dieselbe Kanal-ID taucht in <channel> mehr als einmal auf. Die meisten Parser behalten die erste Deklaration und verwerfen den Rest stillschweigend. Wenn der verworfene Kanal einen anderen Anzeigenamen hatte, erscheint der Sender zwar im Programmführer, aber mit dem falschen Namen.

No now-playing coverage. Die Hauptprüfung des Validators: Zeigen aktuell irgendwelche Sender ein Programm? Wenn die Antwort null ist, wird der Programmführer in jedem gut programmierten Player komplett leer angezeigt, auch wenn die XMLTV-Datei technisch gültig ist. Veralteter Programmführer. Der Anbieter muss aktualisieren.

5. Überprüfen Sie die Übereinstimmung der Kanal-ID

Das ist die Hürde, an der fast jeder scheitert. Der <channel id="…">-Wert des XMLTV muss exakt mit der tvg-id="…" in Ihrer M3U übereinstimmen. Groß-/Kleinschreibung wird beachtet, kein unscharfer Abgleich (fuzzy matching). Wenn in Ihrer M3U tvg-id="bbc1" steht und in Ihrem XMLTV <channel id="BBC1">, hat der Player keine Möglichkeit, diese zu verknüpfen, und der Sender zeigt eine leere Programmführer-Zelle an.

Um das zu überprüfen, öffnen Sie Ihre M3U in einem Texteditor und suchen Sie nach einem beliebigen tvg-id-Wert. Überprüfen Sie dann denselben Sender in der Tabelle "Top channels" (Top-Kanäle) des Validators. Die IDs sollten Byte für Byte identisch sein. Wenn nicht, haben Sie drei Optionen:

  1. Eine tvg-id-Zuordnungsdatei von Ihrem Anbieter finden (einige veröffentlichen solche).
  2. Ihre M3U manuell bearbeiten, damit sie mit den IDs im EPG übereinstimmt.
  3. Zu einem Player wechseln, der unscharfen Abgleich (Fuzzy Matching) anhand des Anzeigenamens durchführt. Klipa tut dies — die meisten anderen jedoch nicht.

6. Überprüfen Sie die Zeitzone

Die XMLTV-Spezifikation verwendet YYYYMMDDHHMMSS +ZZZZ Zeitstempel. Einige Anbieter entfernen den Offset (die Verschiebung) und hinterlassen nackte Zeitstempel ohne Zeitzone. Strikte Parser behandeln diese als UTC; tolerante Parser raten basierend auf dem System-Locale; beide liegen manchmal falsch, und das Ergebnis ist ein Programmführer, der um mehrere Stunden verschoben ist — Programme erscheinen unter dem falschen Zeitfenster, oder die Programme von letzter Nacht tauchen als die von heute auf.

Wenn Ihre Einträge im Programmführer richtig aussehen, aber verschoben sind, ist das mit ziemlicher Sicherheit die Ursache. Die Lösung ist unschön: Sie benötigen ein Tool, das jeden Zeitstempel um N Stunden verschiebt. Bis wir den EPG Timezone Shifter als Tool veröffentlichen, besteht die Notlösung darin, einen Bug-Report bei Ihrem Anbieter einzureichen und ihn zu bitten, den Offset in seine Ausgabe aufzunehmen.

Wenn alles andere fehlschlägt

Wenn Sie alle sechs Punkte überprüft haben und der Programmführer immer noch nicht geladen wird, liegt der Fehler am Player selbst. Die meisten modernen IPTV-Player speichern den EPG aggressiv im Cache — manchmal stundenlang nach einer Aktualisierung. Leeren Sie den EPG-Cache manuell oder deinstallieren und installieren Sie die App neu, um einen sauberen Import zu erzwingen.

Klipa speichert keine veralteten EPGs zwischen: Er ruft standardmäßig alle sechs Stunden neue Daten ab, und Sie können manuell in den Einstellungen aktualisieren. Wenn Sie einen Player möchten, der all diese sechs Fehlerquellen von Haus aus korrekt handhabt, ist das genau das, was er bietet.