AICKO IPTV: die kostenlose App für deine IPTV-Playlists Herunterladen

Veröffentlicht am · vom AICKO-IPTV-Team · 6 Min. Lesezeit

Xtream Codes: aus einer Software wurde ein Protokoll

Xtream Codes war ursprünglich der Name einer kommerziellen Software zur Verwaltung von Video-Streaming-Servern: Ein Betreiber konnte damit Streams, Kundenkonten, Kategorien und Statistiken über ein Administrationspanel verwalten. Die Software wird seit 2019 nicht mehr vertrieben, doch die Programmierschnittstelle (API), die sie den Playern bot, ist geblieben. Zahlreiche Serversoftware hat sie identisch übernommen, um mit den vorhandenen Apps kompatibel zu bleiben.

So funktioniert eine Xtream-Codes-Verbindung

Heute bezeichnet „Xtream Codes“ daher vor allem eine standardisierte Art der Verbindung: Ein Player, der diese API „spricht“, kann sich mit jedem Server verbinden, der sie umsetzt. Es ist weder ein Dienst noch ein Anbieter noch ein Inhalt. Wie bei einer M3U-Playlist hängt die Rechtmäßigkeit ganz von dem Dienst ab, mit dem Sie sich verbinden: Ein Betreiber, der die Übertragungsrechte besitzt, kann diese API selbstverständlich nutzen, während ein Dienst, der Sender ohne Erlaubnis weiterverbreitet, illegal bleibt, gleich welche Technik er einsetzt.

Die drei Verbindungsangaben

Ein kompatibler Dienst liefert seinem Kunden drei Elemente:

  • die Serveradresse, oft mit einem Port, zum Beispiel http://serveur.exemple.fr:8080;
  • einen Benutzernamen (username);
  • ein Passwort (password).

Der Port ist die Nummer der „Tür“, an der der Server lauscht. Ohne Angabe nutzt http den Port 80 und https den Port 443; viele Server dieser Art verwenden andere Ports wie 8080 oder 25461. Ein häufiger Fehler ist, den Port zu vergessen oder nach der Adresse einen überflüssigen Pfad anzuhängen (/get.php, /c/ …): Die App baut die Pfade selbst und erwartet nur die Stammadresse.

Was Sie eingebenErgebnis
http://serveur.exemple.fr:8080Korrekt
serveur.exemple.fr:8080Von den meisten Playern akzeptiert, die http:// ergänzen
http://serveur.exemple.fr (Port vergessen)Fehlschlag, wenn der Server nicht auf Port 80 lauscht
http://serveur.exemple.fr:8080/player_api.phpHäufiger Fehlschlag: Pfad doppelt angehängt
https:// statt http://Fehlschlag, wenn der Server an diesem Port keine Verschlüsselung anbietet

Benutzername und Passwort sind in der Regel groß- und kleinschreibungsabhängig: „Martin“ und „martin“ sind zwei verschiedene Konten. Auch ein versehentlich kopiertes Leerzeichen am Ende eines Feldes genügt, damit die Verbindung scheitert.

Was bei der Verbindung passiert: player_api.php

Bestätigen Sie Ihre Angaben, sendet der Player eine erste HTTP-Anfrage an das Skript player_api.php des Servers, mit Ihren Zugangsdaten als Parametern:

http://serveur.exemple.fr:8080/player_api.php?username=IDENTIFIANT&password=MOTDEPASSE

Der Server antwortet mit einem JSON-Dokument (einem strukturierten Textdatenformat) aus zwei Blöcken. Hier eine vereinfachte Antwort:

{
  "user_info": {
    "auth": 1,
    "status": "Active",
    "exp_date": "1798761600",
    "is_trial": "0",
    "active_cons": "0",
    "max_connections": "1",
    "allowed_output_formats": ["m3u8", "ts"]
  },
  "server_info": {
    "url": "serveur.exemple.fr",
    "port": "8080",
    "https_port": "8443",
    "server_protocol": "http",
    "timezone": "Europe/Paris"
  }
}

Der Block user_info beschreibt Ihr Konto, der Block server_info den Server. Ist auth gleich 0, werden die Zugangsdaten abgelehnt, und der Player zeigt einen Verbindungsfehler an. Antwortet der Server gar nicht oder liefert er statt JSON eine HTML-Seite, liegt das Problem vor der Authentifizierung: falsche Adresse, geschlossener Port, Server offline oder ein Netz, das die Verbindung blockiert.

Die wichtigsten Aktionen der API

Nach der Authentifizierung lädt der Player den Katalog, indem er an dieselbe Adresse einen Parameter action anhängt. Jede Aktion liefert eine JSON-Liste. Die gebräuchlichsten sind die folgenden.

