Magenta TV addon

  • Da mir ja sowas keine Ruhe läßt, habe ich mal weiter herumgebastelt und habe für mich eine Lösung gefunden, was den Magenta M3U Creator angeht.
    Ich habe die Abfrageschleife unter 8.2 auf 8 Durchläufe erhöht. Voher war da nur eine 3 eingetragen.

    Code
    x = x + 1
            if x > 8:
                raise Exception("Error: Authentication failure")

    Mit dieser Änderung bekomme ich wieder eine aktuelle Senderliste! *freu*


    hat noch jemand das Problem, das die Streams von Nitro, Super RTL, Tele5, n-TV, WELT nur in SD wiedergeben werden können?
    Alle anderen Privaten werden in 1080P und die ÖR in 720P wiedergeben.

    Ja, das kann ich bestätigen. Man müsste nun im Code eine Art Abfrage einbauen, die auf HD Sender prüft und dann entsprechend den Link benutzt.

    Code
    for i in req.json()["channelDynamicList"]:
            for p in i["physicalChannels"]:
                if ".mpd?" in p.get("playurl", ""):
                    ch_list[i["contentId"]]["playurl"] = p["playurl"]

    Wenn ich das richtig erkenne, wird in Zeile 154 auf eine Datei mit endung.mpd geprüft. Ist das true, wird die URL als Parameter playurl gespeichert. Kann mal jemand nachschauen, ob man anhand des Dateinamens in dem .mdp? vorkommt den HD Stream erkennen kann?


  • Wer kann helfen?
    Ich möchte in dieser Zeile eine Abfrage mit einbauen die den Parameter "externalCode:" auf "-HD-" abfragt:

    Code
    for i in req.json()["channelDynamicList"]:
            for p in i["physicalChannels"]:
                if ".mpd?" in p.get("playurl", ""):
                    ch_list[i["contentId"]]["playurl"] = p["playurl"]

    So wie ich das jetzt verstehe, muss ich dazu die Zeile 154 erweitern. Ein Versuch war:

    Code
    if ".mpd?" and "HD" in p.get("playurl", ""):

    Das bringt mir als Ergebnis aber nur 6 Sender.
    Also müsste das Ganze ungefähr so aussehen:

    Code
    if ".mpd?" and ["externalCode"] = "-HD-" in p.get("playurl", ""):

    Aber das geht so auch nicht. Dann kommt ein Fehler!
    Weiß einer wie es von der Syntax her richtig wäre?

  • Kannst du gerne hiermit mal probieren.

  • Schade, irgendwie geht es so auch nicht!
    Wenn ich das so übernehme dann meckert er rum wegen "ch_list[i["contentId"]]["playurl"] = q["SD"]".
    Lasse ich beide else Anweisungen weg, läuft das Script durch, gibt aber leider eine leere M3U-Liste aus.

    Meine Ideen sind hiermit ausgeschöpft. Vielleicht hat sonst noch jemand eine Idee, wie man die HD-Streams ausfiltern kann?

  • Ich lasse noch nicht locker!
    Neuer Ansatz:
    Wahrscheinlich muss die StreamUrl schon früher aussortiert werden im Code:


    So sieht die Dateistruktur aus:

    Und bei DMAX gibt es 4 Einträge:

    Da ja die 1 genommen wird für die StreamUrl, deshalb ist DMAX nur in SD Qualität verfügbar.
    Der Code müsste nun so angepasst werden, das er auf HD Stream prüft (bei DMAX und anderen Sendern die 2).

  • Wenn ich das so übernehme dann meckert er rum wegen [...]

    Warum nennst du nicht die genauen Fehlermeldungen? So kann ich auch nur spekulieren.

    Falls du mir die Datei zukommen lassen kannst, passe ich ggf. den Code nochmal an.

  • Nach meinen gewonnen Erkenntnissen ist es nun so, das generell die Playurl aus der Ebene 1 genommen wird.
    Bei manchen Sender gibt es aber die 4 Ebenen (0 bis 3), Um nun die richtige Playurl zu übernehmen, benötigt man eine Abfrage die prüft, ob es Ebene 2 gibt. Falls ja (true) müsste von dort die playurl übernommen werden.
    Ist ebene 2 nicht verfügbar, dann müsste die playurl aus Ebene 1 übernommen werden.

    Die genaue Fehlermeldung kann ich gerne hier posten:
    Log-Datei

    Und hier die connect.py, die alle Anpassungen die im Forum erwähnt wurden, enthält. connect.py.txt

  • Da ja dort die PlayURLs drin sind, und andere die nutzen könnten, habe ich Dir die JSON-Dateinen auf MEGA hochgeladen und Dir eine Email gesendet. :)

    Zur Ergäzung: Unter Nummer 46 findet man DMAX und dort die 4 PlayUrls. Dabei enstricht Nr.2 "dmax_DASH_OTT-HD-TWO_D" dem HD-Stream.

    Für Alle die es nicht erwarten können, gibt es folgenden Workaround:

    Code
    Laßt über den Creator eine Magenta.m3u Liste erstellen.
    Nun öffnet im Browser die Entwicklerkosole über F12. Die Bedienung der Kosole sollte hier Vorraussetzuing sein!
    Nun geht auf web.magentatv.de und loggt Euch ein.
    Auf der Entwicklerkosole könnt Ihr nun im Bereich Netzwerk den Filter "channel" eingeben.
    Wählt nun die Datei "https://api.prod.sngtv.magentatv.de/EPG/JSON/AllChannelDynamic" aus und schaltet auf Vorschau.
    Dort klickt Ihr nun die einzelnen Punkte auf: channelDynamicList, 0 ... 99, 46 (Stream von DMAX), physicalChannels, 2
    Nun findet Ihr unter "playUrl" die Netzwerkadresse zum HD-Stream von DMAX.
    Kopiert nun die komplette https... Adresse und ersetzt diese in der Magenta.m3u Liste unter DMAX. Und schon erscheint DMAX statt in SD in HD :-)
    Vergesst nun nicht, das Addon MagentaTV M3U Creator in Kodi zu de-aktivieren. Sonst wird Euch beim nächsten Neustart von Kodi die Magenta.m3u wieder überschrieben!
  • Mir ist noch was aufgefallen:
    Unter DMAX ist es die PlayUrl unter 2, die den HD Stream liefert.
    Unter Pro7 MAX ist es allerdings die 3 unter der der HD-Stream geliefert wird.

    Das Ganze wird dann wohl doch recht kompliziert, da man mit der AllChannel die HD-Streams ermitteln müsste und unter AllChannelDynamic die entsprechenden PlayUrls...

  • Wenn das alles läuft, gibt es dann ein Update in Kodi oder muss man selbst Hand anlegen?

    Und natürlich auch von mir ein Recht herzliches Dankeschön...

    Das Licht, das doppelt so hell brennt, brennt eben nur halb so lang.
    greetz, FoLeY ...

  • Das M3U Creator Script funktioniert hier unter Kodinerds Matrix 19.4 --->19.5 für Nvidia Shield TV Pro 2019 ( Android 11 ) ohne Probleme...auch beim PC mit Windows 10 Pro und Kodi Matrix 19.4 --->19.5 gibt es keine Probleme ...wie schaut es aber bei Euch unter Kodi (nerds) Nexus 20 Beta 1 aus?

    Das Glück deines Lebens hängt ab von der Beschaffenheit deiner Gedanken.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!