Main menu:

Sponsoring

Please consider a small donation:

 

 

Or you can donate bitcoin:

 

Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank

Fame

FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.

Search

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 235 other subscribers

My Favourites

Slackware

Calendar

September 2016
M T W T F S S
« Aug    
 1234
567891011
12131415161718
19202122232425
2627282930  

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

RSS Slackware64-current

Meta

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

Comments

Comment from Mike Langdon (mlangdn)
Posted: January 2, 2015 at 13:32

Thanks Eric – works just fine immediately after installation.

Comment from p431i7o
Posted: January 2, 2015 at 14:06

Great! Thanks Eric!
I was waiting for this, recently I had some incidents with chromium’s 38 and 39 (after upgrading my slackware current)
But was because I forgot to upgrade your multilibs packages (specially mesa) all turned weird… But now works flawlessly smooth

Comment from Greg
Posted: January 2, 2015 at 16:54

Thanks Eric. I can now ditch Chrome and use Chromium.
Superb work.

Comment from Francis
Posted: January 3, 2015 at 12:17

Working fine after update! Thanks so much Eric!

Comment from cwizardone
Posted: January 4, 2015 at 01:27

Works very well!
Thanks.

Comment from Arthur
Posted: January 5, 2015 at 02:41

Why….. why I didn’t read this post before reinstall the Slackware today….. I installed the Google-Chrome :P!
Great News Eric, Thank You for all your jobs :D!

Pingback from Alien Pastures » New Chromium now supports Netflix natively without Wine plugins
Posted: January 9, 2015 at 13:15

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

Pingback from Netflix nativo en google Chormium | Slackware México
Posted: January 14, 2015 at 18:14

[…] Pero de esta tarea ya se encargo el señor alien. […]

Comment from alienbob
Posted: March 10, 2015 at 22:09

Oh boy… these Ubuntu nuts really don’t know the difference between Arch and Slackware! Is it because we use SlackBuild scripts and Arch uses PKGBUILD? They are indeed hard to distinguish. Should I mention the word SLACKWARE more perhaps? SLACKWARE!

See http://forum.odroid.com/viewtopic.php?f=112&t=10891 and weep.

Comment from Thaddius
Posted: May 2, 2015 at 05:29

I am a completely new to Linux/Ubuntu. I have used Windows my entire life. I purchased a Linux machine with Ubuntu and I am trying to get NetFlix to work. Can someone please provide step by step instructions on how to “add” to chromium the code to make it work.

Comment from alienbob
Posted: May 2, 2015 at 09:15

Thaddius this is a Slackware blog.
No one in the Ubuntu community has taken the trouble to compile Chromium with Widevine support.
You can examine my build script to find out how I do it.

Comment from alienbob
Posted: May 2, 2015 at 09:47

Thaddius, I found this comment, posted half an hour ago on StackExchange: http://unix.stackexchange.com/a/199980
Apparently there is a PPA for a beta build of Chromium with Widevine enabled. Though I do not see in the code where they patch the build to support Widevine. You can always try and see what happens.

Comment from ProfessorKaos64
Posted: May 14, 2015 at 01:00

I used gzip to convert the .txz package to .tgz. I then used Alien to make a .deb out of that. Both packages installed fine, but they crash on Debian 7 Wheezy. Any chance you can help?

Comment from alienbob
Posted: May 14, 2015 at 10:42

ProfessorKaos64, I do not run Debian myself and the report “it crashes” is not enough to make reasonable assumptions about what is happening. Try to debug the start of the program using strace, gdb etcetera…

Comment from Strath
Posted: August 11, 2015 at 17:39

I`m running Slackware14.1, both chromium44 and its respectively widevine plugin were installed and reinstalled, but I`m still getting “Error Code: M7063-1913” when trying to watch Netflix… I already upgrade mozilla-nss to version 3.19 but it still nor working…By any chance you can assist me?

Comment from alienbob
Posted: August 12, 2015 at 08:01

Strath – how did you install that version of mozilla-nss, by compiling it yourself? Did you install all the patches that are available for Slackware64-14.1 including mozilla-nss-3.19.2?? Installing these patches will get rid of this particular error.

Comment from Strath
Posted: August 18, 2015 at 23:49

Hey, thanks for answering, I’m still on this fight! I have been using the following packages:

