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

M3U-EPG-Mapper Tool für macOS und Windows

Registriert
11. Oktober 2009
Beiträge
7.934
Lösungen
3
Reaktionspunkte
9.713
Punkte
2.730
Ort
Berlin
Das häufigste Problem ist oft, ein vernünftiges EPG zu bekommen, bzw. dann mit seiner M3U zu verknüpfen. Je nach Player kann man dies manuell zuweisen. Aber ändert sich die M3U vängt man oft wieder von vorne an.

Ich habe hier nun ein Tool entwickelt, der eure M3U mit den tvg-id und tvg-name eurer EPG Quelle abgleicht. Dies geschieht natürlich nicht vollautomatisch, aber über etliche fuzzy Regeln habe ich das ganz gut hinbekommen.

Eigentlich ist alles selbsterklärend.
  • M3U und EPG Quelle können lokal oder als URL eingegeben werden
  • es können mehrere EPG Quellen gespeichert werden (Das Tool fügt keine EPG Quellen zusammen)
  • Ausgabe einer neuen M3U (die Quell-M3U bleibt original)
  • Ausgabe einer Mapping.JSON (für andere Anwendungen, z.b. mein Event/M3U Player)
  • manuell "unstimmige" Zuordnungen bearbeiten
  • zum Schluss "Alle xxx offenen bestätigen"
  • M3U mit EPG-IDs speichern

Features​

  • Fuzzy-Matching– intelligente Zuordnung von M3U-Kanalnamen zu EPG-IDs
    • HTML-Entities dekodieren (& → &)
    • Unicode-Superscript normalisieren (ᶠʰᵈ → fhd)
    • Klammern/Tags ignorieren ([Magenta_DE], (TR), | DE |)
    • Alias-Gruppen für Sender-Varianten (Pro 7 ↔ ProSieben, RTL 2 ↔ RTL II)
    • Sender-Kürzel-Penalty verhindert Verwechslungen (MDR ≠ WDR)
  • Vorschau-Picker mit ◀ ▶ Buttons und Dropdown aller Matches
  • Manuelle Suche (🔍) wenn Fuzzy nicht passt
  • Auto-Map – alle Kanäle mit ≥ 70 % Confidence automatisch zuordnen
  • Alle bestätigen – offene Kanäle der aktuellen Ansicht auf einmal bestätigen
  • Filter – Alle / Offen / Gemappt / Übersprungen
  • M3U-Suche – Kanalnamen filtern
  • URL-Support – M3U und EPG direkt per URL laden (HTTP/HTTPS, Basic Auth, gzip, xz)
  • Gespeicherte URLs – EPG- und M3U-URLs werden automatisch im Verlauf gespeichert
  • Virtuelles Scrollen – auch 2000+ Kanäle laufen flüssig
  • Export:
    • epg-mapping.json – flaches Mapping { "Kanalname": "epg-id" }
    • {name}_epg-mapping.json – erweitertes Mapping mit display_name (für Skripte)
    • {name}_epg.m3u – M3U mit aktualisierten tvg-id und tvg-name Tags

Sie müssen registriert sein, um angehängte Bilder zu sehen


Sie müssen registriert sein, um angehängte Bilder zu sehen


Sie müssen registriert sein, um angehängte Bilder zu sehen

EPG (EasyEPG lite) - Das Erste HD:
Code:
<channel id="tkmd2_259549736360">
    <display-name lang="en">Das Erste</display-name>
    <icon src="https://ngiss.t-online.de/iss?client=ftp22&amp;out=webp&amp;x=180&amp;y=72&amp;ar=keep&amp;src=https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/das-erste/stationLogo_20241119.png" />
</channel>

meine M3U vorher:
Code:
#EXTINF:-1 tvg-id="daserste" group-title="MagentaTV" tvg-name="Das Erste HD" tvg-logo="http://ngiss.t-online.de/cm1s/media/7296be216971cbb439b5b3df7d861d2a074c6d72.png" ,Das Erste HD

meien M3U hinterher:
Code:
#EXTINF:-1 tvg-id="tkmd2_259549736360" group-title="MagentaTV" tvg-name="Das Erste" tvg-logo="http://ngiss.t-online.de/cm1s/media/7296be216971cbb439b5b3df7d861d2a074c6d72.png" ,Das Erste HD

Für andere Anwendungen, kann man auch die JSON als Mapping nutzen. Das muss man dann eben so in der anderen Anwendung einbauen.

