Open Scheiwe1 opened 5 years ago
Moin,
das gleiche ist bei mir. Ist die Mediathek geändert worden oder ist der API key nicht in Ordnung? Hier die kodi.log
09:04:19.427 T:1454371760 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.IndexError'>
Error Contents: list index out of range
Traceback (most recent call last):
File "/home/pi/.kodi/addons/plugin.video.zdf_de_lite/default.py", line 5, in <module>
libzdf.list()
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdf.py", line 102, in list
l = modes.get(mode,libZdfListMain)()
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdf.py", line 42, in libZdfListPage
return libZdfJsonParser.parsePage(params['url'])
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdfjsonparser.py", line 36, in parsePage
response = getU(url,True)
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdfjsonparser.py", line 18, in getU
libzdftokengrabber.grepToken()
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdftokengrabber.py", line 8, in grepToken
tokenPlayer = re.compile('"apiToken": "(.+?)"', re.DOTALL).findall(response)[0]
IndexError: list index out of range
-->End of Python script error report<--
09:04:19.442 T:1945580192 ERROR: GetDirectory - Error getting plugin://plugin.video.zdf_de_lite/?mode=libZdfListPage&url=https%3a%2f%2fapi.zdf.de%2fcontent%2fdocuments%2fmeist-gesehen-100.json%3fprofile%3ddefault
09:04:19.444 T:1945580192 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.zdf_de_lite/?mode=libZdfListPage&url=https%3a%2f%2fapi.zdf.de%2fcontent%2fdocuments%2fmeist-gesehen-100.json%3fprofile%3ddefault) failed
Gruß, TommtY
Ich hatte das Problem auch, heute geht es auf einmal wieder
Danke für den Hinweis. Läuft bei mir auch wieder.
Ich habe leider immer noch dasselbe Problem. Selber Log output wie oben.
ich habe das problem seit zwei tagen auch, und es dauert noch an.
21:50:29.510 T:1527771904 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.IndexError'>
Error Contents: list index out of range
Traceback (most recent call last):
File "/home/osmc/.kodi/addons/plugin.video.zdf_de_lite/default.py", line 5, in <module>
libzdf.list()
File "/home/osmc/.kodi/addons/script.module.libzdf/lib/libzdf.py", line 99, in list
l = modes.get(mode,libZdfListMain)()
File "/home/osmc/.kodi/addons/script.module.libzdf/lib/libzdf.py", line 36, in libZdfListShows
return libZdfJsonParser.getAZ()
File "/home/osmc/.kodi/addons/script.module.libzdf/lib/libzdfjsonparser.py", line 55, in getAZ
response = getU("https://api.zdf.de/content/documents/sendungen-100.json?profile=default",True)
File "/home/osmc/.kodi/addons/script.module.libzdf/lib/libzdfjsonparser.py", line 18, in getU
libzdftokengrabber.grepToken()
File "/home/osmc/.kodi/addons/script.module.libzdf/lib/libzdftokengrabber.py", line 8, in grepToken
tokenPlayer = re.compile('"apiToken": "(.+?)"', re.DOTALL).findall(response)[0]
IndexError: list index out of range
-->End of Python script error report<--
Hatte gleiches Problem, hat aber gestern wieder funktioniert. Problem vielleicht bei ZDF?
ja, nun geht es wieder nicht seit 2 Tagen.
Ich konnte den Fehler im Code finden und habe ihn bei mir lokal gefixt, weiß aber nicht wie/wo/ob ich einen Pull-Request machen kann/darf. Der Fehler war in der file: repository.membrane/script.module.libzdf/script.module.libzdf-2.1.8.zip/script.module.libzdf/lib/libzdftokengrabber.py Zeile 8: tokenPlayer = re.compile('"apiToken": "(.+?)"', re.DOTALL).findall(response)[0]
Die regexpression muss wie in Zeile 7 "apiToken: '(.+?)'" lauten und nicht '"apiToken": "(.+?)"' Kleiner Unterschied, große Folgen, in der ZDF Homepage ist der apiToken als JSON mit ' umschlossen und dann findet die Regexpression keinen Token und will dann auf den Index 0 zugreifen, der dann nicht definiert ist -> IndexError: list index out of range. Wäre vermutlich stabiler erst zu schauen ob die Regexpression den Token gefunden hat und dann auf den Index zuzugreifen, falls es dann noch nötig ist. Ich kenne mich mit Python nicht so gut aus, aber ich würde die Stelle optimieren, wenn ich heraus finde wo/wie.
Im Anhang die gefixte libzdf, allerdings stimmt die Verison dann nicht, kann aber so als zip in kodi installiert werden. script.module.libzdf.zip
super arbeit, interessanterweise geht es heute auch so einfach wieder... mal sehen wie lange ;)
Mit ElRaph's fix funktioniert die Suche / das Menü bei mir jetzt super, nur das Abspielen will nicht. Laut Log ist der Zugriff verboten. Wenn ich über einen Browser auf die URL zugreifen will, bekomme ich nur "Authentication parameters missing"
7:49:18.242 T:1497363376 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <class 'urllib2.HTTPError'>
Error Contents: HTTP Error 403: Forbidden
Traceback (most recent call last):
File "/home/pi/.kodi/addons/plugin.video.zdf_de_lite/default.py", line 5, in <module>
libzdf.list()
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdf.py", line 97, in list
libMediathek.play(libZdfPlay())
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdf.py", line 48, in libZdfPlay
return libZdfJsonParser.getVideoUrl(params['url'])
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdfjsonparser.py", line 184, in getVideoUrl
response = getU(url,False)
File "/home/pi/.kodi/addons/script.module.libzdf/lib/libzdfjsonparser.py", line 20, in getU
response = libMediathek.getUrl(url,header)
File "/home/pi/.kodi/addons/script.module.libmediathek3/lib/libmediathek3utils.py", line 34, in getUrl
return _request(url,headers,post,cookies)
File "/home/pi/.kodi/addons/script.module.libmediathek3/lib/libmediathek3utils.py", line 82, in _request
response = urllib2.urlopen(req)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 437, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 550, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 475, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 558, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 403: Forbidden
-->End of Python script error report<--
17:49:18.267 T:1945592480 ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.zdf_de_lite/?url=https%3A%2F%2Fapi.zdf.de%2Ftmd%2F2%2Fngplayer_2_3%2Fvod%2Fptmd%2Fmediathek%2F181206_1925_sendung_nhk&mode=libZdfPlay]
Ich versuche übrigens, aus Dänemark auf die Mediatek zuzugreifen. Haben die irgendein Geo Blocking eingeführt? Über nen Browser läuft alles super.
Das Problem ist: Es gibt zwei verschiedene API-Tokens. Einen für das Menü (als tokenMenu bezeichnet), um also sämtliche Sendungen erst einmal aufzulisten und einen zum Abspielen der Sendungen (als tokenPlayer bezeichnet).
Der Menü-Token ist der, der per Suche nach apiToken (ohne "") auf der Startseite (https://www.zdf.de) gefunden werden kann. Der Player-Token wäre wiederum mittels Suche nach "apiToken" (mit "") zu finden. Nur ist der inzwischen nicht mehr immer auf der Startseite vorhanden, sondern anscheinend nur ab und an (vermutlich abhängig davon, ob eine direkt abspielbare Sendung auf der Startseite angezeigt wird oder nur Links auf Sendungsseiten) und deshalb wirft der TokenGrabber dort ursprünglich einen Fehler, weil er den Player-Token dann nicht findet. Mit dem "Fix" wird wiederum der Player-Token aus dem Menü-Token erzeugt, was dann natürlich Probleme beim Abspielen macht, weil der Menü-Token kein gültiger Player-Token ist.
Mein Vorschlag wäre, die Grabber-URL zu ändern, nämlich nicht mehr https://www.zdf.de/ zu nehmen, sondern https://www.zdf.de/live-tv. Es braucht nämlich unbedingt eine Seite, die immer einen Player eingebettet hat, damit der Player-Token dort erscheint. Ich vermute, dass das auf der Live-TV-Seite garantiert sein dürfte.
Ich habe mal eine eigene Version mit diesem Fix angehangen. Ich hoffe, dass der etwas stabiler funktioniert.
IntendedCrash, vielenm Dank für deine Arbeit. Läuft super :)
Von mir auch vielen Dank.
From: TommyTaif notifications@github.com Sent: Saturday, December 8, 2018 10:50:31 PM To: prof-membrane/plugin.video.zdf_de_lite Cc: Scheiwe1; Author Subject: Re: [prof-membrane/plugin.video.zdf_de_lite] ZDF-Mediathek funktioniert nicht mehr (#21)
IntendedCrash, vielenm Dank für deine Arbeit. Läuft super :)
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fprof-membrane%2Fplugin.video.zdf_de_lite%2Fissues%2F21%23issuecomment-445492541&data=02%7C01%7C%7Ca7a666307d5f46dd4c5908d65d572d3b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636799026325223831&sdata=Vq%2BN89ONuYF18x8jfgop4cU91NldXhmfvUSE%2BQ36KBw%3D&reserved=0, or mute the threadhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAqc00O_PrHdKZ_VKMdUhp2mJu4alv6QTks5u3DQngaJpZM4YnmBo&data=02%7C01%7C%7Ca7a666307d5f46dd4c5908d65d572d3b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636799026325223831&sdata=B0OXurIw%2F%2FsTonyhpSQFOopikkisM1JASNo3CwTJCkU%3D&reserved=0.
Hammer, vielen Dank!!! Jetzt verstehe ich den Code auch besser und ich habe dann wohl keinen Fehler gefixxt, sorry! Das einzig stabile wäre ein offizieller ZDF-Endpunkt bei dem man sich die API-Tokens holen kann, oder? Also zumindest solange bis das ZDF den Endpunkt ändert... Ich überlege gerade, ob man nicht bei der offiziellen ZDF-App tracken könnte wie die an die Tokens kommt. Man müsste ja irgendwie deren Requests analysieren können, oder hat das schon wer versucht/gemacht?
Danke IntendedCrash, jetzt funktioniert auch bei mir die ZDF Mediathek wieder...
Besten Dank IntendedCrash, hat mein Problem mit den ZDF-Mediathek-Addon gelöst. :-)
Hallo Zusammen,
seit etwa 1-2 Tagen kommt es zu einem Fehler, wenn man
Es wird die neueste Kodi-Version (Libreelec) genutzt und alle Addons inklusive der dazugehörigen Scripte (libzdf) wurden aktualisiert.
BG Scheiwe 1