script.module.inputstreamhelper
script.module.inputstreamhelper copied to clipboard
inputstreamhelper downloaded wrong arch of libwidevinecdm.so?
I started the Netflix addon after a long time, and I was prompted to update libwidevinecdm, so I followed the wizard. Once finished, I couldn't play the stream and I found this in the log file:
2025-05-22 16:52:18.232 T:15226 info <general>: Creating InputStream
2025-05-22 16:52:18.359 T:15226 warning <general>: AddOnLog: inputstream.adaptive: Warning "inputstream.adaptive.manifest_type" property is deprecated and will be removed next Kodi version, the manifest type is
now automatically detected.
If you are using a proxy remember to add the appropriate "content-type" header to the HTTP manifest response
See Wiki page "How to provide custom manifest/license" to learn more about it.
2025-05-22 16:52:18.368 T:15226 info <general>: AddOnLog: inputstream.adaptive: [Repr. chooser] Resolution set: 1920x1080, max allowed: 1920x1080, Adjust refresh rate: 0
2025-05-22 16:52:18.373 T:15226 error <general>: AddOnLog: inputstream.adaptive: [WV-CDM-Library] Initialize: Failed to load library: /storage/.kodi/cdm/libwidevinecdm.so: wrong ELF class: ELFCLASS64
2025-05-22 16:52:18.373 T:15226 error <general>: AddOnLog: inputstream.adaptive: Unable to load widevine shared library (/storage/.kodi/cdm/libwidevinecdm.so)
2025-05-22 16:52:18.373 T:15226 error <general>: AddOnLog: inputstream.adaptive: PreInitializeDRM: OpenDRMSystem failed
I checked the new library, it seems to be arm 64-bit:
libwidevinecdm.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=109fbe02a16653d8c9d55344548a1096c5a2583f, stripped
On an identical system (without updating the library), it shows:
/storage/.kodi/cdm/libwidevinecdm.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=e7680c2cd57cd5c8210706aebe5ead67278ec5ae, stripped
I'm running CoreELEC on an Odroid C-4
# uname -a
Linux htpc1 4.9.269 #1 SMP PREEMPT Sun Jan 19 10:25:02 CET 2025 aarch64 GNU/Linux
# head .kodi/temp/kodi.log
2025-05-22 16:22:03.754 T:2806 info <general>: -----------------------------------------------------------------------
2025-05-22 16:22:03.754 T:2806 info <general>: Starting Kodi (21.2 (21.2.0) Git:0452c5d37b47ab4470d5b3283498321a02d626c5). Platform: Linux ARM 32-bit
2025-05-22 16:22:03.754 T:2806 info <general>: Using Release Kodi x32
2025-05-22 16:22:03.754 T:2806 info <general>: Kodi compiled 2025-01-19 10:31:32 by GCC 13.2.0 for Linux ARM 32-bit version 4.9.255 (264703)
2025-05-22 16:22:03.754 T:2806 info <general>: Running on Hardkernel ODROID-C4 with CoreELEC (official): 21.2-Omega, kernel: Linux ARM 64-bit version 4.9.269
2025-05-22 16:22:03.754 T:2806 info <general>: FFmpeg version/source: 6.0.1
2025-05-22 16:22:03.754 T:2806 info <general>: Host CPU: Amlogic S905X3 rev b, 4 cores available
2025-05-22 16:22:03.754 T:2806 info <general>: ARM Features: Neon enabled
2025-05-22 16:22:03.754 T:2806 info <general>: special://xbmc/ is mapped to: /usr/share/kodi/
2025-05-22 16:22:03.754 T:2806 info <general>: special://xbmcbin/ is mapped to: /usr/lib/kodi
Same problem since I updated the widevine addon two days ago in Libreelec Kodi on a RapsberryPi 2 (for the Retrospect plugin). Error log shows Failed to load library: /storage/.kodi/cdm/libwidevinecdm.so: wrong ELF class: ELFCLASS64
RaspberryPi 2 (uname -a: Linux LibreELEC 6.6.70 #1 SMP Mon Jan 20 00:43:39 UTC 2025 armv7l GNU/Linux) Kodi 21.2 Omega inputstream v 0.7.0
It seems to have picked the wrong ChromeOS recovery image to extract the libwidevinecdm.so lib.
There is no older version I can revert back to.
Regards,
Paul
I have the same issue.
I need the 32-bit binary, but inpustream.helper is downloading the 64-bit one by mistake.
I'm using webOS which is 32-bit OS using softfp with neon.
025-05-27 09:46:16.371 T:7694 error <general>: AddOnLog: inputstream.adaptive: [WV-CDM-Library] Failed to load library: /media/developer/apps/usr/palm/applications/org.xbmc.kodi/.kodi/cdm/libwidevinecdm.so: wrong ELF class: ELFCLASS64
uname -a
Linux LGwebOSTV-bedroom 5.4.268-320 #1 SMP PREEMPT Mon Jun 17 01:25:25 UTC 2024 aarch64 GNU/Linux
file libwidevinecdm.so
libwidevinecdm.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=109fbe02a16653d8c9d55344548a1096c5a2583f, stripped
getconf LONG_BIT
32
kodi.log
2025-05-27 09:19:39.830 T:4833 info <general>: -----------------------------------------------------------------------
2025-05-27 09:19:39.830 T:4833 info <general>: Starting Kodi (22.0-ALPHA1 (21.90.700) Git:20250508-83f8baabec). Platform: webOS ARM 32-bit
2025-05-27 09:19:39.830 T:4833 info <general>: Using Release Kodi x32
2025-05-27 09:19:39.830 T:4833 info <general>: Kodi compiled 2025-05-09 by GCC 12.2.0 for webOS ARM 32-bit version 3.10.19 (199187)
2025-05-27 09:19:39.830 T:4833 info <general>: Running on webOS TV 9.2.1, kernel: Linux ARM 64-bit version 5.4.268-320
2025-05-27 09:19:39.830 T:4833 info <general>: FFmpeg version/source: 7.1.1-Kodi
2025-05-27 09:19:39.830 T:4833 info <general>: 4 CPU cores available
2025-05-27 09:19:39.830 T:4833 info <general>: ARM Features: Neon enabled
Same issue here. I am running coreELEC with Kodi 21.2 on an Odroid N2 (Linux system with arm architecture). It currently has a 64bit Widevine version, while it should be a 32bit. Temporarily solved it as follows: Check the image file overview: https://dl.google.com/dl/edgedl/chromeos/recovery/recovery.conf Download the image for an Acer R13 Chromebook: https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_15886.44.0_elm_recovery_stable-channel_mp-v6.bin.zip The .zip file contains a .bin file. Extract this. Open the .bin file with 7-zip file manager. It contains approx. 10 .img files. Extract: 2.ROOT-A.img Open 2.ROOT-A.img and extract this file: opt/google/chrome/WidevineCdm/_platform_specific/cros_arm64/libwidevinecdm.so
SSH into the Odroid device and copy this file to: \storage.kodi\cdm\libwidevinecdm.so (overwriting the existing file) Now reboot and test.
I found that inputstreamhelper keeps several backups. You can restore them via de Configuration option of the addon. I got an error message during the restore but after a reboot it was working again. Easiest temp solution.
Also affects me, on Raspberry Pi 4 with LibreELEC.
Also affects me, on Raspberry Pi 4 with LibreELEC.
Same here. For the temp fix I basically followed this post https://github.com/emilsvennesson/script.module.inputstreamhelper/issues/589#issuecomment-2925506156 by @koekiemonster99 An AI told me that Acer R13 Chromebook fits for the Pi4 LibreELEC as well.
In LibreELEC and when InputStream Helper is installed (which I assume people ending up here have), there is actually no need unzip several times down to the partitions and extract the lib manually.
Some more details, for those who struggled, like me (click to expand) ...
Just download the chromeos zip and bring it to your kodi device here:> LibreELEC (official): 10.0.4 (RPi4.arm)
> Linux ... 5.10.110 #1 SMP Sat Jan 7 12:15:32 UTC 2023 aarch64 GNU/Linux
I did it directly within the my LibreELEC device (enable ssh and log on with the root user):
mkdir /storage/downloads
# I recommend to use such a 'near /'-path as the AddOn cannot access a hidden path like .kodi -
# e.g. the InputStream Helper AddOn usually stores the chromeos.zip downloads under
# /storage/.kodi/userdata/addon_data/script.module.inputstreamhelper/
cd /storage/downloads
wget https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_15886.44.0_elm_recovery_stable-channel_mp-v6.bin.zip
As explained you can also download on your PC and transfer the zip on whatever way to the Kodi device.
Now (via Kodi UI) -> Open the InputStream Helper AddOn Konfig.
System > AddOns > User AddOns > Program AddOns -> InputStream Helper (open settings / konfig - don't remember the name ) Go to "Debug" and Select Install Widevine
Per default it would download and install the chromeos from the url you provided (one setting below -> so actually you can also copy in the URL and skip the whole download or transfer steps). Anyway I had it on my device already, so choose no, when you start the install dialog. It will then allow you, to select a zip manually. Go to '/storage/downloads' and select 'chromeos_15886.44.0_elm_recovery_stable-channel_mp-v6.bin.zip' let it install.
When it was finished, it asks for an update. Abort that!, otherwise you will get the latest non working one installed again.
I would disable the InputStream Helper AddOn for now. Also in the Apps like Disney+, Netflix, RTL+ (whatever you use and needs widewine) look for a setting to disable the widevine update/check, otherwise you will get bothered (and potentially trigger the update again), when you start the AddOn or a stream.
Remember all settings you disabled!
-> Once the issue is fixed, you want to use the automatic update
of widevine again.
The hana board uses aarch64 binaries, instead of arm binaries, see: https://www.chromium.org/chromium-os/developer-library/reference/development/developer-information-for-chrome-os-devices/
I selected Acer Chromebook Spin 311 (Jacuzzi, arm): https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_16267.51.0_jacuzzi_recovery_stable-channel_JacuzziMPKeys-v18.bin.zip
Same result :-(
More image versions: https://chromiumdash.appspot.com/serving-builds?deviceCategory=ChromeOS
I selected an older model: AOpen Chromebox Mini I extracted the libwidevinecdm.so from https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_14388.61.0_veyron-fievel_recovery_stable-channel_fievel-mp.bin.zip
It works, but the version number is older.
Does Google build new images for 32-bit ARM yet?
Today I'd try to set up a RPI 4 with OSMC. Got VRTMax and Goplay working, but when Inputstream Helper is asking to install Widevine it keeps crashing. Tried to install the version mentioned above (https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_15886.44.0_elm_recovery_stable-channel_mp-v6.bin.zip), but keeps asking for update, when ignoring this update playback is failed. When disabling Inputstream Helper playback fails. Any help/suggestions? Thanks
Yesterday's update installed the 64bit version for me as well:
$ file libwidevinecdm.so
libwidevinecdm.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=109fbe02a16653d8c9d55344548a1096c5a2583f, stripped
Expected was
$ file libwidevinecdm.so
libwidevinecdm.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=e7680c2cd57cd5c8210706aebe5ead67278ec5ae, stripped
Maybe the device selector in https://github.com/emilsvennesson/script.module.inputstreamhelper/blob/master/lib/inputstreamhelper/widevine/arm.py selects an inappropriate image? The config map in https://github.com/emilsvennesson/script.module.inputstreamhelper/blob/master/lib/inputstreamhelper/config.py#L91 already mentions that "elm" and "hana" might be "probably 64bit soon", so maybe that's what happened?
Environment: Hardware: Raspberry Pi 3B+ Distribution: LibreELEC (official): 12.0.2 (RPi2.arm) uname -a: Linux kodi 6.6.70 #1 SMP Mon Jan 20 00:43:39 UTC 2025 armv7l GNU/Linux
I selected an older model: AOpen Chromebox Mini I extracted the libwidevinecdm.so from https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_14388.61.0_veyron-fievel_recovery_stable-channel_fievel-mp.bin.zip
It works, but the version number is older.
I agree. This file works for a Pi 3 (32 bit)
cat /sys/firmware/devicetree/base/model
Raspberry Pi 3 Model B Plus Rev 1.3
uname -a
Linux MediaCentre 6.6.70 #1 SMP Mon Jan 20 00:43:39 UTC 2025 armv7l GNU/Linux
Note libwidevinecdm.so is in 2.ROOT-A.img\opt\google\chrome\
All I have to solve now is why ViwX ignores the input helper maximum bandwidth setting. (I have a slow internet connection and bandwidth is limited)
This issue should be solved in version 0.8.1: https://github.com/emilsvennesson/script.module.inputstreamhelper/releases/tag/v0.8.1