[RELEASE] Kodi-Addon-ARDundZDF

  • Anbei Ausschnitte aus dem tcpdump-log (uploadsnippets.txt).

    danke für den Aufwand mit dem tcp-log. Ist schon merkwürdig, dass sogar die hbbtv-Anfragen (https://www.kodinerds.net/ hbbtv.zdf.de) durchgehen, Videostreams dagegen nicht.
    Die Liste der angefragten Adressen ist aus meiner Sicht völlig OK.
    Was man noch zum Abgleich ausprobieren könnte (ohne tcpdump):
    - für Livestream-Tests: inputstream.adaptive-Addon installieren + in ARDundZDF freischalten. Ich kenne zwar nicht die Server-/client-Kommunikation bei der Initialisierung der Verbindung, aber insgesamt kommt inputstream.adaptive besser mit dem Streaming zurecht
    - für Videotest: umschalten auf Einzelauflösungen statt Sofortstart (im Kontextmenü) und eine der mp4-Links starten. Beim ct-uplink-Addon ist mir aufgefallen, dass nur mp4-Videos verwendet werden.

    Edit: das hätte ich beinahe vergessen: hat sich denn nach Umstellung auf requests überhaupt etwas verbessert?
    /R

  • die Folgebeiträge bei der Rubrik "phoenix Dokumentationen" werden nicht angezeigt.

    phoenix: Mehr-Seiten werden nicht angezeigt (Error HTTP 400) - Einzelupdate ARDnew.py
    Ursache war ein Doppelpunkt im Link zu den weiterführenden Seiten. Das Modul phoenix nutzt in diesem Menü das Modul ARDnew.py - daher dort das Einzelupdate.
    /R

  • Edit: das hätte ich beinahe vergessen: hat sich denn nach Umstellung auf requests überhaupt etwas verbessert?
    /R

    Eigentlich nicht.

    Die unteren Menüebenen konnte ich auch vorher schon aufrufen und der Fehler taucht auch nach der Umstellung direkt beim Aufruf der Filme auf. Ich glaube auch nicht mehr das die Auswahl der requests-Bibliothek einen Unterschied macht. Meine Vermutung ist vielmehr die, das die Mediatheken von ARD und ZDF beim Filmaufruf einen http-redirect durchführen, um auf die jeweiligen Filmserver zu verweisen. Diese redirects (neue DNS-Abfrage) werden dann nicht korrekt von der python- proxy Bibliothek verarbeitet, vgl. z.B. https://proxiesapi.com/articles/the-r…python-requests

    Zitat

    Was man noch zum Abgleich ausprobieren könnte (ohne tcpdump):
    - für Livestream-Tests: inputstream.adaptive-Addon installieren + in ARDundZDF freischalten. Ich kenne zwar nicht die Server-/client-Kommunikation bei der Initialisierung der Verbindung, aber insgesamt kommt inputstream.adaptive besser mit dem Streaming zurecht
    - für Videotest: umschalten auf Einzelauflösungen statt Sofortstart (im Kontextmenü) und eine der mp4-Links starten. Beim ct-uplink-Addon ist mir aufgefallen, dass nur mp4-Videos verwendet werden.

    Jetzt zum Positiven!

    Das inputstream.adaptive-Addon war noch nicht installiert, die Freischaltung war bereits aktiviert. Videoformat bei Sofortstart ist "HLS", qualität ist "auto". Beides habe ich so belassen.

    Ergebnis:

    Im tcpdump-log sieht man, das nach den Stellen (DNS-Query : A mcdn.br.de CNAME br-stream.trafficmanager.net CNAME mcdn-br.akamaized.net CNAME a1897.dscw4.akamai.net A 23.2.13.200 A 23.2.13.202) kein direkter IP-Aufruf mehr am Proxy vorbei versucht wird, sondern die Kommunikation (Abspielen des Films) weiter über den Proxy läuft.

    Ich habe in den Tests unter allen von mir gewählten Menüpunkten einen Film abspielen können!

    Um verifizieren zu können, dass es keine Abhängigkeiten von der python-proxy-Methode gibt habe ich deine "normale" 5.0.8er Repo-Version auch unter einem aktuellen "osmc" ausprobiert. Hier sind ja noch deine "alten" Proxy-Bibliotheks-Aufrufe aktiv. Gut, "osmc" hat eine kodi Version 20.5 glaube ich und ein bereits integriertes inputstream.adaptive-Addon.

    Aber auch hier konnte ich mit den gleichen EInstellungen keine Proxy Probleme feststellen! Alle Test liefen durch.

    Bei der Auswahl eines ZDF-Films habe ich nochmal eine Fehlermeldung bekommen, die aber wohl nichts mit der Proxykonfiguration zu tun hat. Hier der entsprechende Auszug aus dem kodi.log von osmc:

    Den Aufruf könnte man zum Vergleich noch mal unter Libreelec durchführen.

    Mein vorläufiges Fazit:

    Egal welche Proxy Bibliothek verwendet wird, bei der Form der ARD-ZDF-redirects gibt es die gleichen Probleme, die offensichtlich vom inputstream.adaptive-Addon korrekt verarbeitet werden.

    Mich würde mal interessieren, was das inputstream.adaptive-Addon in der Funktionsweise anders macht.

  • Meine Vermutung ist vielmehr die, das die Mediatheken von ARD und ZDF beim Filmaufruf einen http-redirect durchführen, um auf die jeweiligen Filmserver zu verweisen.

    So ist es. Mir fielen gestern die Redirects bei Radiostreams auf. In der Funktion url_check blieb requests.get hängen. Hier prüfte bisher das Addon nur die Erreichbarkeit des Servers. Die Auflösung konnte man ja dem Kodi-Player überlassen. Dass dabei Probleme mit einem Proxy autreten könnten, war für mich eine Überraschung. Für das kommende Update stelle ich hier um und liefere beim Check die neue URL zurück. Dann sollte das Addon mit dem Proxy auch ohne inputstream.adaptive-Addon zurechtkommen können. Edit: jedenfalls bei den MP4-Streams + abgeschalteten Untertitel. Bei HLS könnte Kodi für die Substreams (Auflösungen, Untertitel) erneute DNS-Anfragen schicken.
    An dieser Stelle wären mir auch die Ideen ausgegangen. Es ist zwar möglich über xbmc.executeJSONRPC-Calls die Kodi-Settings einschl. der Proxy-Settings im Addon auszulesen (Definitionen der Settings-ID''s in den xbmc-Quellen). Soweit ich weiß, gibt es jedoch keine Möglichkeit, diese an den Kodi-Player weiterzugeben.

    Jetzt zum Positiven!

    ich mache es kurz: Glückwunsch - das war doch (für uns beide) eine ziemlich harte Nuss. Für mich hat es auch etwas gebracht: ich scheue zwar zusätzliche Abhängigkeiten im Addon, verwende aber künftig trotzdem das requests-Addon. Es macht vieles leichter und offensichtlich ist es über die Jahre stabil geblieben.

    Zum Problem mit dem ZDF-Film: im Logauszug ist keine Ursache erkennbar, warum der Stream vom Player nicht verarbeitet werden kann.

    Mich würde mal interessieren, was das inputstream.adaptive-Addon in der Funktionsweise anders macht.

    Ev. hilft bereits der Debug-Modus von Kodi (Kodi-Menü oder Tastatur: Strg/Umschalt/Taste d). Der Debug-Level lässt sich in einer advancedsettings.xml anpassen.
    /R

  • Zitat

    Dann sollte das Addon mit dem Proxy auch ohne inputstream.adaptive-Addon zurechtkommen können

    Das probiere ich dann gerne aus.

    Zitat

    ich mache es kurz: Glückwunsch - das war doch (für uns beide) eine ziemlich harte Nuss. Für mich hat es auch etwas gebracht

    Ich habe dabei ebenfalls viel über Libreelec, kodi und osmc gelernt. An dieser Stelle nochmals vielen Dank für deinen Support!

    Aber es gibt wohl noch weitere Problemstellen.

    Den Fehler beim ZDF-Film habe ich auch unter Librelec bekommen, sowohl mit der Testversion, als auch jetzt mit der aktuellen Version aus dem Repo. Bei fast allen Filmen die ich in der Rubrik "Unsere Spielfilm Hightlights" ausgewählt habe, gibt es Fehlermeldungen beim abspielen.

    Die folgenden Logs und Aussagen beziehen sich auf:

    - libreelec 12.0

    - ardzdf 5.0.8 aus Repo mit aktualisiertem Einzelupdate vom 01.08.24

    - aktualisiertem inputstream.adaptive-Addon Version 21.5.0.1

    kodi.log mit debug=on zeigt:

    Zeitgleich zeigen die FW-Logs wieder geblockte Zugriffe auf : 23.2.13.218:443.

  • - aktualisiertem inputstream.adaptive-Addon Version 21.5.0.1

    Zum Thema InputStream Adaptive Version 21.5.0 oder 21.5.0.1 ...kannste auch mal hier reinschauen.

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

  • Zeitgleich zeigen die FW-Logs wieder geblockte Zugriffe auf : 23.2.13.218:443.

    auch wieder akamei, ev. betrifft es die Substreams. Wie sieht es mit MP4 aus (Kontextmenü: Sofortstart AUS)?
    /R

  • Zum Thema InputStream Adaptive Version 21.5.0 oder 21.5.0.1 ...kannste auch mal hier reinschauen.

    da scheint mir vorwiegend Android betroffen..
    /R

  • auch wieder akamei, ev. betrifft es die Substreams. Wie sieht es mit MP4 aus (Kontextmenü: Sofortstart AUS)?

    Anbei nochmal ein tcpdump-logfile. Aufgerufen wird: ZDF-Mediathek-Startseite-Filme-"Unsere Spielfilm Highlights"-Kaengeruh-Film.

    Erster Abschnitt mit "Sofortstart EIn" zeigt wieder das bekannte Verhalten, direkter IP-Zugriffsversuch nach dem Serverwechsel von "zdfvod.akamaized.net" zu "a1948.dscw4.akamai.net" mit DNS Abfrage.

    Zweiter Abschnitt nach Umschaltung per Kontextmenü auf "Sofortstart aus". In den Zeilen 1891-1893 und 1930-1932 sieht man, dass die http-connects ohne neue DNS-Anfrage korrekt über den Proxy laufen.

    Ausgewählt habe ich eine niedrige Auflösung einer mp4 Datei, die auch abgespielt wurde.


    Ich hatte vorher noch vergeblich versucht die vorherige Version des inputstream.adaptive-Addon zu installieren. Geht das überhaupt, das man eine ältere Version instaliieren kann? Bei meinen Versuchen wurde weiterhin die aktuelle Versionsnr angezeigt, obwohl gleichzeitig eine Aktualisierung angeboten wurde. Habe dann mit aktuellen Version getestet.

  • Ausgewählt habe ich eine niedrige Auflösung einer mp4 Datei, die auch abgespielt wurde.

    Das und auch das Ergebnis bei den Einzelauflösungen passt zu meiner Vermutung, dass Kodi beim Zugriff auf die HLS-Substreams am Proxy scheitert. Bei "Sofortstart aus" ermittelt das Addon die Streamadressen der einzelnen Auflösungen und übergibt nur die ausgewählte Adresse an Kodi. Beim MP4-Format entfallen Substreams - dort wird nur die Adresse des MP4-Streams übergeben, womit Kodi direkt den Player füttern kann.
    Das inputstream.adaptive-Addon verwendet - wie von dir festgestellt - bei den HLS-Substreams offenbar eine andere Methode des Zugriffs als Kodi selbst und schafft es am Proxy vorbei.

    Geht das überhaupt, das man eine ältere Version instaliieren kann?

    Das weiß ich leider nicht. Auf dem PC verwende ich eine vorkompilierte Binärversion, die über den Paketmanager installiert wird. Auf dem Raspi nutze ich nach einem Wechsel auch eine höhere LibreElec-Version die dann angebotenen Updates, wozu bisher auch inputstream.adaptive gehört.
    Auf Github sind zwar aktuelle und ältere Releases verfügbar, aber alle als Quelldateien, die mittels cmake für das jeweilige OS kompiliert werden müssen. Ev. hilft eine Recherche nach älteren Versionen von inputstream.adaptive für LibreElec.
    /R

  • Ich hätte da einen feature request: Einbinden der ARD plus Mediathek.

    ich muss leider enttäuschen - die Einbindung privater Mediatheken verstößt gegen meine eigenen Vorgaben (s. Startpost, Abschnitt Integration ..). Dazu zähle ich auch kommerzielle Ableger der Öffentlich-Rechtlichen. Abgesehen davon könnte ich den Aufwand ohnehin nicht leisten - ich bin ausgelastet. Vielleicht findet sich ein anderer Entwickler?
    /R

  • Das und auch das Ergebnis bei den Einzelauflösungen passt zu meiner Vermutung, dass Kodi beim Zugriff auf die HLS-Substreams am Proxy scheitert. Bei "Sofortstart aus" ermittelt das Addon die Streamadressen der einzelnen Auflösungen und übergibt nur die ausgewählte Adresse an Kodi. Beim MP4-Format entfallen Substreams - dort wird nur die Adresse des MP4-Streams übergeben, womit Kodi direkt den Player füttern kann.

    Das passt zu den weiteren Tests, die ich mit "Sofortstart-Aus" mal tabellarisch zusammengefasst habe.

    SenderSofortstartFormatinputstream offinputstream on
    ArteLiveAusHLS-ok
    ARD LivestreamAus?-ok
    ZDF Jetzt-LiveAusHLS-auto-ok
    ZDF Spielfilm Highlights
    - Men in Black bzw. Kängeru oder ...AusHLS-auto--
    Hbbtv – mp4okok
    Mp4 – mp4okok

    Zeit für mich mal zusammenzufassen, was ich bisher verstanden habe.


    1. Die Proxy Konfiguration im Kodi-Menü gilt zunächst mal nur für Kodi selbst.

    2. Addons können verschiedene python-libraries nutzen, ohne diese Proxy Konfiguration beachten zu müssen.
      Die Auswahl der Library spielt bei korrekter Benutzung keine entscheidene Rolle bezüglich des Problems.
      Grundsätzlich funktioniert damit ein url-Aufruf über ein in Kodi definierten http-Proxy.

    3. Es gibt aber bestimmte Situationen, bei denen die Proxy Konfiguration nicht korrekt verarbeitet wird.
      Diese könnten durch http-redirects verursacht sein, sollten aber eigentlich auch durch Kodi korrekt verarbeitet werden können.
      vgl. https://proxiesapi.com/articles/the-r…python-requests

    4. Viele dieser "Problem-Aufrufe" lassen sich dennoch durch Aktivierung des "inputstream.adaptive Addons" erfolgreich durchführen, bei sonst identischer Konfiguration.
      Konkret auch mit: "Sofortstart-Ein HLS-auto". Die Unterschiede in der Verarbeitung sind uns im einzelnen nicht bekannt.

    5. Aber auch mit aktivem "inputstream.adaptive Addon" gibt es spez. in der ZDF-Mediathek noch einige Aufrufe z.B. in der Rubrik "Unsere Spielfim Highlights", die mit der Einstellung "Sofortstart-Ein HLS-auto" eine direkte Kommunikation am Proxy vorbei initiieren und damit scheitern.
      In diesen Fällen kann aber nach Umschaltung auf "Sofortstart-Aus" und Einzelauflösung noch eine mp4-Datei (wenn angeboten) abgespielt werden.

    6. Bei allen funktionierenden Aufrufen unter Punkt 4 gibt es offensichtlich Unterschiede zu denen unter Punkt 5. Hier liegt wahrscheinlich der entscheidende Knackpunkt. Die genaue Ursache ist nicht erkennbar.


    Bisheriges Fazit:

    • Ist das "inputstream.adaptive Addon" deaktiviert und "Sofortstart-Ein", gibt es ein generelles Abspielproblem, da die Proxyfunktion mit dem HLS-auto nicht richtig funktioniert.
    • Ist das "inputstream.adaptive Addon" aktiviert und "Sofortstart-Ein", funktionieren die meisten Filme korrekt, nur einige Filme aus der ZDF-Mediathek machen noch Probleme.
      Diese lassen sich aber durch "Sofortstart-Aus" beheben, sofern eine mp4-Datei angeboten wird.
    • Gleichgültig ob das "inputstream.adaptive Addon" aktiviert ist oder nicht, kann man mit "Sofortstart-Aus" den Film abspielen, oder auch einen Download durchführen, sofern eine mp4-Datei angeboten wird.

    3 Mal editiert, zuletzt von forrester (3. August 2024 um 18:02) aus folgendem Grund: Edit: Übernahme der Korrekturvorschläge von rols1 und Ergänzung des Fazits nach Durchführung der Downloadtests

  • Zeit für mich mal zusammenzufassen, was ich bisher verstanden habe.

    Sehr gute Zusammenfassung und ich stimme im Ergebnis in allen Punkten zu. Bei Punkt 2 würde ich den ersten Satz nur so umformulieren:
    Addons können verschiedene python-libraries nutzen, ohne diese Proxy Konfiguration beachten zu müssen.
    Bei Punkt 3 würde ich "durch python korrekt verarbeitet" ersetzen durch "durch Kodi korrekt verarbeitet" (Grund: Kodi nutzt C++-Quellen).

    Dein Fazit ergänze ich für mich noch mit dem Ausblick:
    Wir werden uns wohl damit abfinden müssen, dass das Addon mit der Proxy Konfiguration nicht uneingeschränkt genutzt werden kann.
    Auch wenn die Unterschiede zwischen Kodi selbst und dem inputstream.adaptive-Addon beim Client-/Server-Handling herausgefunden werden, können diese nicht für das Addon genutzt werden. Letztlich übergibt das Addon die ermittelt Video- oder Livestream-Url an Kodi (optional an das inputstream.adaptive-Addon). Anschließend ist es von der weiteren Client-/Server-Kommunikation abgeschnitten bzw. muss sich nicht darum kümmern - je nach Sichtweise.


    Noch kurz zur geplanten Umstellung die requests-Bibliothek:
    die muss ich leider zunächst zurückstellen. Damit sie auch dort genutzt werden kann, wo requests nicht zur Verfügung steht (wir hatte ja LibreElec als Beispiel), muss im Addon die Abhängigkeit zum requests-Addon festgelegt werden. Was bei den Testinstallationen gut für LibreElec und Kodi Leia gut klappte, bei meiner PC-Konfiguration mit Kodi Matrix funktioniert es erst nach Neuinstallation von Kodi und Deinstallation der Kodi-Datenbak Addons33.db. Das möchte ich keinem Nutzer zumuten und bleibe erstmal bei den Varianten urllib und urllib2. Die wichtigen Redirects werden beim Url-Check ergänzt, wie bereits erwähnt - in der Funktion get_page() sind sie ohnehin seit 2021 vorhanden.

    Mir fallen jetzt noch die Downloads ein: die nutzen urllib.urlretrieve für Python2 + 3, sollten nach unseren bisherigen Ergebnissen auch funktionieren.
    /R

  • Bei Punkt 2 würde ich den ersten Satz nur so umformulieren:
    Addons können verschiedene python-libraries nutzen, ohne diese Proxy Konfiguration beachten zu müssen.
    Bei Punkt 3 würde ich "durch python korrekt verarbeitet" ersetzen durch "durch Kodi korrekt verarbeitet" (Grund: Kodi nutzt C++-Quellen).

    Mir fallen jetzt noch die Downloads ein: die nutzen urllib.urlretrieve für Python2 + 3, sollten nach unseren bisherigen Ergebnissen auch funktionieren.
    /R

    Deine Korrekturvorschläge habe ich gerne übernommen.

    Ich habe unterschiedliche Downloads ausprobiert, wie du erwartet hast, haben sie ohne Probleme funktioniert, sowohl mit inputstream.adaptive-Addon als auch ohne.

  • Danke forrester ,
    ich füge im Wiki zum Setting "inputstream.adaptiv nutzen" einen Hinweis auf Proxynutzung ein und verlinke zu deiner Zusammenfassung.
    /R

  • Update V5.0.9

    Aktuelle Fixes betrafen die ZDF-Suche, die Module ARD, phoenix und TagesschauXL. Details siehe changelog.txt oder Github_Releases.

    Wer Kodi mit einem Proxy nutzt und dabei Abspielprobleme festellt, dem sei der zusammenfassende Post  #3.735 von forrester empfohlen. Ich meine, die Erkenntnisse aus den Tests gelten ebenso für andere Addons. In diesem Zusammenhang löst das Addon nun Redirects für sämtliche Url's vor Übergabe an Kodi auf (Video-und Videolivestreams sowie Audio-Livestreams).

    Rückblick auf V5.0.8: wie es aussieht, war der Austausch der api-Adresse für die ZDF-Mediathek ausreichend. Seitdem haben sich keine Änderungen in Struktur und Inhalt der json-Daten gezeigt.
    /R

  • Update V5.1.0

    • EPG-Suche / Aufnahmefunktion: Suche im 12-Tage-EPG ergänzt, einschl. Aufnahmeoption via Kontextmenü (Hinweis: ffmpeg-Installation erforderlich) - s.a. Wiki . Bei der Gelegenheit wurden die Download- und Aufnahme-Tools um eine Löschoption für abgelaufene Jobs ergänzt.
    • ARD Sportschau.de (WDR): die Auswertung wurde aktualisiert. Zum Auslesen der eingebetteten Playerdaten wird künftig das Modul TagesschauXL genutzt. Dort war für die identische Datenstruktur mit bereits mit V5.0.9 eine Anpassung an ARD-Änderungen vorgenommen worden - s.a. "Tagesschau Addon keine Nachrichten mehr" .
    • Zentraler Datenabruf im Addon: die Funktion get_page() wurde bereinigt, in Stufe 2 wurde die Behandlung komprimierter Daten ergänzt.

    Alle Änderungen und Details siehe Menü Info -> Änderungsliste.
    /R

Jetzt mitmachen!

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