Widevine DRM in Chromium
Why Netflix, Spotify and Prime Video fail in some Chromium builds, what Widevine is, and which builds include it.
You install Chromium, open Netflix, and get an error about your browser not being supported. Nothing is broken. The build simply does not include Widevine.
What it is
Widevine is Google's DRM system. Paid streaming services require it before they will send you video, and it implements the Encrypted Media Extensions the web standard defines for exactly this purpose.
It is closed source. Google distributes it as a compiled binary module, and the licence does not allow it to be redistributed freely. That is why an open-source browser project cannot simply bundle it.
Which services need it
Netflix, Spotify's web player, Amazon Prime Video, Disney+, HBO Max, and most other paid streaming. YouTube does not, nor does most ordinary web video, which is why the problem seems to appear out of nowhere on one specific site.
Which builds include it
| Build | Widevine |
|---|---|
| Hibbiki | Yes |
| Marmaduke | Yes |
| Thorium | Yes |
| RobRich | Yes |
| ungoogled-chromium | No, can be added manually |
| Supermium | No |
| Official snapshots | No |
Every build card on this site shows a Widevine tag, so you can check before downloading rather than after.
Levels, and why quality is capped
Widevine defines three security levels. L1 performs decryption in hardware and is required for HD and 4K. L3 does it in software. Desktop Chromium and Chrome are generally L3, which is why Netflix caps browser playback at 720p on most desktops while a smart TV or phone plays 4K.
This is not a Chromium limitation and switching builds will not change it. If you want 4K Netflix on a desktop, that is a Microsoft Edge and Windows-specific arrangement, not something Chromium can offer.
Adding it to a build that lacks it
It is possible, by copying the Widevine module out of an installed Chrome or a build that has it. The
ungoogled-chromium project documents the process, and on Linux it also needs the --enable-widevine flag.
Two caveats worth taking seriously. The Widevine module and the browser want to be on matching major versions, so this breaks every time you update either one. And you are copying a proprietary component out of one product into another, which the licence does not contemplate.
For most people the better answer is to use a build that ships it. Marmaduke's builds exist precisely for this case: ungoogled patches, but Widevine and the codecs kept.
Checking whether you have it
Open chrome://components and look for Widevine Content Decryption Module. If it is listed with a version
number, you have it. If it is absent, you do not.
chrome://media-internals will show the specific failure when a protected stream refuses to play.