Kurz gefasst: Eine M3U-Liste ist eine Textdatei – und genau deshalb kann man erstaunlich viel damit anfangen, wenn man ihren Aufbau kennt. Dieser Artikel erklärt die tatsächliche Struktur, räumt mit der verbreiteten Verwechslung zwischen „M3U8″ und „HLS-Manifest” auf, zeigt, was die Parameter in einer Senderlisten-URL bewirken, und weist auf einen Punkt hin, den kaum jemand erwähnt: Ihre M3U-URL enthält Ihre Zugangsdaten im Klartext.

Was eine M3U-Datei tatsächlich ist

Eine M3U-Datei ist eine reine Textdatei. Sie enthält kein Video, keinen Ton und keine Sender – sondern nur eine Liste von Adressen, unter denen der Player die Streams findet. Man kann sie in jedem Texteditor öffnen und lesen.

Das Format ist alt und bewusst simpel. Für IPTV hat es sich um einige Zusatzangaben erweitert. So sieht ein realer Eintrag aus:

#EXTM3U x-tvg-url="http://server/xmltv.php?username=…&password=…"

#EXTINF:-1 tvg-id="daserste.de" tvg-name="Das Erste HD" tvg-logo="https://…/ard.png" group-title="Deutschland",Das Erste HD
http://server:8080/live/benutzer/passwort/12345.ts

Jedes Element hat eine Funktion:

Element Bedeutung
#EXTM3U Kopfzeile. Kann per x-tvg-url die Adresse der EPG-Datei mitliefern – manche Player lesen sie von dort automatisch aus.
#EXTINF:-1 Beginnt einen Eintrag. Die -1 steht für unbekannte Länge – korrekt für Live-Sender, die ja nicht enden.
tvg-id Die EPG-Kennung. Über sie wird das Programm zugeordnet – nicht über den Sendernamen.
tvg-name Anzeigename für die EPG-Zuordnung, falls keine tvg-id vorhanden ist.
tvg-logo Adresse des Senderlogos.
group-title Die Kategorie, unter der der Sender in der App einsortiert wird.
Zeile darunter Die eigentliche Stream-Adresse.

Das erklärt nebenbei die häufigste EPG-Beschwerde: Erscheint der Sender, aber kein Programm, stimmt die tvg-id nicht mit der Kennung in der EPG-Datei überein. Zeichengenau, inklusive Groß- und Kleinschreibung. Kein Player kann das erraten.

M3U und M3U8 – die Verwechslung aufgelöst

Hier hält sich eine Erklärung, die zu kurz greift. Meist heißt es: „.m3u8 ist die UTF-8-Version von .m3u.” Das ist wörtlich nicht falsch, führt aber in die Irre – denn im Streaming-Umfeld bezeichnet .m3u8 in aller Regel etwas ganz anderes.

IPTV-Senderliste (.m3u) HLS-Manifest (.m3u8)
Was drinsteht Eine Liste vieler Sender mit ihren Adressen Eine Liste der Segmente eines einzigen Streams – oder der verfügbaren Qualitätsstufen davon
Wozu Damit der Player Ihre Senderliste aufbauen kann Damit der Player einen laufenden Stream Stück für Stück nachladen kann
Wird aktualisiert Wenn sich das Angebot ändert Fortlaufend, im Sekundentakt, während der Wiedergabe
Umfang Tausende Zeilen Wenige Zeilen

Beide benutzen dasselbe Grundformat und dieselbe Dateiendung – erfüllen aber völlig unterschiedliche Aufgaben. Die eine ist Ihr Senderverzeichnis, die andere ist die Bauanleitung für einen einzelnen laufenden Stream.

Praktisch relevant ist das, weil in Anleitungen beides vermischt wird und dadurch widersprüchliche Ratschläge entstehen.

Zur Kodierung: Umlaute werden nur korrekt dargestellt, wenn die Datei UTF-8-kodiert ist. Erscheinen ä, ö, ü als kryptische Zeichen, liegt das an der Kodierung der Playlist – nicht an Ihrer App.

Die Senderlisten-URL und ihre Parameter

Bei den meisten Anbietern erhalten Sie keine Datei, sondern eine URL, unter der die Liste jederzeit frisch erzeugt wird. Sie sieht typischerweise so aus:

