hubsif/kodi-magentasport

API-Erreichbarkeit

Closed this issue · 24 comments

MRLB commented

Sieht so aus, als wäre die Erreichbarkeit der API zurzeit etwas eingeschränkt. Auch gestern Abend beim Basketball hatte ich abundzu diese Meldung:

11:15:56.757 T:18446744072340886568 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<-- - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <type 'exceptions.IOError'> Error Contents: [Errno socket error] ('The read operation timed out',) Traceback (most recent call last): File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.video.telekomsport/default.py", line 329, in <module> locals()['get' + mode]() File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.video.telekomsport/default.py", line 106, in getMain response = urllib.urlopen(base_url + jsonResult['data']['main']['target']).read()

Ist nun kein Addon-Problem. Haben die Apps mittlerweile eine andere API-Anbindung?

Es ist möglich, die v1 auf v3 etc .zu ändern. Vielleicht sind die im Moment stabiler:
https://www.telekomsport.de/api/v1

MRLB commented

Die telekomsport.de-Webseite greift auf v2 zu. Die ist aber genauso wie v1 aufgebaut.
https://www.telekomsport.de/api/v2
Dann müsste s ja eigentlich problemlos weiterhin funktionieren.

Ne, zwischen v1 und v2 gibt es Unterschiede. Zumindestens früher. Das betrifft aber nur speziellere Themen wie die Tabellen, die glaube ich hier nicht enthalten sind.
Man kann auch https://www.telekomsport.de/api/v2/mobile verwenden. Dann fehlen EPG Daten, aber dafür ist der Download kleiner.

Hi! Die api v2 ist wohl minimal anders als v1, aber unterscheidet sich kaum in der verwendeten Menüführung. Dass es eine v3 gibt hatte ich noch gar nicht gesehen. Ich hab ein Update angefangen, das die v2 verwendet und ein paar Dinge anders macht. Allerdings gabs Probleme mit einem Bug in Kodi 18, weshalb es noch nicht fertig ist. Ich hoffe, ich komme bald dazu.

Man kann auch https://www.telekomsport.de/api/v2/mobile verwenden. Dann fehlen EPG Daten, aber dafür ist der Download kleiner.

Ah, ich hatte mich schon gefragt, was der Unterschied bei /mobile sein soll. Dass das EPG fehlt hatte ich übersehen.

MRLB commented

Ich benutze bei mir zurzeit die v3 und CL und Basketball Eurocup lief/läuft heute Problemlos.

Andere Unterschiede zwischen mobile und normal sind mir nicht aufgefallen. Falls dir noch was auffällt, gerne melden.

Interessant ist, dass es die v3 gibt. Hab mir die im Detail noch nicht angeschaut, aber soweit ich es erkennen kann wird sie weder von der Webseite noch von der Android App verwendet.

MRLB commented

HBL lässt sich bei mir zurzeit nicht mehr auswählen, obwohl die Spiele noch laufen. Das Problem
Hätte ich bei den Sky-Inhalt schon öfters, dass sie nach 1,5 Stunden nicht mehr startartbar sind

MRLB commented

Das wird zurzeit gemeldet, wenn ich HBL nun starten will. Über telekomsport.de klappt der Stream noch.

14:40:53.334 T:18446744072320708944 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<-- - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <type 'exceptions.KeyError'> Error Contents: 0 Traceback (most recent call last): File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.video.telekomsport/default.py", line 329, in <module> locals()['get' + mode]() File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.video.telekomsport/default.py", line 248, in getevent if jsonResult['data']['content'][0]['group_elements'][0]['type'] == 'player' and (not hasEventVideos or (hasEventVideos == 1 and jsonResult['data']['content'][0]['group_elements'][0]['data'][0]['videoID'] == jsonResult['data']['content'][1]['group_elements'][0]['data'][0]['videoID'])): KeyError: 0 -->End of Python script error report<--

MRLB commented

JSON-Daten sehen ganz ok aus:
grafik

Ich glaube, das Problem schon zu kennen, bin da bei der Entwicklung für die nächste Version drübergestolpert.
Ich schau’s mir später mal genauer an und mach dann evtl. noch ein Update Release für die jetzige Version.

MRLB commented

Danke. Bei Bayern.tv läuft auch ab und zu was live. Wäre es möglich dies auch mit bei "Jetzt live" in der neuen Version zu berücksichtigen? Ist nun nicht dringend, wäre aber Nice to have. Im EPG steht im Titel "Live:"

MRLB commented

Könntest du schon einen Hotfix für das HBL-Problem finden? Nach einer Stunde, z. B. heute beim 17 Uhr Spiel, startet der Stream nicht mehr. Ärgerlich bei so frühen Anwurdzeiten.

