[SOLVED] Netflix error code: M7063-1913 - and how I got it running natively in Chrome


This is a small complement to the excellent tutorial on running Netflix natively in openSUSE, posted by joefidler here: https://forums.opensuse.org/showthread.php/500190-Netflix-HTML5-streaming-natively-on-Chrome (thanks joefidler!)

There’s a lot of comments there and in the net about chrome versions and agent strings, due to the evolving nature of DRM support, which might be a bit confusing for the casual user - I know it was for me. There’s also some details I think are worth mentioning regarding plugins, configurations and libraries versions. So I thought it might be worth posting in detail what I learned (not much ;-)) and how I did it.

I chose to post it here because I think this title will help people searching for this or similar errors, which seem to be quite common. I had tried many combinations of chrome versions, agent strings and configurations, in both oS 12.3 and 13.1 64-bit, and got it every time. If this comes out any good I’ll post a link to here in the tutorial. I’ve just posted there about the main problem, lib versions.

This is what I did in openSUSE 13.1 64-bit KDE 4.11 installed in a HP laptop.

1) Error code: M7063-1913

If you alread tried Netflix natively in Chrome and got this error instead of a playing movie, it’s (probably) because of mismatched Network Security Service libraries versions.

I struggled with this until I saw this post http://www.phoronix.com/forums/showthread.php?104832-It-s-Now-Possible-To-Play-Netflix-Natively-On-Linux-Without-Wine-Plug-Ins&p=433368#post433368 on Phoronix, and also https://lists.ubuntu.com/archives/ubuntu-devel-discuss/2014-September/015048.html about the nss libraries version, which should be 3.16.2 or above. Always listen to your friendly neighborhood engineer, I say.

And, guess what, some of my libraries had mismatched versions. So I entered Yast Software Management, searched for *Network Security Service *and got this list (actually with zypper, but if you’re not very familiar with the terminal Yast will do fine) in the 12.3 machine:

:~> zypper search -dis Network\ Security\ Service
Carregando os dados do repositório...
Lendo os pacotes instalados...

S | Nome              | Tipo   | Versão      | Arquitetura | Repositório         
i | libfreebl3        | pacote | 3.16-1.39.1 | x86_64      | openSUSE-12.3-Update
i | libfreebl3-32bit  | pacote | 3.16-1.39.1 | x86_64      | openSUSE-12.3-Update
i | libsoftokn3       | pacote | 3.16-1.39.1 | x86_64      | openSUSE-12.3-Update
i | libsoftokn3-32bit | pacote | 3.16-1.39.1 | x86_64      | openSUSE-12.3-Update
i | mozilla-nss       | pacote | 3.16.3-1.1  | x86_64      | (Pacotes do sistema)
i | mozilla-nss-32bit | pacote | 3.16-1.39.1 | x86_64      | openSUSE-12.3-Update

And basically the same in the oS 13.1 laptop.

So now update these libs. I used the ones from Mozilla and updated to version 3.17.1. You can add the Mozilla community repo from Yast Software repositories. For openSUSE 13.1 64 bit it is http://download.opensuse.org/repositories/mozilla/openSUSE_13.1/

With everything else below done right I still got the error message until I updated these libraries.

2) Install google-chrome https://www.google.com/chrome/browser/

I had this repo already configured in Yast Software repositories: http://dl.google.com/linux/chrome/rpm/stable/x86_64
I’ve tried before with the stable version (37.0.something) and it didn’t work, probably because of the external libraries issue above, not because of Chrome 37 itself.

Anyway, I went for the beta version 38.0.2125.66, and installed it from Yast software manager.

If you choose to download the rpm from Google, note that they don’t put the version in the file name or anywhere easy to see, but you’ll get the current one, the same as from the repo - there’s only one version of each (stable/beta/unstable) there.

3) Install and configure User Agent Switcher https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg

Then I right-clicked on the masked guy icon on the right of the address bar, chose options, filled the New User-Agent fields like this:

New User-Agent name: Netflix (just a name, use what you want)
New User-Agent string:

Mozilla/5.0 (Windows NT 6.3, Win64, x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.66 Safari/537.36

The line above is what matters. It is just one line, not broken. Be careful with spaces and parenthesis. I used the same as the default, only changing (X11; Linux x86_64) on the default string for (Windows NT 6.3; Win64; x64).

To see the default agent string, type chrome://version and ENTER in the address field, where you usually type a site address.

Many people reported that they had to use a higher chrome version (39.x) in the string, others that it should be the same. I just used the same.

Group:** Chrome** (this is filled in automatically by the browser extension)

Append?: choose Replace in the little drop-down menu

Indicator flag: NFX (this text will be superimposed on a red rectangle over the masked guy button when the switch to it’s agent string is active. Use what you want, with two or three letters is best, I think)

Still in this configuration page, you can set the switch to be automatic whenever you enter a given site, in the Permanent Spoof List option in the left. Click it, fill the domain field with www.netflix.com and choose the name you gave to the new user agent - in my case, Netflix - in the dop-down menu.

4) Check the Widevine plugin

Type chrome://plugins and ENTER in the address field, and make sure that the Widevine plugin is recent and active (it should be active by default, if not, activate it).
In my installation it is Widevine Content Decryption Module - Version:
I also ticked the “always allowed” checkbox, it seems that this avoid a request to start it everytime it is needed at Netflix start. I didn’t test this, but as I’m using the browser just for Netflix - I’m a FF man, myself - it shouldn’t be an issue. For me, I mean…

This plugin is needed for Netflix to work, it provides support to DRM media.5) Enable HTML5 playback in Netflix Preferences

If you forget to do this, or if Widevine is disabled or missing, or in the NSS libs are old, you’ll either get a prompt to install Microsoft’s Silverlight plugin or the error message.

Log in Netflix, click in your login name at the top right and choose Your Account, then in Playback Configuration (or something similar, I’m translating from Portuguese here), tick the checkbox Prefer HTML5 playback instead of Silverlight.

That’s it. Make sure the Netflix User Agent is active and you’re good to go. Or at least I was :-).

A final note on CPU usage:

With the pipelight plugin, a wrapper that allow Firefox to use Silverlight, in a HP laptop with a core i3 and intel HD video connected via HDMI to 1080p HD TV, full screen playback is choppy and the CPU stay at 100% usage.

With the native DRM plugin (Widevine) in Chrome, playback is smooth and the CPU stay between 25 and 30%. It’s simply GREAT!

Great work putting this together, thank you! I just want to add a personal issue I had with the error in hopes it might add to this and help someone. I’m currently on Ubuntu 14.04 LTS and apparently I needed to update my libnss3 package. Here’s a link on how to do that, under the “Ubuntu 14.04 LTS Only” heading, no need to do the rest if you just have this error. Just download the zip file, extract to the /home directory and run that command line, and restart Chrome and it should work fine. lol! Again, thank you!

Excellent writeup brunomcl - thanks for your work and documenting this. :slight_smile:
As an update Netflix now allow Chrome + Linux, so the user-agent switch is no longer required. Chrome 39 on OpenSUSE 13.2 seems to work well.
Cheers, Joe.

I finally got around to install chrome-stable (currently 39.0.2171.99 64-bit) in a new openSUSE 13.2 64-bit KDE4, and netflix works OOTB, no tweaks necessary.

So all of the above is superseded, and that’s a good thing.