Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Python Script: M3U Loader from Portal URL/MAC 01/2026

Registriert
11. Oktober 2009
Beiträge
7.475
Lösungen
3
Reaktionspunkte
9.367
Punkte
2.730
Ort
Berlin
Funktion des Scripts:

Das Script (portal-live-m3u.py) lädt IPTV-Daten von einem oder mehreren Portalen (portal.txt) herunter und erstellt daraus gefilterte M3U-Playlisten für bestimmte Länder (z.B. DE, AT, CH) und speichert diese im selben Ordner.



1. Portal laden und auswählen
• Liest aus portal.txt die verfügbaren Portale und ihre MAC-Adressen.
• Der Nutzer wählt das gewünschte Portal aus.

2. Verbindung zum Portal
• Erstellt eine requests-Session mit dem Portal.
• Holt einen Token für die Authentifizierung (Handshake).

3. Gruppen laden
• Lädt die TV-Genres/Gruppen (z.B. “DE Sport”, “AT News”) vom Portal.
• Speichert die Gruppen als JSON (X_groups.json).

4. Channels laden
• Lädt alle Channels des Portals seitenweise (mit Fortschrittsanzeige).
• Speichert die Rohdaten als JSON (X_channels.json).

5. M3U-Dateien erzeugen (build_m3u)
• Filtert Channels nach den gewählten Ländern (DE, AT, CH) anhand der Gruppen-ID.
• Erstellt eine allgemeine M3U (X_channels.m3u) nur mit den gefilterten DE/AT/CH-Channels.
• Erstellt separate M3Us für jedes Land (X_DE_channels.m3u, X_AT_channels.m3u, X_CH_channels.m3u).
• Für jede M3U wird auch eine JSON-Ausgabe mit den Stream-Links erstellt (X_*_channels_output.json).
• Fortschrittsanzeigen zeigen Ladefortschritt pro Channel und pro Land.

6. Stream-Link auflösen
• Für jeden Channel wird der eigentliche Stream-Link vom Portal abgerufen (get_stream).

Ausgaben
• JSON-Dateien: Rohdaten der Channels und der nach Land gefilterten Channels.
• M3U-Dateien:
• X_channels.m3u → alle DE/AT/CH Channels
• X_DE_channels.m3u, X_AT_channels.m3u, X_CH_channels.m3u → nur Channels des jeweiligen Landes


Voraussetzungen:
  • funktionierendes Portal URL/MAC
  • Python3
Zusätzliche Python Module:
- pip install requests tqdm

Formate in portal.txt
Code:
http://portal.live:8080/c/ 00:1A:79:6B:BD:BC
http://portal.xyz:8080 00:1A:79:20:4F:00

Inhalt: DEB.zip
  • portal-live-m3u.py
  • portal.txt
Edit:
Code:
python3 portal-live-m3u.py                  
📜 Verfügbare Portale:
  [1] http://portal:8080 (00:1A:47:08:11:15)
...
Portal auswählen (1-16): 1

🌍 Verbinde mit: http://portal:8080 (MAC: 00:1A:47:08:11:15)
📦 Lade Gruppen ...
✅ Gespeichert: 1_groups.json (259 Einträge)
📡 Lade alle Channels (kann dauern) ...
📺 Gesamtanzahl Channels: 13631 (geschätzt 974 Seiten, 14 / Seite)
  ➕ Seite 974/974: 9 Channels (gesamt: 13449))
✅ Insgesamt 13449 Channels geladen.
✅ Gespeichert: 1_channels.json (13449 Einträge)
🌍 Gefundene Länder-IDs: DE: 28, AT: 1, CH: 3
🔢 Insgesamt 32 Gruppen-IDs für Filter bereit.
🔄 Alle Channels: 1530/1530 (100.0%)
✅ Fertig mit allen Channels!
✅ Gespeichert: 1_channels_output.json (1530 Einträge)
✅ 1530 Channels in 1_channels.m3u
✅ Gespeichert: 1_DE_channels_output.json (1306 Einträge)
✅ 1306 Channels in 1_DE_channels.m3u
✅ Gespeichert: 1_AT_channels_output.json (66 Einträge)
✅ 66 Channels in 1_AT_channels.m3u
✅ Gespeichert: 1_CH_channels_output.json (158 Einträge)
✅ 158 Channels in 1_CH_channels.m3u

Update:
Filter verbessert:

Gruppen werden erstellt: X_groups.json

X_FILTER.json = alle Filter Möglichkeiten
X_FILTER_main.json = manuell Filter aus X_FILTER.json setzen / Bleibt die X_FILTER.json leer, wird der Filter aus Script gesetzt
--> FILTER_LAND = ["DE", "AT", "CH"]

Ausgabe:
X_groups.json = Übersicht aller Gruppen
X_channels.m3u = gesamte M3U aller im Filter gesetzten Streams
X_DE_channels.m3u = fertige M3U mit Filter DE