Hi MRLB,
Ich komme leider gerade zu nichts. Aber als schnelle Lösung könntest du folgendes probieren:
Lösche mal die Zeilen 248-254 (if jsonResult['data']Block) aus dem Code in default.py. Und den Block in Zeilen 255-267 dann entsprechend weniger einrücken.
Das verlängert zwar ggf. die Menüführung um eine Ebene, aber dafür sollten die Spiele dann auswählbar sein.

MRLB commented

Leider nicht geklappt:
EDIT - Mein Fehler

Sehr gut, dass du immer gleich Logs dazuschickst. Aber irgendwie sieht es aus, als wäre das log vom YouTube-Addon?

MRLB commented

Oh, sorry. Mein Fehler. Komisch. Ich habe doch überhaupt kein Youtube geschaut. Wie kommt das dann in den Log.

Nein, das war schon der richtige. Er versucht scheinbar über youtube die File abzuspielen. Alles komisch. Ich bekomm ich wieder die gleiche:
19:14:45.629 T:8256 DEBUG: CSaveFileState::DoWork - Saving file state for video item plugin://plugin.video.telekomsport/?mode=event&event=%2Fevent%2F114724 19:14:45.629 T:3748 DEBUG: CAnnouncementManager - Announcement: OnPlay from xbmc 19:14:45.629 T:3748 DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnPlay 19:14:45.629 T:9920 DEBUG: CGUIInfoManager::SetCurrentMovie() 19:14:45.654 T:10164 ERROR: EXCEPTION: XBMC is not playing any file 19:14:45.666 T:10236 ERROR: EXCEPTION: XBMC is not playing any media file 19:14:45.666 T:10236 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<-- - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <type 'exceptions.RuntimeError'> Error Contents: XBMC is not playing any media file Traceback (most recent call last): File "C:\Users\MRLB\AppData\Roaming\Kodi\addons\plugin.video.youtube\resources\lib\youtube_plugin\kodion\utils\player.py", line 75, in onPlayBackStarted self.current_video_total_time = self.getTotalTime() RuntimeError: XBMC is not playing any media file -->End of Python script error report<-- 19:14:45.791 T:9988 ERROR: EXCEPTION: XBMC is not playing any file

Hi Leute,
Ich habe gerade nun endlich ein Update fertiggestellt und dabei gleich auf "Magentasport" umgestellt. Der Sourcecode ist in der Branch "magentasport", auch ein Release habe ich veröffentlicht.
Wirklich viel hat sich nicht verändert, aber ich denke es sind doch einige Fehlerstellen weniger. Würde mich freuen, wenn ihr das Update mal testen könntet. Danke!

@MRLB: Falls es das Problem mit den schon laufenden Streams noch gab, schau mal bitte, ob das nun behoben ist.

MRLB commented

Wo finde ich das Update?

Der Sourcecode ist in der Branch "magentasport", auch ein Release habe ich veröffentlicht.

🤔

MRLB commented

Ja, hab's gefunden. Werde es am Wochenende durchtesten. Das Streamproblem trat in der Regel nur bei der HBL und sehr selten bei anderen Sky-Streams auf. HBL hat grad WM-Pause, von daher kann es bisschen dauern

MRLB commented

Die Reportagen über die Basketball Nationalmannschaft gehen nun mit dem neuen Addon. Die gingen mit dem alten auch nicht auf.

Na das ist ja schon mal erfreulich.

Ich mach das hier mal zu. Falls es noch Probleme gibt, einfach wieder (oder ein neues) aufmachen.

MRLB commented

Hallo,

habt ihr euch mal die https://www.telekomsport.de/api/v3 angeschaut?

Die wird im Moment für die Webseite benutzt. Beim aufrufen wird immer noch ein Token benötigt. Leider bin ich noch nicht dahinter gekommen wie der erzeugt wird:
z. B.:
https://www.magentasport.de//api/v3/components/programm/18?token=5edf641c7e50b81780e7e92a36948bb5cc967aa44531e6576fd316e388f09619

Die Token wird scheinbar hier erzeugt:
https://www.magentasport.de/frontend/js/app.js
und wohl bei dem Part:
var t=e.url.toString().match(/.?(/api/v3/[^?])/);if(t){var n=t[1],r=new s.a;e.params.token=r.generate(n)}return e})),window.axios=r.a,e.axios=window.axios,window.axios.defaults.timeout=1e4,window.axios.defaults.headers.common["X-CSRF-TOKEN"]=window.Laravel.csrfToken,window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",window.moment=n("wd/R"),window.moment.locale("de"),window.moment.updateLocale("de",{monthsShort:"Jan._Feb._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov.Dez.".split("")}),window.countdown=n("8ZBC"),

Hi!
Ich hab mir das noch nicht angesehen, aber normalerweise wird ein Token immer vom Server erzeugt (sonst macht es IMHO wenig Sinn). Das sollte generell aber auch machbar sein, im Prinzip kann man ja alles nachbilden, was die App auch macht. Die würde ich mir bei Gelegenheit nochmal genauer ansehen. Leider ist dafür nur zu wenig Zeit momentan ...