AktionWas sie liefert
get_live_categoriesDie Kategorien der Live-Sender (Kennung und Name)
get_live_streamsDie Sender, gegebenenfalls gefiltert mit &category_id=, mit Name, Logo, EPG-Kennung
get_vod_categoriesDie Kategorien der Videos auf Abruf
get_vod_streamsDie verfügbaren Filme, mit Poster, Bewertung, Hinzufügedatum und Dateiendung
get_vod_infoDas ausführliche Datenblatt eines Films (&vod_id=): Zusammenfassung, Dauer, Spuren
get_series_categoriesDie Kategorien der Serien
get_seriesDie Liste der Serien
get_series_infoDie Staffeln und Episoden einer Serie (&series_id=)
get_short_epgDie nächsten Sendungen eines Senders (&stream_id=)

Der vollständige Programmführer ist dagegen im XMLTV-Format über das Skript xmltv.php mit denselben Zugangsdaten verfügbar. Das ist einer der Vorteile der API: Der Player braucht keine separate Adresse für den Programmführer. Wie dieser Führer funktioniert, beschreibt unser Artikel zu EPG und XMLTV.

Wie die Videos anschließend abgespielt werden

Die JSON-Listen enthalten keine Videos, nur Kennungen. Um eine Wiedergabe zu starten, baut der Player eine Adresse nach einem festen Muster auf:

http://serveur:port/live/IDENTIFIANT/MOTDEPASSE/12345.ts
http://serveur:port/movie/IDENTIFIANT/MOTDEPASSE/67890.mkv
http://serveur:port/series/IDENTIFIANT/MOTDEPASSE/24680.mp4

Bei Live-Sendern muss die gewählte Endung (.ts für einen durchgehenden MPEG-TS-Stream, .m3u8 für HLS) in der Liste allowed_output_formats des Kontos stehen. Bei Filmen und Episoden entspricht die Endung der tatsächlich auf dem Server gespeicherten Datei. Diese Formate stellt HLS, MPEG-TS und DASH vor.

Status, Ablauf und gleichzeitige Verbindungen

Der Block user_info enthält mehrere Felder, die helfen, eine Ablehnung oder einen Abbruch zu verstehen.

Der Status

Das Feld status hat in der Regel den Wert Active. Andere Werte wie Expired, Banned oder Disabled zeigen an, dass das Konto keine Inhalte mehr abspielen kann, selbst wenn die Verbindung an sich zustande kommt. Das Feld is_trial kennzeichnet ein Testkonto.

Das Ablaufdatum

Das Feld exp_date ist kein lesbares Datum, sondern ein Unix-Zeitstempel: die Zahl der Sekunden seit dem 1. Januar 1970 um Mitternacht UTC. Im obigen Beispiel entspricht 1798761600 dem 1. Januar 2027 um 0 Uhr UTC. Die Player wandeln ihn zur Anzeige in ein Datum um. Ein leerer Wert oder null bedeutet in der Regel ein Konto ohne Enddatum.

Die gleichzeitigen Verbindungen

max_connections gibt an, wie viele Streams mit demselben Konto gleichzeitig abgespielt werden können, und active_cons, wie viele es gerade sind. Liegt die Grenze bei 1 und schaut ein anderes Gerät im Haushalt bereits einen Sender, scheitert die neue Wiedergabe oder unterbricht die vorherige. Vorsicht vor einer häufigen Falle: Wechseln Sie den Sender, braucht die alte Verbindung auf dem Server manchmal einige Sekunden, bis sie geschlossen wird. Sehr schnelles Umschalten kann daher kurz eine Ablehnung wegen „zu vieler Verbindungen“ auslösen, die von selbst verschwindet.

Xtream Codes oder M3U-Playlist: die Unterschiede

Die meisten kompatiblen Dienste bieten auch eine M3U-Playlist an, die aus demselben Konto erzeugt wird. Beide Methoden geben Zugang zum selben Katalog, aber nicht auf dieselbe Weise.

KriteriumXtream-Codes-VerbindungM3U-Playlist
LadenNach Kategorie, auf AbrufEine einzige Datei, mitunter sehr groß
Filme und SerienDatenblätter, Poster, strukturierte Staffeln und EpisodenFlache Liste, oft ohne Staffeln
ProgrammführerWird automatisch geliefertAdresse url-tvg muss angegeben werden
KontoinformationenAblauf und Verbindungen sichtbarKeine
Akzeptierte ServerNur solche, die die API umsetzenJede Quelle, auch Ihre eigenen Dateien

Kurz gesagt: Die API ist komfortabler, wenn der Dienst sie anbietet, besonders bei Film- und Serienkatalogen; die M3U-Playlist ist universeller. Die Syntax der Playlists erklärt das M3U-Format Zeile für Zeile, die Eingabe beider Kontotypen in AICKO IPTV die Seite Xtream Codes und M3U.

Sicherheit und Diagnose

