Installs Widevine DRM for Helium Browser on Arch Linux.
Helium does not ship Widevine due to licensing costs. This script downloads the
official Google Chrome .deb package, extracts only the Widevine CDM binary,
formats it for Chromium's component updater, and patches your desktop entry so
DRM content plays without launching from the terminal.
Tested on Arch Linux and Helium 0.16.x with GNOME Wayland.
- Downloads
google-chrome-stable_current_amd64.debfrom Google's servers. - Extracts
WidevineCdm/usingarandbsdtar(both in base Arch). - Parses the CDM version from
manifest.json. - Installs the CDM to
~/.config/net.imput.helium/WidevineCdm/<version>/. - Writes the
latest-component-updated-widevine-cdmhint file. - Patches
helium.desktopwith--widevine-cdm-pathand--widevine-cdm-versionflags. - Cleans up all temporary files.
- Arch Linux
- Helium Browser installed (
helium-browser-binfrom cachyos repositories or aur) - Helium opened at least once (generates config directory)
binutils(providesar) - installed automatically if missinglibarchive(providesbsdtar) - in basecurl,grep,sed- in base
git clone https://github.com/fernbacher/widevine-helium.git
cd widevine-helium
chmod +x install-widevine-helium.sh
./install-widevine-helium.sh-h, --help Show help
-v, --verbose Verbose output
-d, --dry-run Show actions without executing
-V, --version Print version
# Standard install
./install-widevine-helium.sh
# Verbose install
./install-widevine-helium.sh --verbose
# Preview without making changes
./install-widevine-helium.sh --dry-runChromium forks load Widevine via the Component Updater. The updater expects:
~/.config/<browser>/WidevineCdm/<version>/manifest.json
~/.config/<browser>/WidevineCdm/<version>/_platform_specific/linux_x64/libwidevinecdm.so
~/.config/<browser>/WidevineCdm/latest-component-updated-widevine-cdm
This script creates that exact structure and writes the hint file so the updater recognizes the locally installed CDM. It then patches the desktop entry with explicit launch flags as a fallback, since some Chromium forks disable the component updater at compile time.
After running the script:
- Close Helium completely.
- Open Helium normally (from app grid, rofi, or taskbar).
- Go to
https://listen.tidal.comand play a track. - Or test with
https://bitmovin.com/demos/drmfor general DRM verification.
If playback works, the installation is successful.
# Remove the Widevine CDM directory
rm -rf ~/.config/net.imput.helium/WidevineCdm
# Restore the original desktop file
rm -f ~/.local/share/applications/helium.desktop
rm -f ~/.local/share/applications/helium.desktop.bak
# Update desktop database
update-desktop-database ~/.local/share/applicationsRe-run the script. It detects the new Chrome version, installs the updated CDM, removes old version directories, and re-patches the desktop entry.
./install-widevine-helium.shScript says "Helium config directory not found"
Open Helium once, close it, then re-run the script. The config directory
~/.config/net.imput.helium/ is created on first launch.
Tidal shows error S6001 after install
The component updater may be disabled in your Helium build. Launch manually:
helium-browser \
--widevine-cdm-path="$HOME/.config/net.imput.helium/WidevineCdm/$(cat ~/.config/net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm)/_platform_specific/linux_x64/libwidevinecdm.so" \
--widevine-cdm-version="$(cat ~/.config/net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm)"If this works, the desktop patch failed. Check ~/.local/share/applications/helium.desktop
and verify the Exec= lines contain the flags.
"Failed to download Chrome"
Check your network connection and DNS. Google blocks some regions and VPNs.
Script fails on ar or bsdtar
Install the missing tools:
sudo pacman -S binutils libarchive- The script only downloads from
https://dl.google.com. - No system files are modified. All changes are in
~/.config/and~/.local/share/applications/. - The Widevine binary is proprietary and owned by Google. This script does not redistribute it.
- No AUR packages are installed. No Flatpak. No sudo required for the DRM itself.
MIT. Widevine CDM binary remains property of Google LLC.