Streaming DRM protected content
Digital rights management (DRM) is a system to prevent piracy of copyrighted material. It is not possible to access DRM protected content with only open source software. DRM is highly controversial which does not matter for this article.
Firefox
Disable the eme-free
USE flag for www-client/firefox if enabled and emerge Firefox. When using the www-client/firefox-bin package, no eme-free
USE flag exists and therefore does not need to be disabled. Now emerge Firefox:
root #
emerge --ask www-client/firefox
For Firefox to download the plugins required to decrypt DRM content, go to: Settings → General → Digital Rights Management (DRM) Content and tick Play DRM-controlled content. When a video player which plays DRM content is opened, Firefox will start downloading the required plugins. This process might take a few minutes. Refresh the page to check if the plugins were successfully downloaded.
Chromium and Google Chrome
See bug #547630.
Enable the widevine
USE flag for www-client/chromium, as well as www-plugins/chrome-binary-plugins in /etc/portage/package.use. This can be done by adding these lines to the file:
www-plugins/chrome-binary-plugins widevine
www-client/chromium widevine
Next emerge the packages:
root #
emerge --ask www-plugins/chrome-binary-plugins www-client/chromium
If Google Chrome is used instead of Chromium, replace www-client/chromium
with www-client/google-chrome
in /etc/portage/package.use and emerge www-client/google-chrome instead of www-client/chromium:
root #
emerge --ask www-client/google-chrome
Browsers installed with Flatpak
Any browser that is installed through Flatpak and that supports DRM decryption should not require any extra steps related to Gentoo to play DRM content.
Troubleshooting
Disney+ not working
There have been multiple incidents where it was not possible to stream anything from Disney+ on Linux because of a new DRM.[1][2] This issue can be bypassed by switching the browser's user agent so that it imitates Microsoft Windows. There are browser extensions for browsers using Blink (e. g. Chromium) and Gecko (e. g. Firefox) as their browser engine.[3] It is also possible to change the browser's user agent to anything in Firefox and browsers based on Firefox. This is not advised as it can lead to fingerprinting.
LibreWolf not downloading DRM plugins
For older versions of LibreWolf are extra steps required to get the DRM plugins downloading.[4] A few lines need to be commented out. If LibreWolf was installed using Portage, edit /usr/lib/librewolf/librewolf.cfg. If LibreWolf was installed using Flatpak, edit ~/.local/share/flatpak/app/io.gitlab.librewolf-community/current/active/files/lib/librewolf/librewolf.cfg.
/** [SECTION] DRM */
/** defaultPref("media.eme.enabled", false); // master switch for drm content
* defaultPref("media.gmp-manager.url", "data:text/plain,"); // prevent checks for plugin updates when drm is disabled
* // disable the widevine and the openh264 plugins
* defaultPref("media.gmp-provider.enabled", false);
* defaultPref("media.gmp-gmpopenh264.enabled", false);
*/
Netflix
In Netflix settings navigate to: Your Account → Your Profile → Playback Settings, ensure that "Prefer HTML5 player instead of Silverlight" is checked (it should be by default; just verify).