Was ist die Xtream API?
Die Xtream API ist eine REST-basierte Schnittstelle, die ursprünglich für das Xtream-Codes-Panel entwickelt wurde und sich über die Jahre zu einem De-facto-Standard in der IPTV-Welt etabliert hat. Sie ermöglicht es IPTV-Playern und Anwendungen, programmatisch auf Kanallisten, Kategorien, EPG-Daten und weitere Informationen zuzugreifen — alles über strukturierte HTTP-Endpunkte.
Im Kern funktioniert die Xtream API wie jede andere Web-API: Du sendest eine HTTP-Anfrage an einen Server und erhältst eine JSON-Antwort zurück. Das unterscheidet sie grundlegend vom klassischen M3U-Ansatz, bei dem du eine einzelne Textdatei herunterlädst, die alle Kanäle und ihre Stream-URLs enthält.
Die wichtigsten API-Endpunkte
Die Xtream API stellt mehrere Endpunkte bereit, die jeweils unterschiedliche Daten liefern:
/player_api.php?action=get_live_categories— Gibt alle verfügbaren Kategorien/Gruppen für Live-TV zurück/player_api.php?action=get_live_streams— Liefert die vollständige Kanalliste mit Metadaten/player_api.php?action=get_vod_categories— Kategorien für Video-on-Demand-Inhalte/player_api.php?action=get_vod_streams— Alle verfügbaren VOD-Einträge/player_api.php?action=get_series— Serien mit Staffel- und Episodeninformationen/xmltv.php— EPG-Daten im XMLTV-Format/player_api.php?action=get_short_epg— Kurzfristiges EPG für einen bestimmten Kanal
Jeder Request wird über Server-URL, Benutzername und Passwort authentifiziert:
https://server.example.com/player_api.php?username=user&password=pass&action=get_live_streams
Authentifizierung und Verbindungsaufbau
Bei der Xtream API gibst du drei Werte an:
- Server-URL (z. B.
https://server.example.com) - Benutzername
- Passwort
Aus diesen drei Angaben generiert die API alle nötigen Endpunkte. Das hat den Vorteil, dass du dir keine langen M3U-URLs merken musst — die drei Zugangsdaten reichen aus, um auf sämtliche Inhalte zuzugreifen.
Was ist Direct M3U?
Direct M3U (oder „klassisches M3U”) ist der traditionelle Weg, IPTV-Kanallisten zu verteilen. Dabei handelt es sich um eine einfache Textdatei im M3U-Format, die alle Kanaleinträge enthält — jeweils mit Metadaten in der #EXTINF-Zeile und der Stream-URL in der darauffolgenden Zeile.
Aufbau einer M3U-Datei
#EXTM3U
#EXTINF:-1 tvg-id="ard.de" tvg-name="Das Erste" tvg-logo="https://example.com/ard.png" group-title="Deutschland",Das Erste
https://stream.example.com/live/ard/playlist.m3u8
#EXTINF:-1 tvg-id="zdf.de" tvg-name="ZDF" tvg-logo="https://example.com/zdf.png" group-title="Deutschland",ZDF
https://stream.example.com/live/zdf/playlist.m3u8
M3U-Dateien können entweder als lokale Datei vorliegen oder über eine URL abgerufen werden. Bei einer URL-basierten M3U-Liste wird die gesamte Datei bei jedem Abruf neu heruntergeladen — es gibt keine Möglichkeit, nur bestimmte Teile oder Änderungen abzufragen.
Statisch vs. dynamisch generiert
Obwohl M3U-Dateien im Grunde statische Textdateien sind, werden sie von vielen Anbietern dynamisch generiert. Das bedeutet: Wenn du die URL aufrufst, erstellt der Server die M3U-Datei in Echtzeit mit den aktuell verfügbaren Kanälen. Trotzdem erhältst du immer die komplette Liste auf einmal — es gibt keine Möglichkeit, nach einzelnen Kategorien oder Kanälen zu filtern.
Detaillierter Vergleich
Übersichtstabelle
| Merkmal | Xtream API | Direct M3U |
|---|---|---|
| Format | JSON (strukturiert) | Klartext (M3U/M3U8) |
| Datenabruf | Gezielt per Endpunkt | Gesamte Datei auf einmal |
| Authentifizierung | User + Passwort + Server-URL | Oft Token in der URL |
| Kategorien | Separate API-Abfrage | Inline via group-title |
| EPG-Daten | Eigener API-Endpunkt | Separate XMLTV-URL nötig |
| VOD-Support | Native Endpunkte | Einträge in der Playlist |
| Serien-Support | Staffeln/Episoden strukturiert | Flache Liste |
| Catch-Up/Timeshift | API-Parameter verfügbar | Nicht standardisiert |
| Update-Mechanismus | Einzelne Endpunkte abrufbar | Kompletter Neudownload |
| Dateigröße pro Abruf | Klein (nur angefragte Daten) | Groß (gesamte Liste) |
| Offline-Nutzung | Eingeschränkt | Datei lokal speicherbar |
| Kompatibilität | Spezielle Player nötig | Fast jeder Player |
Flexibilität und Datenstruktur
Die Xtream API liefert strukturierte JSON-Daten, die von Anwendungen leicht verarbeitet werden können. Ein typischer API-Response für einen Kanal sieht so aus:
{
"num": 1,
"name": "Das Erste HD",
"stream_type": "live",
"stream_id": 12345,
"stream_icon": "https://example.com/icons/ard.png",
"epg_channel_id": "ard.de",
"category_id": "42",
"tv_archive": 1,
"tv_archive_duration": 7
}
Im Vergleich dazu musst du bei M3U die Metadaten aus der #EXTINF-Zeile parsen, was fehleranfälliger ist, da es keinen verbindlichen Standard für alle Attribute gibt. Verschiedene Anbieter nutzen unterschiedliche Tag-Formate und Attribute.
Update-Mechanismus
Ein wesentlicher Unterschied liegt im Update-Verhalten:
- Xtream API: Du kannst gezielt nur die Live-Kategorien oder nur die VOD-Liste abrufen. Wenn sich ein Kanal ändert, musst du nicht die gesamte Kanalliste neu laden.
- Direct M3U: Jedes Update erfordert den Download der kompletten Datei. Bei Listen mit hunderttausenden Einträgen kann das schnell 50 MB und mehr bedeuten.
VOD und Serien
Bei der Video-on-Demand-Unterstützung hat die Xtream API klare Vorteile:
- Xtream API: Separate Endpunkte für VOD-Kategorien, einzelne Filme und Serien mit Staffel-/Episodenstruktur. Du kannst gezielt eine einzelne Serie mit allen Staffeln und Episoden abrufen.
- Direct M3U: VOD-Einträge sind einfache Zeilen in der Playlist, ohne hierarchische Struktur. Serien werden oft als einzelne Einträge pro Episode aufgelistet, ohne explizite Verknüpfung.
Vorteile und Nachteile
Xtream API — Vorteile
- Gezielte Abfragen: Nur die Daten laden, die du gerade brauchst
- Strukturierte Daten: JSON ist leichter zu verarbeiten als M3U-Parsing
- Integriertes EPG: EPG-Daten über denselben Server abrufbar
- Catch-Up-Support: Timeshift und Aufnahmen über API-Parameter steuerbar
- Serien-Struktur: Staffeln und Episoden logisch organisiert
- Geringeres Datenvolumen: Pro Anfrage werden nur relevante Daten übertragen
Xtream API — Nachteile
- Geringere Kompatibilität: Nicht jeder Player unterstützt die Xtream API
- Serverabhängig: Ohne Verbindung zum API-Server kein Zugriff
- Kein universeller Standard: Implementierungsunterschiede zwischen Anbietern möglich
- Komplexere Einrichtung: Drei Felder statt einer einzigen URL
Direct M3U — Vorteile
- Universelle Kompatibilität: Nahezu jeder Mediaplayer kann M3U-Dateien öffnen
- Einfachheit: Eine URL oder Datei — fertig
- Offline-fähig: Datei lokal speichern und ohne Internetverbindung nutzen
- Portabilität: Einfach per Datei weitergeben oder zwischen Geräten übertragen
- Transparenz: Du siehst im Klartext, was in der Liste steht
- Bearbeitbar: Mit jedem Texteditor oder spezialisierten Tools veränderbar
Direct M3U — Nachteile
- Alles-oder-nichts-Downloads: Immer die gesamte Datei herunterladen
- Kein gezielter Zugriff: Keine Möglichkeit, nur bestimmte Kategorien abzurufen
- Parsing-Aufwand: Metadaten müssen aus Textzeilen extrahiert werden
- Kein nativer VOD-Support: Keine Hierarchie für Serien/Staffeln
- Große Dateien: Listen mit vielen Einträgen werden schnell sehr groß
Wann verwendet man welche Methode?
Xtream API ist besser geeignet, wenn…
- Du einen Player nutzt, der die API unterstützt (z. B. TiviMate, XCIPTV, Smarters)
- Du häufig zwischen Kategorien wechselst und nicht immer alles laden willst
- Dir integriertes EPG und Catch-Up wichtig sind
- Du VOD und Serien mit Staffelstruktur nutzen möchtest
- Du auf mobilen Geräten mit begrenztem Datenvolumen unterwegs bist
Direct M3U ist besser geeignet, wenn…
- Du maximale Kompatibilität brauchst (VLC, Kodi, jeder Player)
- Du die Liste lokal bearbeiten und anpassen möchtest
- Du Kanäle aus verschiedenen Quellen zusammenführen willst
- Du Playlists offline verfügbar haben möchtest
- Du einen spezialisierten Playlist-Editor wie den M3U Playlist Editor verwendest
M3U Playlist Editor und beide Formate
Im M3U Playlist Editor kannst du beide Formate nutzen. Der Import über URL unterstützt sowohl klassische M3U-Links als auch Xtream-API-Verbindungen. Bei einem Xtream-API-Import werden die strukturierten Daten serverseitig abgerufen und in das interne Format konvertiert, sodass du anschließend alle Editor-Funktionen nutzen kannst — unabhängig davon, welches Quellformat du verwendet hast.
Das bedeutet konkret: Egal ob du eine M3U-URL einfügst oder Xtream-API-Zugangsdaten angibst, das Ergebnis ist dasselbe — eine bearbeitbare Playlist mit allen Kanälen, Gruppen und Metadaten.
Zusammenführen verschiedener Quellen
Ein besonders nützlicher Anwendungsfall ist das Zusammenführen von Kanälen aus verschiedenen Quellen. Du kannst beispielsweise eine Xtream-API-Quelle mit einer klassischen M3U-Liste kombinieren. Der M3U Playlist Editor erkennt Duplikate und bietet dir Möglichkeiten zur Deduplizierung — sowohl innerhalb einer Datei als auch über mehrere Importe hinweg.
Migration zwischen Xtream API und M3U
Von Xtream API zu M3U
Die meisten Xtream-API-kompatiblen Server bieten einen eingebauten M3U-Export-Endpunkt:
https://server.example.com/get.php?username=user&password=pass&type=m3u_plus&output=ts
Die Parameter type=m3u_plus sorgen dafür, dass alle Metadaten (Logo, EPG-ID, Gruppenname) in der M3U-Datei enthalten sind. Der Parameter output bestimmt das Stream-Format (ts für MPEG-TS, m3u8 für HLS).
Von M3U zu Xtream API
Der umgekehrte Weg — eine M3U-Datei in eine Xtream-API-Quelle umwandeln — ist nicht ohne weiteres möglich, da die Xtream API eine serverseitige Infrastruktur voraussetzt. Du kannst aber M3U-Dateien in den M3U Playlist Editor importieren und dort zentral verwalten, was dir viele Vorteile der Xtream API bietet: strukturierte Kategorien, Suchfunktion, EPG-Zuordnung und geräteübergreifende Synchronisation.
Hybride Nutzung
In der Praxis nutzen viele Anwender beide Methoden parallel:
- Xtream API für den täglichen Gebrauch im Player (schnelle Navigation, EPG, Catch-Up)
- M3U-Export für Bearbeitung, Backup und Nutzung in Playern ohne API-Support
- M3U Playlist Editor als zentrale Verwaltung, die beide Welten verbindet
Technische Hintergründe
JSON vs. Klartext-Parsing
Das Parsen von JSON-Daten (Xtream API) ist technisch robuster als das Parsen von M3U-Textdateien. JSON hat eine klar definierte Spezifikation, während M3U-Dateien in der Praxis viele Variationen aufweisen:
- Unterschiedliche Zeichenkodierungen (UTF-8, Latin-1, Windows-1252)
- Variierende Tag-Formate (
tvg-idvs.tvg-IDvs.CUID) - Optionale Attribute, die mal vorhanden sind und mal nicht
- Zeilenumbrüche (Windows
\r\nvs. Unix\n)
Der M3U Playlist Editor löst dieses Problem, indem er einen robusten Parser einsetzt, der mit all diesen Varianten umgehen kann.
Bandbreite und Performance
Bei einer typischen IPTV-Liste mit 10.000 Kanälen ergeben sich folgende ungefähre Größenunterschiede:
| Abruf | Xtream API | Direct M3U |
|---|---|---|
| Nur Kategorien | ~5 KB | ~3 MB (gesamte Datei) |
| Nur Live-Kanäle | ~800 KB | ~3 MB (gesamte Datei) |
| Einzelner Kanal | ~0,5 KB | ~3 MB (gesamte Datei) |
| Kompletter Abruf | ~1,5 MB | ~3 MB |
Wie du siehst, spielt die Xtream API ihre Stärken besonders dann aus, wenn du nur Teile der Daten benötigst.
Fazit
Xtream API und Direct M3U sind zwei unterschiedliche Wege, dasselbe Ziel zu erreichen — den Zugriff auf IPTV-Kanäle. Die Xtream API bietet mehr Struktur, gezieltere Abfragen und bessere Integration von Features wie EPG und Catch-Up. Direct M3U punktet mit universeller Kompatibilität, Einfachheit und der Möglichkeit, Playlists frei zu bearbeiten.
In der Praxis schließen sich die beiden Methoden nicht gegenseitig aus. Tools wie der M3U Playlist Editor fungieren als Brücke zwischen beiden Welten: Du importierst aus beliebigen Quellen — ob Xtream API oder M3U — und verwaltest alles zentral an einem Ort. So kombinierst du die Vorteile beider Ansätze, ohne dich auf einen festlegen zu müssen.