M3U oder die Xtream-API: was Sie tatsächlich nehmen sollten
Derselbe Anbieter gibt Ihnen beides, und es sind nicht zwei Formate für dieselben Daten. Das eine ist eine Fotografie und das andere ein Gespräch.
Ihr Anbieter hat Ihnen eine E-Mail mit einem Benutzernamen, einem Passwort und einem Host geschickt. Dieselbe E-Mail oder dasselbe Panel gibt Ihnen auch eine lange Adresse, die eine Playlist-Datei herunterlädt. Das sind nicht 2 Formate für dieselbe Information. Es sind nicht dieselben Daten zweimal, und das falsche zu nehmen kostet Sie Funktionen, von denen Sie später annehmen werden, die App habe sie nicht.
Was jedes davon tatsächlich ist
Ein M3U-Export ist eine Textdatei: Sendernamen und Adressen, in dem Moment erzeugt, in dem Sie danach gefragt haben, mit einigen angehängten Attributen. Es ist eine Fotografie Ihres Zugangs.
Die Xtream-API ist ein HTTP-Endpunkt, der Fragen beantwortet. Sie ist ein Gespräch mit Ihrem Zugang, und die Antworten ändern sich, wenn sich der Zugang ändert.
Konkret ist die API ein einziges Skript, das einen Aktionsparameter entgegennimmt, statt einer Menge von Ressourcen:
player_api.php?username=U&password=P handshake
player_api.php?username=U&password=P&action=get_live_categories
player_api.php?username=U&password=P&action=get_live_streams
player_api.php?username=U&password=P&action=get_live_streams&category_id=12
player_api.php?username=U&password=P&action=get_vod_info&vod_id=884
player_api.php?username=U&password=P&action=get_series_info&series_id=41
player_api.php?username=U&password=P&action=get_short_epg&stream_id=1201
Das ist keine REST-API und gibt auch nicht vor, eine zu sein. Es ist ein Panel-Endpunkt, und diese Form hat Folgen, auf die wir zurückkommen.
Der Export wohnt auf demselben Portal, auf einem anderen Pfad. Ein Export und eine API-Sitzung sind also 2 Sichten auf 1 Konto und nicht 2 Produkte, und deshalb ist "was soll ich nehmen" eine echte Frage und keine danach, was Ihr Anbieter unterstützt.
Die drei Dinge, die nur die API ausdrücken kann
Kategorien als Daten. Ein Export trägt je Eintrag ein Attribut group-title, und das ist eine Zeichenkette. Die API hat Kategorieobjekte mit Kennungen, und Streams verweisen darauf. Bei einer kleinen Playlist ist der Unterschied theoretisch. Bei einer echten nicht: eine Produktionsquelle in unserer eigenen Stichprobe trug rund 77.842 Titel in etwa 444 Kategorien, mit einer Spanne von 8 bis 3.655 Einträgen. Eine flache Liste aus 77.842 Dingen mit einer wiederholten Zeichenkette daran ist eine andere Datenstruktur als ein Katalog, und das Stöbererlebnis folgt daraus, welche davon Sie haben.
Das Verbindungskontingent. Die API meldet, wie viele gleichzeitige Verbindungen Ihr Zugang erlaubt. Ein Export kann das nicht sagen, denn eine Liste von Adressen hat keinen Platz dafür.
Das ist keine dekorative Zahl. Multiview liest sie und zählt das Budget, bevor es eine Kachel vergibt, ein Raster mit 9 Kacheln gegen einen Zugang mit 2 Verbindungen anzufordern wird also in der Auswahl abgelehnt statt als 7 gleichlautende Wiedergabefehler auf dem Raster. Ohne die API unmöglich. Maximale Verbindungen behandelt die Zählweise.
Das Archiv. Ein Portal kann melden, welche Sender ein zurückspulbares Fenster führen und wie tief es reicht. Das ist die gesamte Grundlage von Catch-up, und auch dafür gibt es in einer M3U-Zeile keinen Ort.
Wie der Client es nutzt, ist wichtig: Catch-up-Adressen werden aus einem Sender, einer Startzeit und einer Dauer konstruiert, statt je Sendung irgendwo gelesen zu werden. Das Portal sagt uns, dass das Fenster existiert, und wir bauen die Adressen selbst. Was Catch-up und Timeshift sind behandelt den Mechanismus.
Was eine Playlist weiterhin besser kann
Drei Dinge, und sie sind echt und kein Trostpreis.
Sie funktioniert, wenn es kein Portal gibt. Viele Quellen sind überhaupt keine Xtream-Panels. Eine gemeinschaftlich gepflegte Liste öffentlicher Streams, die eigene Datei eines lokalen Senders, eine Playlist, die Sie selbst geschrieben haben: keine davon hat eine API, und eine M3U ist dafür das universelle Format.
Sie lässt sich ansehen. Öffnen Sie sie in einem Texteditor und Sie sehen genau, was Sie haben. Wenn etwas nicht stimmt, ist es viel wert, die Eingabe lesen zu können, und über eine API-Antwort, die Sie nicht sehen, lässt sich schwerer nachdenken.
Sie überlebt. Eine heruntergeladene Datei funktioniert weiter, während das Panel wegen Wartung offline ist, jedenfalls bis die Adressen darin ablaufen.
Einen Messwert hier liest man leicht über. In einem vermessenen Bestand aus 308 Live-Einträgen endeten 303 auf .m3u8, 5 hatten keine Endung, und keiner endete auf .ts. Dieser Bestand besteht aus kuratierten Verzeichnis-Playlists und nicht aus Portal-Exporten, er sagt also etwas darüber, wie öffentliche Playlists geschrieben werden, und nichts darüber, was Ihr Anbieter ausliefert. Wir haben keinen vermessenen Bestand an Live-Adressen von Portalen.
Das, was keines von beiden Ihnen sagt
Weder ein Export noch die API sagt einem Client, welchen Transportweg ein Sender tatsächlich nutzt. Der Datensatz eines Live-Senders in unserem Katalog hat kein Behälter-Feld, kein Transport-Feld und kein MIME-Feld. Es gibt keinen Ort, an dem diese Information wohnen könnte, denn keine der beiden Quellen liefert sie.
Der Transportweg kann also immer nur aus der Adresszeichenkette erschlossen werden, und der Client fordert für Live-Sender .ts an, ohne Verzweigung und ohne Einstellung. Einem Portal steht es frei, das auf ein HLS-Manifest umzuleiten. Manche tun es.
Es gibt auf einer Xtream-Quelle ein Bedienelement Stream-Format, und es tut derzeit nichts. Es normalisiert seinen Wert, speichert ihn und lädt ihn wieder, und als ich nach dem Adressbaumeister oder dem Wiedergabecode gesucht habe, der ihn zurückliest, konnte ich keinen finden, denn es gibt keinen. Es steht auf der Liste und ist kein Schalter, den Sie zu finden versäumen. MPEG-TS oder HLS behandelt, was die beiden Transportwege tatsächlich unterschiedlich machen und warum der Unterschied weniger zählt, als es klingt.
Was ein Export tatsächlich trägt, gemessen
Der Fall für einen Export lautet, dass die Attribute an jeder Zeile das meiste tragen, was ein Katalog braucht. Das stimmt, wenn sie vorhanden sind, und wie oft sie vorhanden sind, schwankt.
Über 2.203 Einträge in unserem eigenen Bestand gemessen:
entries tvg-id group-title tvg-chno
playlist_01.m3u 308 308 (100%) 283 0
playlist_02.m3u8 1,895 1,392 (73.5%) 1,895 1,355
Beide Dateien sind kuratierte Verzeichnis-Playlists und keine Panel-Exporte, lesen Sie das also als Vorführung der Schwankungsbreite und nicht als Vorhersage über Ihren Anbieter.
Drei Dinge in dieser Tabelle stechen heraus.
Die Gruppentitel stehen auf jedem Eintrag beider Dateien. Die Gruppierung ist das Attribut, das Anbieter richtig hinbekommen, denn sie ist das eine, das ihr eigenes Produkt sichtbar kaputt macht, wenn sie es weglassen.
Sendernummern fehlen in einer Datei vollständig und stehen auf 71 Prozent der anderen. Wenn Ihnen wichtig ist, dass Ihre Sender in der Reihenfolge der Ausstrahlung erscheinen, ist das ein echter Unterschied zwischen Quellen und lohnt eine Prüfung, bevor Sie sich auf eine festlegen. Sendernummern in einer Playlist behandelt, was das Attribut tut.
Und 20 Einträge in der zweiten Datei tragen ein Kennungsattribut, das vorhanden und leer ist. Eine leere Kennung ist keine Kennung, und sie als eine zu behandeln würde diese 20 Sender miteinander verknüpfen. Das muss ausdrücklich behandelt werden, statt zufällig aus dem Code zu fallen.
Serien und Filme: wo die beiden am stärksten auseinandergehen
Live-Sender sind der Bereich, in dem ein Export der Angemessenheit am nächsten kommt, denn ein Live-Sender ist tatsächlich ein Name und eine Adresse. Bei Abrufinhalten öffnet sich die Lücke.
Ein Film in einem Export ist eine Zeile: ein Titel und eine Adresse. Ein Film über die API ist ein Objekt mit einem eigenen Detailaufruf, und dort wohnen Handlung, Besetzung, Jahr, Freigabe und die Behälterendung.
Diese letzte ist keine Nettigkeit. Die API meldet die Behälterendung für einen Film, und der Client baut die Adresse daraus:
live portal/live/username/password/{stream_id}.ts
film portal/movie/username/password/{vod_id}.{container_ext}
Live ist ein festes .ts. Ein Film ist das, was das Panel sagt, denn Filme sind gespeicherte Dateien mit echten Behältern, und ein Client, der raten würde, würde falsch raten.
Serien liegen auf derselben Achse noch weiter außen. Ein Export flacht eine Serie zu einer Liste von Episodenadressen ab, mit Namen, die Staffel und Episode kodieren, wenn Sie Glück haben. Die API hat ein Serienobjekt, einen Detailaufruf je Serie und nach Staffeln gruppierte Episoden. Eine Serienbibliothek, die sich wie eine Serienbibliothek verhält und nicht wie ein Ordner voller Dateien, braucht diese Struktur von irgendwoher.
Anbieter zusammenführen, und wo diese Arbeit passiert
Sobald Sie mehr als eine Quelle haben, ist der naheliegende Wunsch eine Senderliste statt zweier, mit demselben Sender aus zwei Anbietern einmal aufgeführt und mit Wechsel zwischen ihnen.
Das wird unterstützt, und die Regel dahinter erklärt das Leistungsverhalten. Der Server speichert die Definition einer zusammengeführten Quelle und sonst nichts: Auflösung und Materialisierung laufen immer auf dem Gerät.
Das Zusammenführen, das Zuordnen und der Index passieren also alle auf dem Rechner, auf dem Sie zusehen. Das hält den Dienst darüber im Unklaren, was in Ihrer Playlist steht, und das ist dieselbe Regel, die ihn davon abhält, Ihre M3U überhaupt auszuwerten. Der Preis ist, dass die Arbeit einmal je Gerät statt einmal je Konto erledigt wird, und das ist ein Teil des Grundes, warum ein erster Start nach dem Hinzufügen einer großen Quelle langsamer ist als jeder Start danach.
Der quellenübergreifende Wiedergabewechsel setzt darauf auf. Ein Sender, den es in zwei Quellen gibt, kann auf die andere wechseln, wenn die erste ausfällt.
Eine dritte Art Portal
Das Paar aus M3U und Panel-API ist nicht die ganze Welt. Eine dritte Familie sind Stalker- und Ministra-Middleware, das Ökosystem hinter MAG-Set-Top-Boxen, und sie authentifiziert ein Gerät statt eines Kontos. Die Berechtigung ist eine MAC-Adresse statt eines Benutzernamens mit Passwort, die Vorstellung eines Anbieters davon, wie viele Geräte Sie haben, hängt also an dieser Identität und nicht an einer Anmeldung.
Wenn Ihr Anbieter Ihnen eine Portaladresse und eine MAC-Adresse gegeben hat, ist das, was Sie haben. Es ist keine der hier verglichenen Möglichkeiten.
Was Sie nehmen sollten
Wenn Ihr Anbieter Ihnen einen Host, einen Benutzernamen und ein Passwort gegeben hat, nehmen Sie die. Fügen Sie eine Xtream-Quelle hinzu. Sie bekommen den Katalog mit echten Kategorien, die Verbindungszahl, die Multiview ehrlich macht, und Catch-up, wo der Anbieter es anbietet. Der Export gibt Ihnen nichts davon und keinen ausgleichenden Vorteil.
Wenn Sie eine Playlist haben und sonst nichts, nehmen Sie die Playlist. Dafür ist sie da, und das meiste der App funktioniert identisch.
Wenn Sie beides haben und einen Fehler suchen, ist der Export ein nützliches Diagnosemittel, selbst wenn Sie die API im Betrieb nutzen. Er ist das eine Artefakt, das Sie lesen können.
Das Einzige, was Sie nicht tun sollten, ist beides als getrennte Quellen hinzuzufügen und zu erwarten, dass die App herausfindet, dass es derselbe Zugang ist. Es sind 2 Quellen, jede verbraucht Verbindungen, und die Verbindungsrechnung wird über eine Lage recht behalten, die Sie nicht beabsichtigt haben.
Um eines von beiden auf eine Konsole zu bringen, behandeln eine M3U-Playlist für die Xbox hinzufügen und mit Xtream Codes für die Xbox anmelden dieselbe Entscheidung von der Einrichtungsseite. Was die Attribute in einem Export bedeuten, behandelt M3U+ gegen einfaches M3U.
Was dieser Artikel gemessen hat22 Behauptungen, jeweils mit den Beweisen dahinter
| Anspruch | Beweise | Gezählt |
|---|---|---|
| Die Panel-API ist ein Endpunkt, der einen Aktionsparameter entgegennimmt, und keine Menge von Ressourcen. Fünfzehn Aktionen decken den gesamten Katalog ab: Kategorien und Streams für Live, Video und Serien, dazu Einzelheiten je Eintrag, ein kurzer Programmführer und eine Datentabelle. | n = 15 | 31.08.2026 |
| Stream-Adressen werden vom Client aus einer Vorlage gebaut und nicht aus der API-Antwort gelesen: Live nutzt eine .ts-Endung und Video auf Abruf eine Behälterendung, die die API meldet. | n = 2 | 31.08.2026 |
| Der M3U-Export wird von demselben Portal auf einem anderen Pfad ausgeliefert, ein Export und eine API-Sitzung sind also zwei Sichten auf ein Konto und nicht zwei Produkte. | n = 1 | 31.08.2026 |
| Das Bedienelement Stream-Format, das eine Xtream-Quelle anbietet, normalisiert seinen Wert, speichert ihn und lädt ihn wieder, und es wird von keinem Adressbaumeister und keinem Wiedergabecode gelesen. | n = 1 | 23.08.2026 |
| Der Datensatz eines Live-Senders trägt kein Feld für Behälter, Transportweg oder MIME-Typ, der Transportweg kann also immer nur aus der Adresse erschlossen und nie aus dem Katalog gelesen werden. | n = 1 | 23.08.2026 |
| Das Verbindungskontingent, das ein Portal meldet, wird genutzt und nicht bloß angezeigt: Multiview zählt es, bevor es eine Kachel vergibt, und hört auf, Sender aus einer erschöpften Quelle anzubieten. | n = 1 | 15.08.2026 |
| Catch-up-Adressen werden vom Client aus einem Sender, einer Startzeit und einer Dauer gebaut, statt je Sendung aus dem Programmführer gelesen zu werden. | n = 1 | 23.08.2026 |
| Eine Produktionsquelle in unserer eigenen Stichprobe trug rund 77.842 verschiedene Titel in etwa 444 Anbieterkategorien, wobei einzelne Kategorien zwischen 8 und 3.655 Einträgen lagen. | n = 1 | 31.08.2026 |
| Über 2.203 Einträge in unserem eigenen Playlist-Bestand gemessen: die Abdeckung mit Kennungen lag in der einen Datei bei 100 Prozent und in der anderen bei 73.5 Prozent, Sendernummern fehlten in einer Datei vollständig und lagen in der anderen auf 1355 Einträgen vor, und Gruppentitel standen auf jedem Eintrag beider Dateien. | n = 2203 | 31.08.2026 |
| Mehrere Anbieter zu einer Senderliste zusammenzuführen ist nach Entwurf eine Angelegenheit des Clients: der Server speichert die Definition einer zusammengeführten Quelle und sonst nichts, und Auflösung und Materialisierung laufen immer auf dem Gerät. | n = 1 | 31.08.2026 |
| Neben Playlists und der Panel-API wird eine dritte Portalfamilie unterstützt: Stalker- und Ministra-Middleware, die ein Gerät authentifiziert statt eines Kontos. | n = 1 | 31.08.2026 |
| Dreizehn Arten von Kontozustand werden zwischen Geräten synchronisiert, und die Playlist ist keine davon: unterwegs sind die Definition der Quelle und Ihre Entscheidungen dazu. | n = 13 | 01.09.2026 |
| Die Einstellungen je Quelle sind eine eigene synchronisierte Familie, getrennt von der Quelle selbst, und so erreicht eine an einer Stelle vorgenommene Einstellung ein Gerät, das keinen Editor dafür anbietet. | n = 1 | 01.09.2026 |
| Es gibt zwei Übersteuerungsfamilien und der Unterschied zählt: Darstellungsübersteuerungen gelten je Quelle, während Programmkorrekturen auf Profilebene und quellenfrei sind. | n = 2 | 01.09.2026 |
| Ein Konto hält höchstens 10 hochgeladene Playlists, geprüft beim Start eines Uploads und nicht an seinem Ende. | n = 1 | 01.09.2026 |
| Welchen Weg Sie auch wählen, der Server wertet ihn nicht aus: ein Datei-Import wird verschlüsselt gespeichert, ein Adress-Import hält Metadaten fest, und das Auswerten passiert auf dem Gerät, das abspielen wird. | n = 1 | 01.09.2026 |
| Eine eingefügte Adresse wird bis zu 2048 Zeichen angenommen, was die mit Token versehenen Adressen eines Portals bequem abdeckt. | n = 1 | 01.09.2026 |
| Das Verbindungskontingent, das die API meldet, wird umgesetzt statt gezeigt: ein Layout zählt es, bevor es eine Kachel vergibt, und hört auf, Sender aus einer erschöpften Quelle anzubieten. | n = 1 | 15.08.2026 |
| Der Wechsel zwischen Quellen kostet während der Überlappung eine zusätzliche Verbindung, weshalb der Planer immer dann verweigert, wenn diese Verbindung nicht nachweislich frei ist, und auf einen gewöhnlichen Neustart zurückfällt. | n = 1 | 01.09.2026 |
| Die Programmdaten werden in beiden Fällen getrennt von der Quelle eingerichtet, wobei der globale Modus bis zu 15 Adressen annimmt und der Modus je Land ab 5 Ländern warnt. | n = 2 | 01.09.2026 |
| Die Dateien des Programmführers werden von Ihren Geräten heruntergeladen und nicht von unseren Servern, und das steht auf dem Einstellungsbildschirm, statt als Umsetzungsdetail zu gelten. | n = 1 | 01.09.2026 |
| In einem vermessenen Playlist-Bestand endeten 303 von 308 Live-Pfaden auf .m3u8, 5 hatten keine Endung, und keiner endete auf .ts. Dieser Bestand besteht aus kuratierten Verzeichnisdateien und nicht aus Portal-Exporten und sagt nichts darüber, was ein Portal ausliefert. | n = 308 | 23.08.2026 |