Was ein EPG technisch ist
Ein Electronic Program Guide ist eine Programmdatenbank, nicht der Videostream selbst. Viele IPTV-Systeme verwenden XMLTV-Dateien. Darin stehen Senderkennungen, Titel, Beschreibungen, Start- und Endzeiten. Die M3U-Playlist enthält parallel einen Kanal und häufig ein Attribut wie tvg-id. Der Player verbindet beide Datensätze über diese Kennung.
Wenn der Sender läuft, aber keine Sendungsinformationen erscheinen, ist daher nicht zwingend der Stream defekt. Möglicherweise fehlt die EPG-Quelle, die Kennungen stimmen nicht überein, die XML-Datei ist zu groß oder die Zeitzone wird falsch interpretiert.
tvg-id und Sendernamen zuordnen
Die zuverlässigste Zuordnung erfolgt über eine stabile ID. Namen sind fehleranfällig: „Das Erste HD“, „ARD HD“ und „DE: Das Erste“ können denselben Sender meinen. Wenn die Playlist tvg-id="ARD.de" enthält, die XMLTV-Datei aber channel id="ard.de" oder eine völlig andere Kennung nutzt, findet ein strenger Player keinen Treffer.
Ein toleranter Player kann normalisierte Namen als Fallback vergleichen, sollte falsche Zuordnungen aber vermeiden. Sport- und Regionalsender mit ähnlichen Namen sind besonders riskant. Die beste Lösung ist eine konsistente ID vom Anbieter.
tvg-idaus M3U prüfen.channel idin XMLTV vergleichen.- Groß-/Kleinschreibung und Leerzeichen beachten.
- Namensmatching nur als Fallback nutzen.
Zeitzone und Sommerzeit
XMLTV-Zeitstempel enthalten idealerweise eine UTC-Abweichung, zum Beispiel +0200. Fehlt sie oder interpretiert der Player die Zeit als UTC statt Ortszeit, erscheinen Sendungen eine oder zwei Stunden verschoben. In Deutschland ändert sich die Abweichung durch Sommer- und Winterzeit. Ein pauschaler manueller Offset kann im März oder Oktober erneut falsch werden.
Der Player sollte vollständige Zeitstempel respektieren und die Anzeige in die lokale Zeitzone des Geräts umrechnen. Prüfen Sie außerdem, ob Datum und Zeitzone auf dem Gerät korrekt eingestellt sind. Ein Smart TV mit falscher Systemzeit kann einen ansonsten richtigen EPG falsch darstellen.
Große XMLTV-Dateien und Cache
EPG-Dateien können sehr groß sein und mehrere Tage für tausende Sender enthalten. Werden sie bei jedem Seitenaufruf vollständig geladen, entstehen lange Wartezeiten und unnötige Serverlast. Eine sinnvolle Anwendung lädt die Datei serverseitig, prüft sie und speichert einen zeitlich begrenzten Cache.
Der Cache darf nicht unbegrenzt alt bleiben. Aktualisiert der Anbieter sein Programm täglich, sollte der Player regelmäßig neu laden. Gleichzeitig muss ein abgebrochener Download verworfen werden, damit keine unvollständige XML-Datei die Anzeige leert. Bei Shared Hosting ist zeilenweises Parsen speicherschonender als das Laden des gesamten Dokuments in ein riesiges Objekt.
- Dateigröße und Antwortstatus prüfen.
- Nur vollständige Downloads speichern.
- Cache mit angemessener Lebensdauer verwenden.
- Alte Datei bei einem kurzfristigen Providerfehler vorübergehend weiterverwenden.
Woher die EPG-Adresse kommt
Manche M3U-Dateien enthalten in der Kopfzeile Attribute wie url-tvg oder x-tvg-url. Andere Xtream-APIs liefern EPG-Daten über eigene Endpunkte. Fehlt jede Angabe, kann der Player keine Programmdaten erraten. Eine externe XMLTV-Quelle ist nur sinnvoll, wenn Sie sie rechtmäßig verwenden dürfen und die Senderkennungen passen.
Verwechseln Sie EPG nicht mit Catch-up. Der EPG beschreibt vergangene und zukünftige Sendungen. Ob eine vergangene Sendung tatsächlich abrufbar ist, hängt von einer separaten Archivfunktion des Providers ab.
| Problem | Prüfung |
|---|---|
| Kein EPG für alle Sender | EPG-URL und Download |
| Nur einige Sender leer | ID-Zuordnung |
| Zeiten verschoben | Zeitzone / Gerät |
| Daten plötzlich alt | Cache und Provider-Update |
Browserbesonderheiten
Ein Browser darf eine externe XMLTV-Datei nur direkt laden, wenn der Server passende CORS-Header sendet. Bei HTTP unter einer HTTPS-Seite greift außerdem Mixed Content. Ein serverseitiger EPG-Proxy kann die Datei sicher abrufen, validieren und zwischenspeichern. Er sollte nur erlaubte HTTP(S)-Ziele akzeptieren und private Netzwerkadressen blockieren, damit keine SSRF-Sicherheitslücke entsteht.
Die Anzeige selbst muss große Datenmengen begrenzen. Statt alle Sendungen für alle Tage in den DOM zu schreiben, sollte der Player nur den sichtbaren Zeitraum und ausgewählte Kanäle rendern. Das ist besonders auf Smart TVs wichtig.
Schritt-für-Schritt-Diagnose
- Prüfen, ob die Playlist eine EPG-URL nennt.
- EPG-URL privat öffnen und Status sowie XML-Inhalt kontrollieren.
- Eine Kanal-ID aus der M3U mit der XMLTV-ID vergleichen.
- Gerätezeit und Zeitzone prüfen.
- Cache leeren oder gezielt aktualisieren, nicht das gesamte Konto löschen.
- Zweiten Sender mit eindeutigem Namen testen.
Wenn nur einzelne Sender keine Daten haben, senden Sie dem Provider die betroffene Kanal-ID und den sichtbaren Namen, nicht Ihr Passwort. Fehlt die EPG-Datei vollständig, kann der Player keine zuverlässigen Informationen erzeugen.
Was einen guten EPG ausmacht
Gute Programmdaten besitzen stabile IDs, korrekte Zeitzonen, aussagekräftige Titel und regelmäßige Aktualisierungen. Beschreibungen und Kategorien sind hilfreich, aber wichtiger ist die zuverlässige zeitliche Zuordnung. Ein Player sollte fehlende Daten neutral anzeigen und nicht alte Sendungen als aktuell ausgeben.
Bei internationalen Listen können verschiedene Zeitzonen und Sprachvarianten zusammenkommen. Der Player sollte die lokale Darstellung von der gespeicherten Quellzeit trennen. Das verhindert, dass ein Wechsel der Gerätesprache die tatsächliche Sendezeit verändert.
Aktualisierung, Gültigkeitsfenster und veraltete Daten
XMLTV-Dateien enthalten Programmpunkte für einen begrenzten Zeitraum. Manche Quellen liefern nur den aktuellen Tag, andere mehrere Tage im Voraus. Ein leerer EPG am Ende dieses Zeitfensters bedeutet deshalb nicht zwingend, dass die Zuordnung falsch ist. Prüfen Sie im XML die früheste und späteste Startzeit. Liegen beide Werte in der Vergangenheit, wurde die Quelle nicht rechtzeitig aktualisiert oder der Player verwendet eine alte Cachedatei.
Ein sinnvoller Cache berücksichtigt die Größe der Datei und die Aktualisierungsfrequenz. Bei einer täglich erzeugten Quelle ist ein Abruf alle fünf Minuten unnötig und kann zu Sperren führen. Gleichzeitig darf ein Cache nicht tagelang bestehen bleiben, wenn neue Daten verfügbar sind. Der Player sollte die letzte erfolgreiche Aktualisierung anzeigen, eine neue Datei zunächst vollständig validieren und erst danach den alten Bestand ersetzen. Scheitert der Abruf, bleibt der letzte gültige EPG kurzzeitig nutzbar, muss aber als veraltet gekennzeichnet werden.
- Erstellungs- und Änderungszeit der Quelle kontrollieren.
- Start- und Endzeit der enthaltenen Sendungen prüfen.
- Cache nur nach erfolgreichem, vollständigem Download ersetzen.
- Bei veralteten Daten nicht sofort Playlist oder Zugang löschen.
EPG sicher testen, ohne den Zugang zu veröffentlichen
Für eine Supportanfrage reichen normalerweise die EPG-Adresse, eine einzelne anonymisierte tvg-id, der sichtbare Sendername und ein kleiner XML-Ausschnitt ohne private Token. Eine vollständige M3U-URL enthält häufig Benutzername und Passwort und gehört nicht in Foren, Screenshots oder öffentliche Tickets. Auch EPG-URLs können geheime Parameter enthalten. Entfernen Sie solche Werte oder ersetzen Sie sie durch Platzhalter.
Zum lokalen Test können Sie eine kleine Kopie mit zwei Kanälen und wenigen Programmpunkten erstellen. Funktioniert diese Datei, während die vollständige Quelle scheitert, liegt der Fehler eher bei Größe, Komprimierung, ungültigen Zeichen oder einem beschädigten Eintrag. Scheitert bereits die kleine Datei, prüfen Sie XML-Struktur, Zeitformat und Kanalzuordnung. Diese Trennung liefert dem Support eine klare technische Beobachtung, ohne den eigentlichen Zugang preiszugeben.
Eigene Quelle im Browser öffnen
PlaylistPlayer stellt nur die technische Wiedergabeoberfläche bereit. Verwenden Sie ausschließlich Zugänge und Inhalte, für die Sie eine Berechtigung besitzen.
Häufige Fragen
Warum läuft der Sender, aber der EPG ist leer?
Stream und EPG sind getrennt. Häufig fehlt die XMLTV-Quelle oder die Kanal-ID passt nicht.
Warum ist der EPG eine Stunde verschoben?
Meist wird die Zeitzone oder Sommerzeit falsch interpretiert. Prüfen Sie Zeitstempel und Geräteeinstellungen.
Kann der Player EPG-Daten automatisch erfinden?
Nein. Er benötigt eine passende, erlaubte Programmdatenquelle.
Soll ich den EPG bei jedem Start neu laden?
Nein. Ein zeitlich begrenzter Cache ist schneller und schont Provider und Webhost.
