[RELEASE] Kodi-Addon-ARDundZDF

  • Nach dem start des Addons auf ARD Mediathek OK gedrückt. Kurz wird der "Wartekreis" gezeigt, aber das Untermenü wird nicht angezeigt.

    Fehler gefunden: eine Variable beim Unermenü ist nicht vorbelegt. Bitte die "MediathekViewWeb-Suche" in Kategorie "Allgemein" freischalten - dann funktioniert es. Da die meisten Nutzer diese Option eingeschaltet haben, trat der Fehler nur selten auf.
    Einzelupdate für ARDnew.py folgt morgen..
    /R

  • Hallo rols1,

    Ich benutze LibreElec 12.0 mit Kodi 21.
    Ich habe das Kodi-Addon-ARDundZDF Version 5.0.8 installiert.

    Ausserdem sind auch folgende offiziellen Kodi-Video-Addons installiert: c't uplink, Media.ccc.de und ARDAktuell.

    Die Firewall Regeln des Routers lassen nur authentifizierten Traffic über den Proxy ins Internet.

    In den Kodi-Einstellungen ist die Benutzung eines authentifizierenden HTTP-Proxy's aktiviert:
    - Use Proxy Server
    - http-proxy
    - IP-Adresse des Proxies
    - Port des Proxies
    - Username
    - Password

    Die oben genannten offiziellen Addons funktionieren damit einwandfrei, ohne dass in deren Einstellungen explizit auf einen Proxy verwiesen wird. Hier werden offensichtlich die Kodi-Einstellungen implizit übernommen.


    Leider funktioniert die Proxy-Einstellung nicht mit dem ARDundZDF-Addon, dieses versucht eine direkte Verbindung zu den jeweilgen IP-Adressen auf Ports 80 bzw. 443 und wird von der Firewall geblockt.
    Die Folge ist dann eine Meldung "Videoquelle nicht verfügbar".

    Ist es möglich, wie bei den obigen Addons, die Kodi-Proxy Einstellungen zu berücksichtigen, oder eine Proxy-Einstellmöglichkeit im Addon bereitzustellen?

  • Leider funktioniert die Proxy-Einstellung nicht mit dem ARDundZDF-Addon

    Bevor ich mir Unterschiede zu den genannten anderen Addons ansehe: funktioniert kein einziger Zugriff oder sind nur einzelne Module oder nur Livestreams betroffen?
    /R

  • Fehler gefunden: eine Variable beim Unermenü ist nicht vorbelegt. Bitte die "MediathekViewWeb-Suche" in Kategorie "Allgemein" freischalten - dann funktioniert es. Da die meisten Nutzer diese Option eingeschaltet haben, trat der Fehler nur selten auf.
    Einzelupdate für ARDnew.py folgt morgen..
    /R

    Ich habe das gleiche Verhalten, allerdings gibt es bei mir (#Python2) wieder Umlaut/Encoding-Fehler. Egal ob mit oder ohne "MediathekViewWeb-Suche".

    Code
    ARDundZDF --> network_error_main: 'ascii' codec can't encode character u'\xe4' in position 378: ordinal not in range(128)

    Grüße Hidi

  • joeAverage62: die Menge der Messages am Logende ist mir ebenfalls aufgefallen. check_AddonXml() wird jeweils beim Start des Addons aufgerufen. Zu deinem Bild vom Buffer-Overrun würde ein Workaround passen, der die Addonstarts in einem Hintergrund-Task misst und weitere unterbindet, falls sie in einer bestimmten Zeitspanne eine bestimmte Anzahl überschreiten. Etwas ähnliches geschieht tatsächlich im Addon bei der Einblendung der Stream-Uhrzeit bei Livestreams. Dort erfolgt ein Sync-Check der Player-Position über 3 Sekunden (im Abstand von 1 Sekunde).
    Bei deinem Log liegen die Aufrufe aber nur Bruchteile von Sekunden auseinander. Ein derart kontrollierender Task würde das Addon und vermutlich auch das Kodi-System auf 0 bremsen.

  • Ich habe das gleiche Verhalten, allerdings gibt es bei mir (#Python2) wieder Umlaut/Encoding-Fehler.

    wo genau tritt der Fehler auf? Hier in der VM mit Kodi Leia tauchte er bei den Tests nicht auf.
    /R

  • wo genau tritt der Fehler auf? Hier in der VM mit Kodi Leia tauchte er bei den Tests nicht auf.
    /R

    Bei Sendungen von A-Z; wenn ich dann noch eine Ebene tiefer möchte, wird nichts geladen.

    Einzelupdates habe ich bereits eingespielt. "MediathekViewWeb-Suche" ist aus.

  • Bei Sendungen von A-Z; wenn ich dann noch eine Ebene tiefer möchte, wird nichts geladen.

    ARD A-Z-Untermenüs öffnen nicht (nur python2*): Codec-Error gefixt - Einzelupdate ARDnew.py
    Bitte melden, sollten noch weitere Codec-Error auftauchen.
    BTW: mit dem Einzelupdate ist die Aktivierung der MediathekViewWeb-Suche nicht mehr erforderlich (aber nützlich, siehe Wicki).
    /R

  • Bei deinem Log liegen die Aufrufe aber nur Bruchteile von Sekunden auseinander.

    du redest von Messages pro Zeit

    ich redete von Anzahl bzw. von Menge, die insgesamt in einen Buffer passt, also Buffergrösse.

    aus grauer Vorzeit (anderes Raum-Zeit-Kontinuum ;)) konnte ich ein Programm (ungewollt) immer damit abschiessen, indem ich dieses in andere Speicherbereich schreiben lies, wo dann (idealerweise f. einenCrash) gerade ein anderes Programm oder sogar Betriebssystemcode sich laufend(!) aufhielt.

    im konkretem Fall: die Menge der Messages passt nicht in den Buffer, der wird auf andere Speicherbereiche ausgedehnt und damit in Programmcode von Kodi geschrieben, was dann abstürzt.

    ===

    eine andere Möglichkeit wäre (bin auch kein Crash-log-Versteher, aber meine , dass "Thread 1" auf den Fehler hindeutet [kann mich irren]), dann spinnt da python rum.

    Ich könnte - wie bereits angedeutet - mir durch Installation alter Addon's Teile von der Python-Installation überschrieben haben, die jetzt spinnt.

    Um das abzuchecken, müsste ich die Kiste idealerweise komplette sauber installieren; nur mit deinem Addon und dann testen...

    vlt. die Tage ...

    ===

    was mir jetzt auf- bzw. einfällt:

    Ich komme mit der Backspace-Taste ja auch bis zum Kodi-Homescreen (auf dem angekommen verliert die BS-Taste ihre Funktion).

    d.h. ich beende (ist das so oder läufts im Hintergrund weiter ?) dein Addon auch damit, wenn ich nur mehrfach genug BS drücke.

    - jetzt wird's schwierig meine Gedanken in Worte zu fassen -

    nehmen wir mal hypothetische an die Anzahl der BS-Tasten-Drücke würden irgendwie gedoppelt oder so und ich würde nicht nur anstelle nur die Suchergebnis-Ebenen zurück/hoch bis maximal zum Hauptmenue des Addon's (intern) kommen, sondern über das Ziel (addon-Hauptmenue) drüber hinausschiessen und auf dem Kodi-Hauptscreen landen.

    z.B.: ich bin drei Suchergebniss-Ebenen tief und drücke 5x Backspace

    => Kodi-Hauptscreen und niemand hat dem Addon gesagt, dass es jetzt beendet sein soll ...

    andererseits könnte ich mir auch vorstellen, dass die Environments deines Addon's und vom Kodi-Homescreen (teilweise) anders sind.

    wegen diesem Mismatch der Enviroments kommt es zum crash.

    ich denke da exemplarisch an eine Variable, die sowohl vom Addon, als auch von Kodi genutzt wird.

    Diese hat wegen Kontextwechsel (Formulierung ?) Addon <=> Kodi-Hauptscreen einen anderen Inhalt, mit dem weiter gerechnet wird => crash

    so ungefähr ....

    ===

    IIRC, crashes passieren (auch), wenn in Speicherbereichen anderer Code überschreiben wird (Buffergrössen nicht terminiert) oder (auch) wenn mit Variablen-Inhalten (weiter-) gerechnet wird und Operationen angewendet werden, die dann nicht zulässig sind (Rechneroperationen mit Strings oder Pointeradressen anstelle deren Inhalt oder so)

    vlt. Hinweise darauf im Log bei Thread 1:

    ...

    #1 0x0000000000944f4f in CPythonInvoker::stop(bool) ()
    #2 0x000000000132bac6 in CLanguageInvokerThread::stop(bool) ()
    #3 0x0000000001326c46 in CScriptInvocationManager::Stop(int, bool) ()
    #4 0x000000000133d8d6 in CScriptRunner::WaitOnScriptResult

    ...

    ===

    aber wie gesagt, mach's dir keinen Stress; ich drücke BS jetzt mit Vorsicht, dann passt's schooo

  • joeAverage62: kann ich gedanklich alles nachvollziehen. In der "grauen Vorzeit" (bei mir Anfang 90er) war ich einige Jahre in C und Assembler unterwegs. Debugging machten den größten Teil der Programmentwicklung aus. So tief will ich hier aber nicht mehr einsteigen. Altersbedingt geht bei mir der Trend eher dazu, den Zeitaufwand für das Addon zu reduzieren.
    Zur Frage, ob es im Hintergrund weiter läuft: ja, das tut es. Das kann man gut an den Hintergrundprozessen des Addons (z.B. Video-/EPG-Downloads) erkennen, die bei Addonwechsel weiter ihren Dienst verrichten. Mit dem Ende von Kodi werden dann alle Tasks terminiert.
    /R

  • Bevor ich mir Unterschiede zu den genannten anderen Addons ansehe: funktioniert kein einziger Zugriff oder sind nur einzelne Module oder nur Livestreams betroffen?
    /R

    1.

    Nach dem Start von Libreelec/Kodi werden direkt Syn-Anfragen an folgende Adressen gesendet:
    82.165.8.211:80
    212.227.81.55:80

    Welches Addon diese Verbindungen aufbauen möchte kann ich nicht erkennen. Die beiden Adressen werden aber immer wieder während des (passiven) Betriebes von Kodi angesprochen.

    2.

    Das Addon lässt sich starten, die Auswahl eines Menüpunktes z.B ZDF... oder TagesschauXL ist möglich und deren Unterpunkte werden ebenfalls angezeigt und sind auch auswählbar.
    Erst wenn eine Sendung zum Abspielen ausgewählt wird, erscheint die Fehlermeldung:
    "Wiedergabe nicht möglich. Allgemeiner Fehler bei der Wiedergabe".
    Zeitgleich wird versucht eine direkte IP-Verbindung z.B. nach:
    23.50.131.31:443
    23.53.41.81:443
    aufzubauen .

    3.

    Interessant ist, dass ein Einzelupdate des Addons ohne Probleme funktionierte.

  • Nach dem Start von Libreelec/Kodi werden direkt Syn-Anfragen an folgende Adressen gesendet:

    die beiden Adressen gehören zu 1&1, vermutlich deren DNS-Server.

    Zeitgleich wird versucht eine direkte IP-Verbindung z.B. nach

    die beiden Adressen gehören zu akamaitechnologies, also einer der möglichen Videoserver.

    Interessant ist, dass ein Einzelupdate des Addons ohne Probleme funktionierte.

    Neben dem Zugriff auf Github für Updates funktionieren offensichtlich auch weitere Zugriffe, denn bis zum (misslingenden) Videostart sind eine Reihe von api-Abfragen notwendig.
    Ich hatte mir im Vorfeld schon ein paar Gedanken dazu gemacht und mir auch ct-uplink und ardaktuell angesehen:

    Die Proxy-Einstellungen von Kodi spielen m.E. für Video-Addons nur eine Rolle beim Start des Players, wo das Addon das Listenobjekt (mit Videourl) mit der Funktion xbmcplugin.setResolvedUrl() an Kodi übergibt. Der Weg zur Ermittlung einer Videoquelle kann aber mehrstufig sein und mehrere http-Abrufe erfordern. Diese macht das Addon direkt und verwendet dafür eine der Request-Bibliotheken von python, abhängig von der benutzten python-Version. Oder das Addon verwendet ein spez. Modul (z.B. feedparser für die RSS-Quellen). Dieses benutzt dann seinerseits eine (i.d.R. aktuelle) Request-Bibliothek.

    ardaktuell verwendet die requests-Bibliothek von python für den Abruf von Quellen
    ct-uplink verwendet für den Abruf seiner rss-Datei das python-Modul feedparser. feedparser hat laut Github letztes Jahr vom eigenen http-Client-Code zur requests-Bibliothek gewechselt.
    Mein Addon verwendet aus Kompatibilitätsgründen die Request-Funktionen aus urllib2 (python2) und urllib.request (python3).
    Dort könnte eine Ursache liegen. Ich kann mir aber auch vorstellen, dass der sparsame Umgang mit http-Headern in meinem Addon eine Rolle spielt. Ich verwende sie nur dort und auch nur die benötigten, wo z.B. apiToken erforderlich sind oder spez. Ausgabeformate (z.B. json) gewünscht sind. Daher habe ich nachgefragt, wo der Zugriff nicht funktioniert.

    Was in Hinblick auf die verwendeten Header noch getestet werden könnte, wären die Livestreams und die Live-Menüs von 3sat und arte. Ev. wird das Bild dann etwas klarer.
    /R

  • Ja, dass die beiden Adressen zu 1&1 gehören habe ich auch festgestellt. Allerdings wird Port 80 angesprochen und nicht 53.
    Ausserdem habe ich weder 1&1 noch irgendwo deren Nameserver konfiguriert.
    Sollten diese Adressen in einem der Addons bzw. in Kodi/Librelec fest einprogammiert sein?

    Wenn ich aus der arte bzw. 3sat-Mediathek einen Livestream auswähle, erhalte ich die gleiche Fehlermeldung und der Zugriff auf Port 443 folgender Ip-Adressen wird direkt versucht:

    3sat
    104.83.4.139:443
    104.83.4.144:443

    arte
    23.38.123.201.443
    23.38.123.231.443

  • die beiden Adressen gehören zu 1&1, vermutlich deren DNS-Server.

    Die Anfragen an die beiden IP-Adressen kommen drekt von LibreElec.

    Auch nach Deaktivierung aller Addons werden die Anfragen direkt nach dem Start von LE gesendet und dienen wohl einem online status check.

    In der Datei /etc/connman/main.conf steht:

    # Urls (IPv4 and IPv6 respectively) used during the online status check.
    # Please refer to the README for more detailed information.
    # Default values are http://ipv4.connman.net/online/status.html and
    # http://ipv6.connman.net/online/status.html respectively.
    # OnlineCheckIPv4URL= http://ipv4.connman.net/online/status.html
    # OnlineCheckIPv6URL= http://ipv6.connman.net/online/status.html

    Kann man auch abschalten:


    # Enable use of http get as on online status check.
    # When a service is in a READY state, and is selected as default,
    # ConnMan will issue an HTTP GET request to verify that end-to-end
    # connectivity is successful. Only then the service will be
    # transitioned to ONLINE state.
    # If this setting is false, the default service will remain in READY state.
    # Default value is true.
    # EnableOnlineCheck = false

    Die Anfragen an die beiden IP-Adresen haben also nix mit Addon-Proxyproblem zu tun.

  • OK, dann bitte nochmal zwei Versuch mit arte. Ich meine nicht den Stream in TV-Livestreams, sondern das LIVE-Menü im Modul arte (ev. noch in den Settings Allgemein freischalten), s. erstes Bild:
    nach dem ersten Versuch den Sofortstart umschalten und das LIVE-Menü erneut anwählen. Bei ausgeschaltetem Sofortstart sollte der Button für den HLS-Stream erscheinen, s. 2. Bild.

    Hintergrund: bei der zweiten Variante wird der Stream über xbmcplugin.setResolvedUrl() an Kodi übergeben. Wenn meine Vermutung stimmt, sollten dabei die gesetzten Proxy-Parameter greifen und das Abspielen klappen.
    /R

  • OK, dann bitte nochmal zwei Versuch mit arte. Ich meine nicht den Stream in TV-Livestreams, sondern das LIVE-Menü im Modul arte (ev. noch in den Settings Allgemein freischalten), s. erstes Bild:
    nach dem ersten Versuch den Sofortstart umschalten und das LIVE-Menü erneut anwählen. Bei ausgeschaltetem Sofortstart sollte der Button für den HLS-Stream erscheinen, s. 2. Bild.

    Hintergrund: bei der zweiten Variante wird der Stream über xbmcplugin.setResolvedUrl() an Kodi übergeben. Wenn meine Vermutung stimmt, sollten dabei die gesetzten Proxy-Parameter greifen und das Abspielen klappen.
    /R

    Leider ist das Ergebnis bei beiden Varianten gleich.

    Bei ausgeschaltetem Sofortstart bekomme ich zwar den Button für den HLS-Stream, aber wenn ich diesen auswähle wird ebenfalls ein Direktzugriff vorgenommen mit der gleichen Fehlermeldung.

  • Leider ist das Ergebnis bei beiden Varianten gleich.

    Danke für die Tests. Im Moment kann ich mir noch keinen Reim darauf machen. Bist du in der Lage, auf dem LE-Gerät ein paar Abrufversuche mit Curl zu machen? Ein einfacher Test wäre der Abruf der master.m3u8-Datei für den DasErste-Livestream:
    curl -v https://daserste-live.ard-mcdn.de/daserste/live/hls/de/master.m3u8
    Wenn er durchkommt und die Datei mit den #Ext-X-Zeilen ausgibt, wäre die Client-Server-Kommunikation interessant. Die gibt Curl oberhalb der Datei (oder der Fehlermeldung) aus.
    /R

  • joeAverage62: kann ich gedanklich alles nachvollziehen. In der "grauen Vorzeit" (bei mir Anfang 90er) war ich einige Jahre in C und Assembler unterwegs. Debugging machten den größten Teil der Programmentwicklung aus. So tief will ich hier aber nicht mehr einsteigen. Altersbedingt geht bei mir der Trend eher dazu, den Zeitaufwand für das Addon zu reduzieren.

    bei mir: C und 8080, 8086 Assembler Mitte der 90-er

    Reduktion ist okay f. mich - wie öfters angedeutet -

  • 8086 Assembler

    bei mir war es die 68000er Reihe. Der Kuma-Assembler steht bei mir noch im Bücherregal, einschl. Disketten..
    /R

Jetzt mitmachen!

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