http://server:8080/get.php?username=BENUTZER&password=PASSWORT&type=m3u_plus&output=ts

Die beiden hinteren Parameter sind interessanter, als sie aussehen – und sie sind veränderbar.

type – wie viel Information die Liste enthält

Wert Wirkung
type=m3u Die schlanke Variante: nur Sendername und Adresse. Keine tvg-id, keine Logos, keine Gruppen.
type=m3u_plus Die vollständige Variante: mit tvg-id, tvg-logo und group-title.

Wer Sender ohne Logos, ohne Kategorien und ohne EPG angezeigt bekommt, sollte hier zuerst nachsehen: Steht in der URL type=m3u statt type=m3u_plus, fehlen diese Angaben schlicht in der Liste. Kein Player kann sie ergänzen, weil sie nie geliefert wurden.

output – in welchem Format der Stream ausgeliefert wird

Wert Wirkung
output=ts Durchgehender Transportstrom. Schnelles Umschalten, aber empfindlicher gegenüber Verbindungsschwankungen.
output=m3u8 / output=hls Segmentierte Auslieferung (HLS). Robuster bei schwankender Verbindung, dafür etwas träger beim Kanalwechsel.

Das ist ein praktisch verwertbarer Hebel. Manche Geräte und Player kommen mit dem einen Format deutlich besser zurecht als mit dem anderen. Ruckelt ein Stream trotz ausreichender Leitung, lohnt der Versuch, in der URL output=ts gegen output=hls zu tauschen (oder umgekehrt) und die Liste neu zu laden.

Voraussetzung ist, dass der Server beide Varianten anbietet – längst nicht jeder tut das. Der Versuch kostet aber nichts.

Der Punkt, den kaum jemand erwähnt: Ihre URL enthält Ihr Passwort

Sehen Sie sich die URL oben noch einmal an. username=…&password=…im Klartext.

Das ist keine Nachlässigkeit eines einzelnen Anbieters, sondern die Funktionsweise des Verfahrens: Die Zugangsdaten stehen in der Adresse. Daraus folgen mehrere Konsequenzen, die man kennen sollte:

  • Wer die URL hat, hat den Zugang. Es braucht kein Passwortfeld – die Adresse allein genügt. Wer sie weitergibt, gibt das Abo weiter.
  • Belegte Verbindungsslots. Nutzt jemand anderes Ihre URL, verbraucht er Ihre erlaubten gleichzeitigen Verbindungen. Das Symptom ist verwirrend: Ihr eigener Stream startet nicht, obwohl bei Ihnen nur ein Gerät läuft.
  • Unverschlüsselte Übertragung. Läuft die Adresse über http:// statt https://, werden die Zugangsdaten unverschlüsselt übertragen.
  • Sie hinterlässt Spuren. In Browser-Verläufen, in Chat-Nachrichten, in App-Protokollen.

Deshalb: Screenshots der eigenen Einrichtungsseite niemals ungeschwärzt in Foren oder Gruppen posten. Die URL ist darauf lesbar – und sie ist der Zugang.

Warum M3U-Listen „veralten”

Der Suchbegriff „M3U Listen aktuell” entsteht aus einer realen Erfahrung: Listen hören nach einiger Zeit auf zu funktionieren. Die Gründe unterscheiden sich aber je nach Art der Liste.

Bei einer persönlichen Anbieter-URL

Hier veraltet nichts. Die URL erzeugt die Liste bei jedem Abruf neu – ändert der Anbieter sein Angebot, ist die Änderung beim nächsten Aktualisieren enthalten. Diese Liste stirbt nur mit dem Zugang selbst.

Wird eine solche Liste als Datei exportiert und lokal gespeichert, ist der Vorteil dahin: Die Datei ist ab dann eine Momentaufnahme und veraltet ganz normal.

Bei öffentlich kursierenden Listen

Hier gibt es mehrere Zerfallsursachen gleichzeitig:

  • Die Stream-Adressen ändern sich. Sender wechseln ihre Auslieferungswege; Adressen von vor drei Monaten zeigen ins Leere.
  • Die Quellen verschwinden. Server werden abgeschaltet oder gehen aus rechtlichen Gründen offline.
  • Überlastung. Nutzen sehr viele Menschen dieselbe frei kursierende Adresse, hält die Quelle das nicht aus.

Wichtig ist die Unterscheidung zwischen zwei ganz verschiedenen Arten frei verfügbarer Listen:

