- Registriert
- 11. Oktober 2009
- Beiträge
- 7.389
- Lösungen
- 3
- Reaktionspunkte
- 9.227
- 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.
Inhalt: DEB.zip
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:
Download: https://www.digital-eliteboard.com/resources/m3u-loader-from-portal-url-mac.8507/
Kein weiterer Support
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:
- pip install requests tqdm
Formate in portal.txt
• 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
- 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
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
Download: https://www.digital-eliteboard.com/resources/m3u-loader-from-portal-url-mac.8507/
Kein weiterer Support
Zuletzt bearbeitet:

