Ich bin Mitglied bei den Hamburger Bücherhallen und versuche gerade, filmfriend.de irgendwie am TV gucken zu können statt am Rechner. Dabei bin ich auf dieses Kodi-Plugin gestoßen. Bisher hab ich Kodi nicht wirklich benutzt, aber ein RasPi mit RecalBox steht eh neben dem Fernseher, daher wäre das vielleicht einen Versuch Wert (hab schon rausgefunden, dass die dortige Kodi-Version 16 zu alt ist).
Also hab ich gestern mal auf meinem Rechner rumgespielt und die Login-Methode für Hamburg implementiert. Pull Request ist hier: https://github.com/kodinerds/repo/pull/79 (normalerweise programmiere ich kein Python, also wird vielleicht etwas Nachbesserung nötig sein).
Das Einloggen klappt auch, aber das Abspielen von Filmen scheitert noch. Ich hab das mangels Kodi Erfahrung darauf geschoben, dass widevine DRM grundsätzlich vielleicht Zicken macht/noch weitere Optimierung benötigt.
Funktioniert das Plugin aktuell für die Berliner Bib? Mit welcher Kodi-Version? Besondere Einstellungen?
Nachtrag: hier der Teil vom [definition=12,3]Debug-Log[/definition], wo man sieht, dass es Probleme mit dem License Server gibt, nachdem ich das inputstream.adaptive/widevine Problem nach Update 17 -> 18 RC4 gelöst hatte:
Spoiler anzeigen
19:38:11.668 T:13524 NOTICE: Creating InputStream
19:38:11.668 T:13524 DEBUG: ADDON: Dll Initializing - InputStream Adaptive
19:38:11.668 T:13524 DEBUG: SECTION:LoadDLL(C:\Users\ingo\AppData\Roaming\Kodi\addons\inputstream.adaptive\inputstream.adaptive.dll)
19:38:11.670 T:11560 INFO: Python interpreter stopped
19:38:11.670 T:11560 DEBUG: Thread LanguageInvoker 11560 terminating
19:38:11.671 T:13524 INFO: AddOnLog: InputStream Adaptive: SetVideoResolution (1920 x 1080)
19:38:11.671 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Open()
19:38:11.671 T:13524 DEBUG: AddOnLog: InputStream Adaptive: found inputstream.adaptive.license_key: [not shown]
19:38:11.671 T:13524 DEBUG: AddOnLog: InputStream Adaptive: found inputstream.adaptive.license_type: com.widevine.alpha
19:38:11.671 T:13524 DEBUG: AddOnLog: InputStream Adaptive: found inputstream.adaptive.manifest_type: mpd
19:38:11.671 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Initial bandwidth: 4000000
19:38:11.671 T:13524 DEBUG: CAddonSettings[inputstream.adaptive]: loading setting definitions
19:38:11.672 T:13524 DEBUG: AddOnLog: InputStream Adaptive: MAXRESOLUTION selected: 0
19:38:11.672 T:13524 DEBUG: CAddonSettings[inputstream.adaptive]: loading setting definitions
19:38:11.672 T:19884 DEBUG: CVideoGUIInfo::InitCurrentItem(plugin://plugin.video.L0RE.filmfriend/?url=https%3A%2F%2Fwww.filmfriend.de%2Froland-willaert-abbuzze-1998-stream-download.html&mode=playit&mpd=&key=)
19:38:11.672 T:19884 DEBUG: CPlayerGUIInfo::InitCurrentItem(plugin://plugin.video.L0RE.filmfriend/?url=https%3A%2F%2Fwww.filmfriend.de%2Froland-willaert-abbuzze-1998-stream-download.html&mode=playit&mpd=&key=)
19:38:11.673 T:13524 DEBUG: AddOnLog: InputStream Adaptive: MAXRESOLUTIONSECURE selected: 0
19:38:11.673 T:17468 DEBUG: CAnnouncementManager - Announcement: OnChanged from xbmc
19:38:11.673 T:17468 DEBUG: GOT ANNOUNCEMENT, type: 1024, from xbmc, message OnChanged
19:38:11.673 T:6456 DEBUG: Loading settings for plugin://plugin.video.L0RE.filmfriend/?url=https%3A%2F%2Fwww.filmfriend.de%2Froland-willaert-abbuzze-1998-stream-download.html&mode=playit&mpd=&key=
19:38:11.673 T:13524 DEBUG: CAddonSettings[inputstream.adaptive]: loading setting definitions
19:38:11.673 T:13524 DEBUG: AddOnLog: InputStream Adaptive: STREAMSELECTION selected: 0
19:38:11.674 T:13524 DEBUG: CAddonSettings[inputstream.adaptive]: loading setting definitions
19:38:11.677 T:13524 DEBUG: Previous line repeats 3 times.
19:38:11.677 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Searching for decrypters in: E:\Program Files (x86)\Kodi\addons\inputstream.adaptive\
19:38:11.677 T:13524 ERROR: XFILE::CDirectory::GetDirectory - Error getting E:\Program Files (x86)\Kodi\addons\inputstream.adaptive\
19:38:11.677 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Searching for decrypters in: C:\Users\ingo\AppData\Roaming\Kodi\addons\inputstream.adaptive
19:38:11.678 T:17468 DEBUG: CAnnouncementManager - Announcement: OnPlay from xbmc
19:38:11.678 T:17468 DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnPlay
19:38:11.679 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Found decrypter: C:\Users\ingo\AppData\Roaming\Kodi\addons\inputstream.adaptive\ssd_wv.dll
19:38:11.679 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Supported URN: urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED
19:38:11.684 T:13524 DEBUG: CurlFile::Open(0xd6ebb10) https://ak01-flm.delivery.fuugo.com/alleskino/film…bbuzze_film.mpd
19:38:11.684 T:13524 INFO: XCURL::DllLibCurlGlobal::easy_acquire - Created session to https://ak01-flm.delivery.fuugo.com
19:38:11.730 T:21988 DEBUG: Thread BackgroundLoader 21988 terminating
19:38:11.773 T:19884 DEBUG: ------ Window Init (DialogBusy.xml) ------
19:38:11.893 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Effective URL https://ak01-flm.delivery.fuugo.com/alleskino/film…bbuzze_film.mpd
19:38:11.894 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Download https://ak01-flm.delivery.fuugo.com/alleskino/film…bbuzze_film.mpd finished
19:38:11.894 T:13524 INFO: AddOnLog: InputStream Adaptive: Successfully parsed .mpd file. #Streams: 2 Type: VOD, Download speed: 0.0000 Bytes/s
19:38:11.896 T:13524 DEBUG: CAddonSettings[inputstream.adaptive]: loading setting definitions
19:38:11.899 T:13524 DEBUG: Previous line repeats 1 times.
19:38:11.899 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Entering encryption section
19:38:11.910 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Initializing stream with KID: 9B50E5D40EB2D6DC2477D9D9C1A23D2E
19:38:12.095 T:13524 DEBUG: AddOnLog: InputStream Adaptive: CDMMessage: 1 arrived!
19:38:12.101 T:13524 DEBUG: CurlFile::ParseAndCorrectUrl() adding custom header option 'Expect: '
19:38:12.101 T:13524 DEBUG: CurlFile::ParseAndCorrectUrl() adding custom header option 'Origin: https://www.filmfriend.de'
19:38:12.101 T:13524 DEBUG: CurlFile::ParseAndCorrectUrl() adding custom header option 'content-type: application/octet-stream''
19:38:12.101 T:13524 DEBUG: CurlFile::Open(0xd6e9960) https://wv.service.expressplay.com/hms/wv/rights/…80wN5i8Xx3DY-Zg
19:38:12.101 T:13524 INFO: XCURL::DllLibCurlGlobal::easy_acquire - Created session to https://wv.service.expressplay.com
19:38:12.751 T:13524 ERROR: CCurlFile::FillBuffer - Failed: HTTP returned error 403
19:38:12.751 T:13524 ERROR: CCurlFile::Open failed with code 403 for https://wv.service.expressplay.com/hms/wv/rights/…0wN5i8Xx3DY-Zg:
19:38:12.751 T:13524 ERROR: AddOnLog: InputStream Adaptive: License server returned failure
19:38:12.751 T:13524 ERROR: AddOnLog: InputStream Adaptive: License update not successful (no keys)
19:38:12.751 T:13524 ERROR: AddOnLog: InputStream Adaptive: Initialize failed (SingleSampleDecrypter)
19:38:12.751 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Session::~Session()
19:38:12.755 T:13524 ERROR: CVideoPlayer::OpenInputStream - error opening [plugin://plugin.video.L0RE.filmfriend/?url=https%3A%2F%2Fwww.filmfriend.de%2Froland-willaert-abbuzze-1998-stream-download.html&mode=playit&mpd=&key=]
19:38:12.755 T:13524 NOTICE: CVideoPlayer::OnExit()
19:38:12.755 T:13524 DEBUG: AddOnLog: InputStream Adaptive: Close()
19:38:12.755 T:13524 DEBUG: SECTION:UnloadDll(C:\Users\ingo\AppData\Roaming\Kodi\addons\inputstream.adaptive\inputstream.adaptive.dll)
19:38:12.756 T:13524 INFO: ADDON: Dll Destroyed - InputStream Adaptive
Nachtrag 2: folgender Aufruf aus dem Log gibt ein 403 (Forbidden) https://wv.service.expressplay.com/hms/wv/rights/?ExpressPlayToken=...
Und somit in Folge ein "License server returned failure".
Zum Vergleich hab ich den Film mal in Chrome abgespielt und dabei mit den Entwickler-Tools den Traffic angeschaut. Dort wird diese URL per HTTP POST aufgerufen und hat einen Request Body, der die Zeichen Backspace (Code 08) und End of Trans. (Code 04) enthält. Rufe ich das manuell mit einem passenden Tool auf und lasse den Body weg, bekomme ich auch ein 403 wie beim Abspiel-Versuch mittels Plugin.
Leider sieht man im Log nicht, ob es ein POST Request ist und welcher Body geschickt wird.