Sammlungen frei empfangbarer Streams Kursierende Pay-TV-Listen
Inhalt Offizielle Livestreams öffentlich-rechtlicher Sender, Free-to-Air-Kanäle, Nachrichtensender Verschlüsselte Pay-TV-Kanäle, exklusive Sportrechte
Rechtlich Unproblematisch – die Streams sind ohnehin öffentlich Unlizenziert
Haltbarkeit Mittel – Adressen ändern sich gelegentlich Sehr kurz
Sinnvoll für Eine App oder ein Gerät testen, ohne einen Anbieter zu brauchen

Eine M3U-Liste selbst kürzen – gegen lange Ladezeiten

Ein praktischer Kniff, der ein reales Problem löst: Große Listen belasten schwache Geräte erheblich. Eine Playlist mit Zehntausenden Einträgen ist ein Textdokument im zweistelligen Megabyte-Bereich, das die App vollständig einlesen und im Arbeitsspeicher halten muss. Auf einem Stick mit wenig RAM führt das zu minutenlangen Ladezeiten oder Abstürzen.

Die Lösung ist naheliegend, weil es sich um eine Textdatei handelt:

  1. Die M3U-URL im Browser öffnen und die Liste als Datei speichern.
  2. Die Datei in einem Texteditor öffnen.
  3. Nur die Blöcke behalten, deren group-title Sie tatsächlich brauchen – jeder Block besteht aus der #EXTINF-Zeile und der Adresszeile darunter.
  4. Die Kopfzeile #EXTM3U unbedingt beibehalten.
  5. Als UTF-8 speichern und die gekürzte Datei lokal in den Player laden.

Das Ergebnis: eine Liste, die statt zehntausender Einträge vielleicht hundert enthält – und entsprechend sofort lädt.

Der Nachteil, den man kennen muss: Die gekürzte Datei aktualisiert sich nicht mehr. Ändert der Anbieter etwas, muss der Vorgang wiederholt werden. Es ist ein Tausch: Geschwindigkeit gegen Aktualität.

Viele Player bieten alternativ an, beim Laden nur bestimmte Gruppen zu berücksichtigen. Das erreicht denselben Effekt, ohne die Datei zu verändern – und ist deshalb der bequemere Weg, sofern die App es unterstützt.

Häufig gestellte Fragen

Was ist eine M3U-Liste?
Eine Textdatei, die für jeden Sender Name, Kategorie, Logo, EPG-Kennung und Stream-Adresse enthält. Sie enthält selbst kein Video – nur die Adressen, unter denen der Player die Streams findet.

Was ist der Unterschied zwischen M3U und M3U8?
Formal die Zeichenkodierung (UTF-8). Im Streaming-Umfeld bezeichnet .m3u8 aber meist eine HLS-Manifestdatei – also die Segmentliste eines einzelnen Streams. Das ist etwas völlig anderes als eine Senderliste mit tausenden Kanälen.

Warum werden keine Senderlogos und Kategorien angezeigt?
Vermutlich steht in Ihrer URL type=m3u statt type=m3u_plus. Die schlanke Variante enthält weder Logos noch Gruppen noch EPG-Kennungen – der Player kann nicht anzeigen, was nicht geliefert wird.

Warum fehlt bei M3U das TV-Programm?
Weil die Zuordnung über die Kennung tvg-id läuft, die zeichengenau mit der Kennung in der XMLTV-Datei übereinstimmen muss. Weicht sie ab, erscheinen die Sender – aber ohne Programm.

Darf ich meine M3U-URL weitergeben?
Besser nicht: Sie enthält Benutzername und Passwort im Klartext. Wer sie hat, hat vollen Zugriff und verbraucht Ihre gleichzeitigen Verbindungen. Auch ungeschwärzte Screenshots der Einrichtungsseite sind riskant – die URL ist darauf lesbar.

Wie bekomme ich die Ladezeit auf einem schwachen Gerät in den Griff?
Indem Sie die Liste verkleinern: entweder in der App nur die benötigten Gruppen laden, oder die M3U-Datei im Texteditor auf die gewünschten Sender kürzen. Der Preis dafür ist, dass eine gekürzte Datei sich nicht mehr selbst aktualisiert.

Leave a Reply

Your email address will not be published. Required fields are marked *