Letztes Update:
  • Fehlerbeseitigung Filter
  • Option --all hinzugefügt
  • Auswahl mehrere Portale scannen hinzugefügt
  • XXX Filter funktioniert nun
  • Erzeugung der JSON kann abgeschaltet werden
  • Filter verbessert
Portal Live M3U Generator - Dokumentation

Überblick:

Dieses Python-Skript dient zur automatischen Erstellung von M3U-Playlisten für IPTV-Portale. Es scannt Portale, extrahiert Kanäle und gruppiert sie nach verschiedenen Kriterien.

Hauptfunktionen:

1. Automatische Filter-Erkennung

  • Erkennt automatisch verfügbare Filter aus den Gruppentiteln
  • Unterstützt Ländercodes (DE, AT, CH, TR, NL, etc.), Kategorien und spezielle Gruppen (XXX)

2. M3U-Generierung

  • X_channels.m3u - gefilterte Kanäle gemäß eingestellten Filtern
  • X_channels_all.m3u - alle Kanäle des Portals (unabhängig von Filtern)
  • X_LAND_channels.m3u - Länder-spezifische Kanäle
  • X_CENSORED_channels.m3u - zensierte Kanäle (falls aktiviert)

Filter-System:

1. Automatische Filter-Generierung

  • X_FILTER.json - alle verfügbaren Filter aus dem Portal
  • X_FILTER_main.json - manuell ausgewählte Filter (Priorität 1)

2. Filter-Konventionen

Länder: DE, AT, CH, TR, NL, FR, UK, ES, PT, IT, PL, BE, GR, BG, RO, UA, RU, US, CA
Kategorien: KINO, SPORT, DOKU, KIDS, NEWS, HEVC, QHD, RAW, XXX
Spezielle Gruppen: ALLE, BEST, BOX, DAZN, DEL, MIX, VIP

Erstellt:

  • X_channels.m3u - gefilterte Kanäle
  • X_channels_all.m3u - alle Kanäle
  • Länder-M3Us (DE, AT, CH, etc.)
  • CENSORED-M3U (falls aktiviert)

Filter-Logik:

  • Priorität 1: X_FILTER_main.json (manuell gesetzt)
  • Priorität 2: FILTER_LAND aus Konfiguration
  • Priorität 3: Standardfilter ["DE", "AT", "CH"]

Leere Filterliste:

Wenn FILTER_LAND = [] gesetzt ist:

  • Es werden alle Kanäle des Portals geladen
  • Keine Filterung nach Ländern/Kategorien

JSON-Ausgabe:

Wenn JSON_OUTPUT = False:

  • Keine JSON-Dateien werden gespeichert
  • JSON-Ordner wird nicht erstellt
  • Speicherplatz sparen

Ausgabedateien:

  • X_groups.json - Gruppen-Struktur des Portals
  • X_channels.m3u - gefilterte Kanäle
  • X_channels_all.m3u - alle Kanäle des Portals
  • X_COUNTRY_channels.m3u - Länder-spezifische Kanäle
  • X_CENSORED_channels.m3u - zensierte Kanäle (falls aktiviert)
  • X_FILTER.json - verfügbare Filter
  • X_FILTER_main.json - aktive Filter

Das Skript ist vollständig konfigurierbar und ermöglicht flexible M3U-Generierung für verschiedene IPTV-Portale.


Download: https://www.digital-eliteboard.com/resources/m3u-loader-from-portal-url-mac.8507/


Kein weiterer Support
 
Zuletzt bearbeitet:
bezüglich der filter: xxx wird leider nicht erstellt.
ein DIR "./portal_data" zum abladen der erstellten dateien, wäre der übersichthalber, prima.
ansonsten nen schickes projekt und danke fürs mit-teilen!!!

besten gruß
 
bezüglich der filter: xxx wird leider nicht erstellt.
Meine neue Version, kann nun auch XXX extrahieren, die hatten sich hinter CENSORED versteckt. :LOL:

Ich habe aber festgestellt, dass die verschiedenen Portale, trotz vieler Gemeinsamkeiten doch unterschiedlich arbeiten. Bei den meisten Portalen funktionieren die M3Us nun nicht mehr.

Da ich aber selbst keine MACs scanne und nur mit "alten" zugespielten Zugängen teste, kann ich nicht überprüfen, ob es an den Portalen liegt, oder an abgelaufenen Rechten.

Ich werde noch ein paar Sachen verfeinern und dann die ZIP updaten.

Gruss

Update in Post 1

Letztes Update:
  • XXX Filter funktioniert nun
  • Erzeugung der JSON kann abgeschaltet werden
  • Filter verbessert

Viel Spass damit
 
Schön währe noch, wenn man über eine Auswahlmöglichkeit, einen Ausgabe-Ordner, einstellen könnte.
 
kannst du doch machen

output_dir_m3u = "m3u"

zu

output_dir_m3u = "/dein/Pfad/zum/Ordner"


sollte auf jedem System gehen

Deswegen definiere ich solche Sachen immer oben in meinen Scripten.
 
Zurück
Oben