Beiträge von Ingo-FP-Angel

    Ich stand vor kurzem vor einer ähnlichen Fragestellung, als ich mich mit dem Plugin für filmfriend.de auseinandergesetzt habe, um dem die Unterstützung für die Hamburger Bibliothek beizubringen: Berliner Bibliotheken mit Streaming Angebot

    Besagtes Plugin liegt im Source hier: https://github.com/kodinerds/repo
    Wobei das insgesamt 6 GB sind für alle Plugins, das plugin.video.L0RE.filmfriend aber nur knapp 200kB ausmacht.

    So "richtig" debuggt habe ich das nicht. Einfach mal modifiziert, mit `[definition=12,0]debug[/definition](...)` Statements versehen, immer wieder den aktuellen Stand der geänderten Dateien in das installierte Kodi (bzw. unterhalb von %APPDATA% auf Windows in das richtige Verzeichnis) kopiert, aufgerufen und im Log geguckt, was los ist.

    In meinem Fall musste ich nicht den Code zum eigentlichen Abspielen anpassen, nur das Login gegen eine andere Webseite als bisher (ging vorher nur mit der Berliner Bib). Daher hab ich jetzt keinen anderen Quelltext von Plugins oder Kodi benötigt.


    Als das dann unter Windows so weit lief, hab ich das dann auch auf meinem RasPi ausprobiert.


    Ansonsten gibt es natürlich https://kodi.wiki/view/Add-on_development aber da hab ich mich jetzt nicht durchgelesen.

    Freut mich, dass es klappt :)

    An sich funktioniert das für viele Städte nahezu gleich. Wenn ich mal richtig Zeit hab, kann ich ja mal einen Rundumschlag machen und alle einbauen, die keine Sonderbehandlung brauchen.
    Aber dann müsste ich mich mal schlau machen, wie man das mit der Plugin-Entwicklung, Settings und ggfs. weiteren Ressourcen-Dateien besser hinbekommt. Bisher war das eher die Zu-Fuss-Methode ;)

    Ich hab einen Pull Request erstellt mit dem Fix für VÖBB Berlin und Unterstützung für HFF München: https://github.com/kodinerds/repo/pull/88
    Ich hoffe, der wird angenommen. Selbst testen kann ich das für München leider nicht, da ich dort kein Konto habe, aber das ist wie in Hamburg aufgebaut und dort hab ich verifiziert, dass es funktioniert.

    @Chriskodi und @helmet44: wenn Ihr schon jetzt testen wollt, hab ich eine aktualisierte Fassung des Plugins angehängt.

    Ich hab mir das für München mal angeguckt, es sieht so aus, als sei der Login-Mechanismus so wie auch in Hamburg, d.h. grundsätzlich könnte ich das programmieren, dann aber mangels Konto in München nicht prüfen, ob es auch funktioniert.

    Und bei meinem letzten Versuch mit Hamburg ging leider das Abspielen nicht, d.h. ich kann auch nicht sagen, ob das Plugin aktuell überhaupt funktioniert.

    Nachtrag: meine letzten Versuche waren noch mit dem 18.0 RC von Kodi. Ich hab heute mal die 18.1 installiert, das inputstream.adaptive neu installiert und noch mit den widevine DRM libs rumgespielt. Beim letzten Mal hatte ich zwei Versionen irgendwoher kopiert. Und eine davon (4.10.1224.7) tut, d.h. ich konnte gerade einen Film abspielen :)

    Nachtrag2: es läuft auch unter libreELEC 9.0.1 auf meinem RasPi. Es war etwas schwierig, die neueste Version von inputstream.adaptive (2.3.15) zu installieren. Muss irgendwie mit dem Update von 8 auf 9 zu tun gehabt haben. Und die libwidevinedrm.so musste ich manuell installieren.

    Nachtrag3: wenn mich nicht alles täuscht, hab ich die widevine DLL unter Windows 10 aus der Chrome-Installation genommen, bei mir unter C:\Program Files (x86)\Google\Chrome\Application\72.0.3626.121\WidevineCdm\_platform_specific\win_x64

    Moin Lore,

    ich hab letztens die Authentifizierung gegen die Hamburger Bibliothek für das filmfriend.de Plugin eingebaut, aber das Abspielen von Videos klappt nicht.
    Details stehen unter Berliner Bibliotheken mit Streaming Angebot

    Mich würde interessieren, ob es über die Berliner Bib noch geht (hab da natürlich keinen Account). Ich steck nicht genug drin um zu erkennen, ob an der Login-Funktion nicht doch noch was fehlt, oder ob das Abspielen des DRM Videos generell das Problem ist.

    Danke :)
    Ingo

    Nachtrag: hab mittlerweile auf Kodi 18.1 aktualisiert inkl. neueste Version von inputstream.adaptive und jetzt gehts, die Filme abzuspielen mit Hamburger Login

    29.4.2018

    Neues Plugin Filmfriend
    Momentan geht nur Berliner Bücherei, da ich nur dort ein Account Zum Testen habe

    Nutzt das jemand? Ich hab den Login für Hamburg implementiert, aber das eigentliche Abspielen geht irgendwo in den Tiefen von inpustream.adaptive nicht. Ich frage mich gerade, ob das ein generelles Problem ist und aktuell auch für die Berliner Bib auftritt.

    Mein Problem besteht nicht im Login, der klappt. Nachher beim tatsächlichen Abspielen geht es nicht.

    Das Berliner Login ist kaputt, weil anscheinend die Seitenstruktur auf filmfriend.de geändert wurde.

    Es müsste gehen, wenn man folgende Zeile in der default.py Datei des Plugins

    Python: default.py
    newlink=re.compile('window.location="(.+?)"\' id="login-berlin"', re.DOTALL).findall(content)[0]


    ersetzt durch

    Python: default.py
    newlink=re.compile('case \'berlin\':\s+window.location="(.+?)"', re.DOTALL|re.MULTILINE).findall(content)[0]

    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.