Eine Besonderheit dieser API sollte man kennen: Benutzername und Passwort stehen in der Adresse jeder Anfrage und jedes Streams. Bei einem Server mit einfachem http laufen sie daher im Klartext durch das Netz. Einige praktische Folgen:

  • Verwenden Sie für dieses Konto niemals ein Passwort, das Sie anderswo nutzen (E-Mail, Bank);
  • veröffentlichen Sie keinen Screenshot und kein Fehlerprotokoll, das eine vollständige Stream-Adresse enthält: Sie verrät Ihre Zugangsdaten;
  • bevorzugen Sie https, wenn der Dienst es anbietet (das Feld https_port zeigt es an).

Zur Diagnose eines Fehlschlags ist es am wirksamsten, die Adresse player_api.php?username=…&password=… im selben Netz in einem Browser zu öffnen:

  1. Keine Antwort oder Zeitüberschreitung: falsche Adresse oder falscher Port, Server abgeschaltet oder ein Netz, das diesen Port blockiert.
  2. Antwort mit "auth":0: Benutzername oder Passwort falsch.
  3. Antwort mit einem anderen Status als Active: Konto abgelaufen oder gesperrt, mit dem Dienst zu klären.
  4. Korrekte Antwort: Die Verbindung funktioniert; scheitert die Wiedergabe trotzdem, prüfen Sie Streamformat, Netzwerk oder die Decodierung des Geräts.

Zusammenfassung

  • Xtream Codes ist heute eine Verbindungs-API, die zahlreiche Server übernommen haben, kein Dienst.
  • Die Verbindung beruht auf einer Adresse mit Port, einem Benutzernamen und einem Passwort, die zwischen Groß- und Kleinschreibung unterscheiden.
  • Das Skript player_api.php liefert den Kontostatus und dann den Katalog über Aktionen wie get_live_streams oder get_series.
  • exp_date ist ein Unix-Zeitstempel, und max_connections begrenzt die gleichzeitigen Wiedergaben.
  • Die Zugangsdaten stehen in den Adressen: Verwenden Sie ein einmaliges Passwort.

Häufige Fragen

Ist Xtream Codes legal?

Die Technik ist neutral: Sie ist eine Verbindungsschnittstelle zwischen einem Player und einem Server. Entscheidend ist der Dienst, mit dem Sie sich verbinden. Sie müssen die Rechte an den Programmen besitzen, die Sie ansehen; ein Dienst, der Bezahlsender ohne Erlaubnis weiterverbreitet, bleibt illegal.

Warum funktioniert die Verbindung auf einem Gerät und auf einem anderen nicht?

Prüfen Sie zuerst auf Tippfehler, besonders bei Groß- und Kleinschreibung oder einem Leerzeichen am Ende. Sind die Eingaben identisch, kann die Grenze gleichzeitiger Verbindungen erreicht sein, oder das zweite Gerät befindet sich in einem Netz, das den vom Server verwendeten Port blockiert.

Wie erfahre ich das Ablaufdatum meines Kontos?

Die meisten Player zeigen es in den Profilinformationen an. Andernfalls enthält die Antwort von player_api.php das Feld exp_date, einen Unix-Zeitstempel, den jeder Online-Umrechner in ein lesbares Datum verwandelt.

Muss ich bei einer Xtream-Codes-Verbindung eine TV-Programmführer-Adresse eingeben?

In der Regel nicht: Der Player holt den Programmführer vom selben Server. Eine externe Programmführer-Adresse ist nur nützlich, wenn der des Dienstes leer oder unvollständig ist.

Weiterlesen

Das könnte Sie auch interessieren

🧩

Formate und Technik

Das M3U- und M3U8-Format Zeile für Zeile erklärt

#EXTM3U, #EXTINF, tvg-id, tvg-logo, group-title: So ist jede Zeile einer M3U-Liste aufgebaut, wie Sie Codierungsfehler vermeiden und eine eigene Playlist erstellen.

Artikel lesen
🧩

Formate und Technik

EPG und XMLTV: Woher der Programmführer kommt

XMLTV EPG verstehen: Aufbau einer XMLTV-Datei, Zuordnung per tvg-id, Zeitzonen, leerer oder um eine Stunde verschobener Programmführer und wie Sie ihn reparieren.

Artikel lesen
🧩

Formate und Technik

HLS, MPEG-TS und DASH: die Protokolle des Video-Streamings

Segmente, Manifeste, adaptive Bitrate, Latenz und Gerätekompatibilität: HLS, MPEG-TS und MPEG-DASH, die drei Formate des Video-Streamings, verständlich erklärt.

Artikel lesen

AICKO IPTV herunterladen

Die App ist kostenlos und arbeitet mit Ihrem eigenen IPTV-Abonnement. Wählen Sie Ihr Gerät: Der Mobil-Link führt Sie automatisch in den richtigen Store.

Android und iOS Mobile Version Windows 10 und 11 PC-Version Samsung, Android TV, Fire TV Fernsehversion
Laden im App Store Jetzt bei Google Play Erhältlich beiMicrosoft Store Erhältlich beiAmazon Appstore