Auszug aus der JSON:
Code:
  "mapping": {
    "Das Erste HD": {
      "id": "tkmd2_259549736360",
      "display_name": "Das Erste"
    },

Ich hoffe, das ist jetzt für jeden verständlich und nachvollziehbar.

Anhang:
  • M3U-EPG-Mapper-1.0.4-portable.exe.zip (Windows)
  • macOS auf Anfrage
Update:
  • Zusätzliche Sortier-Funktionen
  • Fuzzy verbessert

Download: https://www.digital-eliteboard.com/resources/m3u-epg-mapper-tool-fuer-macos-und-windows.8705/

Probiert es aus und gebt gerne Rückmeldung.
 

Anhänge

Sie müssen registriert sein, um die Liste der Anhänge zu sehen
Zuletzt bearbeitet:
Dankeschön für das Tool.
Grundsätzlich funktioniert es schon mal gut und ist mir doch ein tolle Hilfe 👏🏼

Handarbeit ist natürlich noch nötig, bleibt aber auch nicht aus.

Eine Anregung von mir wäre es noch, dass man den Wert für Auto-Mapping selbst einstellen könnte, weil bei Treffern zwischen 70 und 80% hatte ich teilweise schon noch großen Quatsch 🤣 alles über 80 sah zum hingegen vielversprechend aus
 
Ja gerade bei sehr großen M3U Listen bleibt einiges an Handarbeit nicht aus. Aber ich habe schon ein paar neue Auswahlmöglichkeiten in der nächsten Version.

An fuzzy werde ich auch noch etwas schrauben. Ich werde mal schauen, ob ich das Tool dazu bringen kann, "lernfähig" zu werden.

Derzeit habe ich schon ein paar neue Sortier- und Auswahl Möglichkeiten eingebaut, die die Arbeit an langen Listen deutlich vereinfacht.

An die Wahlmöglichkeit der % habe ich auch schon gedacht.

Es kommt also noch was nach. ;)
 
Ich werde es auf jeden Fall erneut testen 😅 hab noch einige m3u Leichen im Keller, die auf eine ordentliche Pflege warten

Edit:
Eine direkt integrierte m3u Erstellung basierend auf Portal-URL und MAC Adresse mit dem Mapping aus der XML Datei wäre dann Endstufe
 
Zuletzt bearbeitet:
Wie wird die EPG-tvg-id für die Sender korrekt vergeben …. über den Sendernamen (z. B. ‚Sat.1‘) oder über die Channel-ID (z. B. ‚39‘)?


#EXTINF:-1 tvg-id="39" group-title="Deutschland" tvg-logo="sat.1.logo.url", SAT.1
 
Ich nehme an der Sendername wird mit dem display name der xml verglichen, in deinem Fall SAT.1 oder wenn von der m3u vorhanden der tvg-name
 
Der Mapper liest die Info aus der EPG XML
z.B.
Code:
  <channel id="Sat1.de">
    <display-name lang="de">Sat.1</display-name>
  </channel>

und aus:
Code:
#EXTINF:-1  group-title="DE"  tvg-logo="" ,SAT 1 HD
daraus wird dann:
Code:
#EXTINF:-1 tvg-id="Sat1.de" group-title="DE" tvg-name="SAT.1" tvg-logo="" ,SAT 1 HD
 
Wenn ich das so konvertiere , funktionieren einige Sender nicht mit EPG .. mit Id 39 funktionieren alle .. woran kann das liegen?
Habe eine eigene EPG Quelle..
 
Mit welchem Player?

Kann der Player zwischen tvg-id oder tvg-name umschalten?

Gib mal ein Beispiel aus der ursprünglichen M3U, einem Channel Eintrag aus der XML und der neuen M3U.

Update in den Ressourcen:
  • Zusätzliche Sortier-Funktionen
  • Fuzzy verbessert
 
Zuletzt bearbeitet:
Hab's mal probiert, funktioniert gut. So richtig schön Klickibunti ;)
Gute Arbeit @Smiley007
Das Problem bei @iceman75 liegt wohl woanders.
Macht (mit der richtigen xml) z. B. vorher: aus tvg-id="Sat1.de" eine tvg-id="39" so wie in der xml Quelle angegeben.
 
Habe eine eigene EPG Quelle..
Leider hast du die nachgefragten Infos nicht bereit gestellt.


EPG (EasyEPG lite) - Das Erste HD:
Code:
<channel id="tkmd2_259549736360">
    <display-name lang="en">Das Erste</display-name>
    <icon src="https://ngiss.t-online.de/iss?client=ftp22&amp;out=webp&amp;x=180&amp;y=72&amp;ar=keep&amp;src=https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/das-erste/stationLogo_20241119.png" />
</channel>

meine M3U vorher:
Code:
#EXTINF:-1 tvg-id="daserste" group-title="MagentaTV" tvg-name="Das Erste HD" tvg-logo="http://ngiss.t-online.de/cm1s/media/7296be216971cbb439b5b3df7d861d2a074c6d72.png" ,Das Erste HD

meien M3U hinterher:
Code:
#EXTINF:-1 tvg-id="tkmd2_259549736360" group-title="MagentaTV" tvg-name="Das Erste" tvg-logo="http://ngiss.t-online.de/cm1s/media/7296be216971cbb439b5b3df7d861d2a074c6d72.png" ,Das Erste HD

Für andere Anwendungen, kann man auch die JSON als Mapping nutzen. Das muss man dann eben so in der anderen Anwendung einbauen.

Auszug aus der JSON:
Code:
  "mapping": {
    "Das Erste HD": {
      "id": "tkmd2_259549736360",
      "display_name": "Das Erste"
    },

Ich hoffe, das ist jetzt für jeden verständlich und nachvollziehbar.
 
Zuletzt bearbeitet:
Zurück
Oben
📱
Forum App auf dein Handy
Schneller. Push-Benachrichtigungen. Offline-fähig.
Öffnen