My thoughts on Slackware, life and everything

Tag: widevine (Page 5 of 5)

Watch Netflix video in your chromium browser – this time for real

chromium_icon

I have made change to my Chromium package which some of you will find interesting. As you might know (I wrote about it in an earlier article here on Alien Pastures) Google and Netflix combined their efforts and that resulted in native support in Chrome for the playback of Netflix videos, using the Widevine Content Decryption Module (CDM) which is incidentally also owned by Google. This was all made possible using the Encrypted Media Extensions (EME) in a HTML5 player. Unfortunately, I was not able to find a way to add this Widevine CDM support to my Chromium package – using a similar approach to the way I add support for Flash using the binary libraries taken from the official Chrome RPM.

Then my Slackware buddy ppr:kut pointed me to a discussion in the Chromium bugtracker on Google Code where someone stated he had found the solution. The description was a bit vague, no patches were posted, but the general concept was clear.

I proceeded with updating my SlackBuild for chromium-dev (which is currently at version 41.0.2236.0) and re-writing my not-working widevine patch. That resulted in a new chromium-dev package which reported that a Widevine plugin was available. Alas… when opening a Netflix page and attempting to play a video, this only resulted in the error “M7363-1262-00000000” which seems to have a relation to a mismatch between the Widevine CDM library and the browser. A possible explanation could be that I used the Widevine CDM library from stable Chrome 39.0.2171.95 in that build of the chromium development version 41.

So, my next attempt was to rebuild the stable chromium package (39.0.2171.95) with the Widevine patch, using the Widevine CDM library from the Chrome RPM bearing that same version. And what do you know… success!

I can now watch Netflix video’s in my Slackware chromium browser. How nice is that.

Apparently, having a functional Widevine CDM support will allow you to watch Youtube Movies as well, but since I already pay for Netflix I did not want to test these Youtube rentals. Another test which failed was my attempt to watch television on horizon.tv, the content streaming network of my provider (UPC/Liberty Global). Even with a UserAgent spoofer and all browser cookies removed, that site still detected that I was visiting using a Chrome/Chromium browser and kept presenting an annoying popup to force me to switch to a different browser because Chrome does not support Silverlight anymore (on Mac OSX and Windows 64-bit at least, remember their NPAPI depreciation). No way around that, even though I was fairly sure that Horizon TV also used Widevine for Digital Rights Management (DRM) in the past. Guess I still have to use Firefox with Pipelight for that, then.

What do you need in order to watch Netflix in Chromium on Slackware (14.1 and -current)?

  • Just two packages are needed: chromium and chromium-widevine-plugin. The latest chromium package was rebuilt to enbable support for Widevine. The chromium package itself does not contain any proprietary binaries. The chromium-widevine-plugin package is what contains the “libwidevinecdm.so” library which was extracted from the official binary Chrome RPM – this is proprietary software.
  • It is not necessary to use a UserAgent spoofer. Netflix works out of the box.
  • Make sure your mozilla-nss package has at least version 3.16.4 (Pat Volkerding upgraded all mozilla-nss packages in recent Slackware releases for this reason)
  • In Netflix Playback-settings chose HTML5

Note 1:

No more changes are needed to the file “/etc/default/chromium”. The plugin is announced to chromium by means of the “libwidevinecdmadapter.so” library which is built from the Open Source code in the chromium tarball, but only in the presence of the proprietary “libwidevinecdm.so”. Installing or upgrading the chromium-widevine-plugin package will show a few lines of warning if it detects that you still have the old configuration block enclosed by “START chromium-widevine-plugin” and “END chromium-widevine-plugin“. You should delete that block now.

Note 2:

If you don’t care about Netflix or don’t want to install any non-free software, then the chromium package is still OK for you – just don’t install chromium-widevine-plugin and you’ll be fine. If you even want to get rid of any hint of Widevine support you can always recompile the package with the variable “USE_CDM” inside the chromium.SlackBuild set to zero (0). That will prevent the creation of the (open source) adapter library “libwidevinecdmadapter.so”.

Have fun! Eric

How to make UPC Horizon TV work in Linux

pipelight-logo
In an earlier article I have explained how you can use pipelight to run a Windows-based browser plugin seamlessly in your Linux browser. This solution makes use of a modified Wine under the hood. This way, you can for instance display web sites using Microsoft’s SilverLight technology (many dutch schools use a proprietary SilverLight based pupil management system), or use the Windows Flash Player which is much more up to date than Adobe’s plugin for Firefox.

The pipelight plugin loader also supports the Widevine content decryption module, which is used to decrypt a DRM-protected Flash video stream. Widevine is used by UPC‘s service to subscribers to watch television channels on your computer: Horizon TV. I pride myself to be the initiator for getting widevine support added to pipelight because I am a UPC subscriber, but when it actually got added, I found out that I could not make it work with Horizon TV. Bummer!

After a lot of frustration I accidentally stumbled across a thread on the UPC community forum, where cause of the issue was explained and the solution was provided.

The widevine plugin as installed by pipelight is actually too new! In order to make Horizon TV work in a Linux browser, you need an older version of the Widevine DLL. That older version is still available for download, but to be safe I made a copy.

These are the steps you need to perform to make it work: Download the Widevine plugin for Firefox (an XPI file); unzip it in order to extract the DLL file it contains; and then copy the DLL file into the wine-pipelight prefix where Widevine has been installed – this will overwrite the newer (but non-functional) version of the DLL with the older (but working) version.

$ wget https://dl.google.com/widevine/6.0.0.6678/WidevineMediaOptimizer_Win.xpi
$ unzip  WidevineMediaOptimizer_Win.xpi plugins/npwidevinemediaoptimizer.dll
$ cp -p plugins/npwidevinemediaoptimizer.dll \
    ~/.wine-pipelight/drive_c/windows/system32/

Thanks to Theo Band for the instructions! With these three commands, I was able to watch television in my Slackware Firefox browser.

upc_horizon_tv

Hope this helps some of you. Eric

 

Newer posts »

© 2024 Alien Pastures

Theme by Anders NorenUp ↑