# mozzila-nss 3.19.2: http://slackbuilds.org/mirror/slackware/slackware-14.1/patches/packages/mozilla-nss-3.19.2-i486-1_slack14.1.txz

# Compiled Chromium by myself using: http://www.slackware.com/~alien/slackbuilds/chromium/build/

# I don’t remember if I compiled or just installed the txz for widevine, but it was taken from here: http://www.slackware.com/~alien/slackbuilds/chromium-widevine-plugin/

Should I use the Chromium-dev or it doesn’t matter?

Comment from alienbob
Posted: August 19, 2015 at 09:21

Strath, chromium-dev is the development version of Chromium, and it is not guaranteed to be stable. Probably, you need chromium-dev only if you develop software with a dependency on Chromium.

You did not yet answer my question “Did you install all the patches that are available for Slackware 14.1”. Just mozilla-nss is not enough.

Also, try my own pre-compiled chromium package to see if that works. You need to rule out any issue with your self-compiled chromium package first.

Comment from Strath
Posted: August 19, 2015 at 21:01

What do you mean by ALL the patches? I have installed all patches that came on the 14.1 .ISO image so yes I have installed them all and then I installed the multilib packages as well.

I will try the pre-copiled chromium and then I’ll let you know the result. Thanks.

Comment from alienbob
Posted: August 19, 2015 at 21:42

Strath, the DVD ISO image contains ZERO patches. The Slackware release patches can only be found online. See http://slackbuilds.org/mirror/slackware/slackware-14.1/patches/packages/ which is the place where you downloaded mozilla-nss. All those other *.txz and *.tgz files are the rest of the patches you need to download and upgrade to (using upgradepkg of course).

Comment from Strath
Posted: August 19, 2015 at 23:11

Hmmm, it can sounds like a little bit newbie from my side, but those patches are already on my installed cause I will just upgradepkg them, so they are newer versions for the ones included on the DVD, aren’t they? I’m still at work, will upgrade’em as soon as I get home. I REALLY appreciate you effort in helping me with this =)

Comment from alienbob
Posted: August 20, 2015 at 08:31

> but those patches are already on my installed
> cause I will just upgradepkg them, so they are
> newer versions for the ones included on the
> DVD, aren’t they?

What you installed from the DVD are “packages” not “patches”. The packages in http://slackbuilds.org/mirror/slackware/slackware-14.1/patches/packages/ contain security patches for the older versions of those same packages which you installed from the DVD.

Comment from Strath
Posted: August 27, 2015 at 09:35

Hi,

I haven`t had time to download the patches before, so i`m doing it now! in this meanwhile do you think you can give me a help with another question? It is probably not the right topic but…

My eth0 interface is configured with static IP and is working properly, I`m browsing using it actually… but when I use ifconfig eth0 its RX-TX counter are ZERO 0, I`ve tried restarting rc.inet1, rc.inetd, the interface itself and even the computer but it doesn`t increment counters… is there any known issue you are aware about this?

eth0:
[…]
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 47

I`d appreciate your help, thank you!

Comment from Strath
Posted: September 2, 2015 at 15:01

So,a I tried to update the patches and had to format my system… after running pkgupgrade on those patches, it has failed and I wasn`t able to use `ls`, `mv` simple stuffs, system was saying it could`t find them on bin folder…

Comment from alienbob
Posted: September 2, 2015 at 15:55

Strath, that sounds like you upgraded a 64bit system with 32bit packages or the other way round… the non-working “ls” and “mv” and other small utilities is a good indicator of that.

Comment from Strath
Posted: September 2, 2015 at 16:33

Hmm now I`m cufused… I have slackwar64 installed but I installed the multilib packages from alienbob, so which patches should I use now?

Comment from alienbob
Posted: September 2, 2015 at 22:08

You’ll work it out.

Comment from Strath
Posted: September 11, 2015 at 05:48

Yeah I did work it out. Thanks buddy worked like a charm, the quality is not that good, but it is probably my shi* connection… Thank for answering all my questions so fast, hope ya have a good day!

Comment from Nate
Posted: November 6, 2015 at 04:36

Is there any way to get this into my cloudready computer? I tried to install this for my Chromium, but it wouldn’t open. I may be doing something wrong. I may be slightly out of my depth. 😉

Comment from alienbob
Posted: November 6, 2015 at 11:46

Nate, if you are not running Slackware then your question cannot be answered here. I do not know what a “cloudready computer” is, but probably will be running some other OS.

Write a comment