jamieu/plugin.video.mubi

No Film is playing: ERROR: Could not get secure URL for film xxxxxx

fabsmusicjunkie opened this issue · 6 comments

I'm getting the above error on my kodi.
The whole debug error:
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: 'url' Traceback (most recent call last): File "/home/kodi/.kodi/addons/plugin.video.mubi/addon.py", line 46, in <module> plugin.run() File "/home/kodi/.kodi/addons/script.module.kodiswift/lib/kodiswift/plugin.py", line 307, in run items = self._dispatch(self.request.path) File "/home/kodi/.kodi/addons/script.module.kodiswift/lib/kodiswift/plugin.py", line 326, in _dispatch resp = view_func(**items) File "/home/kodi/.kodi/addons/plugin.video.mubi/addon.py", line 30, in play_film mubi_resolved_info = mubi.get_play_url(identifier) File "/home/kodi/.kodi/addons/plugin.video.mubi/resources/lib/mubi.py", line 154, in get_play_url url = json.loads(r.text)["url"] KeyError: 'url' -->End of Python script error report<--
System: Raspberry Pi 3b, OS: Raspbian

I have the same error here with Raspberry pi 3b, LibreElec 8.2.5 and Kodi 17.6

Lars commented

It seems part of the api has changed. the viewing url is not working anymore. Sadly I don-t have any way to rev eng the new url right now to try and help

is there any way i could provide you with some info?

Lars commented

Today I ran Android-x86 in qemu and installed the mubi app on it. I redirected the traffic to mitmproxy (https://mitmproxy.org/) and could intercept normal http and https traffic that way.
However the mubi app didn't accept the certificate offered by mitmproxy, so I guess it provides its own cert. I'll try it again after installing the mitmproxy certificate as a system cert, but I'm not very confident that this will help.

I tried with a system cert, which didn't work either, so I assume the mubi app uses SSL pinning. While it's still possible to circumvent that, this means a lot of work for every API change.
I guess the most pragmatic way would be to go back to parsing the webpage. The Android API was introduced with commit d02ba8d