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 2025-11-14

Registriert
11. Oktober 2009
Beiträge
7.389
Lösungen
3
Reaktionspunkte
9.228
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

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


Kein weiterer Support
 
Zuletzt bearbeitet:
Letztes Update:
  • Fehlerbeseitigung Filter
  • Option --all hinzugefügt
  • Auswahl mehrere Portale scannen hinzugefügt
 
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ß
 
Zurück
Oben