Hi,
after installing the december update, I could no longer play content which is protected by Widevine DRM on my Raspberry Pi 3.
Log:
22:21:41.247 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: Platform information:
('Linux', 'raspberrypi', '4.9.29-13-osmc', '#1 SMP PREEMPT Thu Dec 21 17:18:07 UTC 2017', 'arm', '')
22:21:41.248 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: jsonrpc payload: {'params': {'addonid': 'inputstream.adaptive'}, 'jsonrpc': '2.0', 'id': 1, 'method': 'Addons.GetAddonDetails'}
22:21:41.248 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: jsonrpc response: {"id":1,"jsonrpc":"2.0","result":{"addon":{"addonid":"inputstream.adaptive","type":"kodi.inputstream"}}}
22:21:41.249 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: jsonrpc payload: {'params': {'properties': ['enabled'], 'addonid': 'inputstream.adaptive'}, 'jsonrpc': '2.0', 'id': 1, 'method': 'Addons.GetAddonDetails'}
22:21:41.250 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: jsonrpc response: {"id":1,"jsonrpc":"2.0","result":{"addon":{"addonid":"inputstream.adaptive","enabled":true,"type":"kodi.inputstream"}}}
22:21:41.250 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: inputstream.adaptive is installed and enabled.
22:21:41.274 T:1386214144 DEBUG: [script.module.inputstreamhelper-0.2.4]: Unsupported Widevine architecture found: arm
The reason is that the InputstreamHelper for some reason reads the system architecture as ‘arm’ instead of ‘armv7l’ (line 1 of the log). This is weird as I get the correct architecture when I run the platform.uname() command by hand.
>>> platform.uname()
('Linux', 'raspberrypi', '4.9.29-13-osmc', '#1 SMP PREEMPT Thu Dec 21 17:18:07 UTC 2017', 'armv7l', '')
As a workaround, I used this patch on ~/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper.py:
--- inputstreamhelper.py 2018-01-11 20:52:18.396650622 +0100
+++ inputstreamhelper_new.py 2018-01-11 20:53:32.546325929 +0100
@@ -128,8 +128,9 @@
if arch in config.X86_MAP:
return config.X86_MAP[arch]
elif 'armv' in arch:
- arm_arch = 'armv' + arch.split('v')[1][:-1]
- return arm_arch
+ return arch[:5]
+ elif arch == 'arm':
+ return 'armv7'
return arch