My thoughts on Slackware, life and everything

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

30 Comments

  1. Mike Langdon (mlangdn)

    Thanks Eric – works just fine immediately after installation.

  2. p431i7o

    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

  3. Greg

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

  4. Francis

    Working fine after update! Thanks so much Eric!

  5. cwizardone

    Works very well!
    Thanks.

  6. Arthur

    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!

  7. alienbob

    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.

  8. Thaddius

    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.

  9. alienbob

    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.

  10. alienbob

    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.

  11. ProfessorKaos64

    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?

  12. alienbob

    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…

  13. Strath

    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?

  14. alienbob

    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.

  15. Strath

    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?

  16. alienbob

    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.

  17. Strath

    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.

  18. alienbob

    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).

  19. Strath

    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 =)

  20. alienbob

    > 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.

  21. Strath

    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!

  22. Strath

    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…

  23. alienbob

    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.

  24. Strath

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

  25. alienbob

    You’ll work it out.

  26. Strath

    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!

  27. Nate

    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. 😉

  28. alienbob

    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.

  29. Rahul Rajput

    Great solution. Widevine Content Decryption Module (CDM) should be installed if we want to play DRM protected videos. This generally its need when we play Netflix, prime video etc. Streaming channels. This the great way to protect media from pirated versions.
    But some time its create problems. If our browser didn\’t have WidevineCDN.
    I think you must try following command to get rid of.
    type following command
    cd Downloads
    To enter your downloads folder.

    Step 3
    Type:
    tar -xvf chromium-widevine.tar.gz

    Step 4
    Now you have to change directories into the new directory.
    cd chromium-widevine

    Step 5
    Build your package and follow the prompts
    makepkg -sri

    This will surly fix your problem. And here is the complete article which add some extra value to this article. This guide having best ways to install WidevineCDM in different browsers.

    I hope you like it.
    Thanks

  30. alienbob

    Rahul, thanks for visiting this Slackware blog. However, your feedback has no relevance to Slackware. Your information will probably be applicable to other distros.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 Alien Pastures

Theme by Anders NorenUp ↑