Native Netflix Linux playback can be enabled in the latest beta and development builds of Google Chrome — no Wine-wrapped Silverlight plugin required.

The day those of us on Linux could log into the world’s most popular video streaming service, and watch movies and TV shows without having to jump through hoops, has been long overdue.

Netflix do not currently provide, offer or support any “official” way to watch content from their service on Ubuntu, Fedora or any other desktop Linux distribution. Subscribers have to use a supported platform, like Windows, Chrome OS or Android, or wrestle with a Wine-based workaround, the successes of which can vary from person to person.

Until now, that is.

netflix ubuntu
Oodiful news.

Why It Works Now: DRM

It’s now possible to stream video content from Netflix on a Linux desktop natively in recent development builds of Google Chrome. How?

Earlier this year the web standards body the ‘World Wide Web Consortium’ (commonly known as the W3C) controversially pushed forward with plans to introduce support for protected content (‘DRM’) through HTML5 Video through the Encrypted Media Extension specification.

Google describes EME as “a JavaScript API that enables web applications to interact with DRM systems, in order to allow playback of encrypted media.” This works without the need to hand off to or make use of bloated third-party plugins like Silverlight or Adobe Flash.

Back in June Netflix announced support for HTML5 video playback on Windows 8.1 and Safari (Yosemite only) using EME. With Google being one of the chief backers of this plugin-free DRM approach, Chrome natively supports EME.

Put two and two together and you get…showtime!

The workaround detailed below is no longer required — see here for more details.

By spoofing the user agent of an official supported EME platform (e.g., Windows 8.1) in Chrome for Linux we can get fuss-free totally native playback of movies and TV shows — for now, at least.

And while few of us like ‘Digital Rights/Restrictions Management’, most of us have come to accept that until the entertainment conglomerates devout in their pursuit of its use move with the times, we don’t have an awful lot of leeway. We have the choice to push back in choosing more open alternatives, but until then we can at least commit begrudgingly.

How To Watch Netflix on Linux

‘It’s not quite as easy as opening Netflix and hitting play, but it is easier than adding PPAs’

For Google Chrome users on Ubuntu this means you can, albeit with a little bit of extra tweaking, get Netflix video to play on Linux. No plugins, PPAs, no glasses of Wine needed. It’s not quite as easy as opening Netflix and hitting play, but it is easier than adding PPAs to download and configure boatloads of Windows dependencies, muddying up your install.

On to the part you came here for: how to get it working. The steps that follow are not as complex or as numerous as they appear at first glance. I’m simply walking you through each part by hand.

Prerequisites:

  • Ubuntu 14.04 LTS* or 14.10 Alpha
  • Google Chrome Beta or Dev (v37+)
  • An active Netflix subscription or trial
  • Have ‘Prefer HTML5‘ selected in ‘Netflix Account > Playback’

Get Chrome

As discovered by Nathan VanCamp on Google+ (via Phoronix) we can use User Agent String spoofing to fool Netflix into using EME-based playback on Linux.

netflix html5 settings
Set ‘Prefer HTML5’ In Account Settings

The process doesn’t work first time for everyone who tries it, with some still seeing ‘Install Silverlight’ prompts, or ‘Aww, Snap!’ screens. Your own milage may vary.

So, first steps: you need to use Chrome Beta or Dev. Don’t stamp your feet, or try this in a stable build; you have to use the latest beta or dev build of Google Chrome for Linux for this to work.

Getting Google Chrome for Linux on either channel (in both 32-bit and 64-bit) is simple enough: just grab the appropriate installer from the links below. Note: this will upgrade your existing stable installation.

Download Google Chrome Beta Download Google Chrome Dev

Ubuntu 14.04 LTS Only

If you’re attempting this how-to on Ubuntu 14.04 LTS you must also upgrade your version of ‘libnss3’ to a more recent version.

libnss3 files for Ubuntu 14.04 LTS (32bit)  libnss3 files for Ubuntu 14.04 LTS (64bit)

Download the appropriate zip archive from those linked above, extract it, then move the three .deb files inside to your home folder. Open a new Terminal window and enter the following command:

sudo dpkg -i libnss3*

User Agent Extension

With everything ready the last step is to modify the user-agent string of the browser to pretend we’re accessing Netflix from a platform it likes.

Modifying the UA string can be done in a number of ways but the easiest way is to install the free User-Agent Switcher Extension from the Chrome Web Store:

User Agent Switcher Extension for Chrome

Installing this will place new icon in the right of the Chrome toolbar. Right-click on this item and select ‘Options’. We’ll now add the required HTTP agent with the following string (thanks to Mat Enders for these steps):

  • Name: Netflix Linux
  • String: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2114.2 Safari/537.36
  • Group: (is filled in automatically)
  • Append?: Select ‘Replace’
  • Flag: IE

If you fill this in correctly you should have something like this:

netflix-user-agent-spoof

Click the ‘Add’ button at the far end to save your UA.

Now, load ‘netflix.com‘ in a new tab, and click the User-Agent Switcher toolbar icon, click ‘Chrome’ and select the ‘Netflix Linux’ entry. This will reload the page.

Optionally, you can set a permanent spoof rule to force this user-agent to take effect when loading Netflix:

netflix-user-agent-rule

Following that, you should be able to go to Netflix and begin playing your favourite films or TV shows.

With the new UA in effect simply load up a video and…

Success has so far been replicated by Arch, Gentoo and Ubuntu 14.10 Alpha users (both 32-bit and 64-bit builds). Those running Ubuntu 14.04 LTS with the updated libnss3* packages — which includes myself — also find things to be working a-ok.

There’s no guarantee that this spoof will continue to work. Netflix could stop it at any time. But since the only thing stopping support today is a single line of text, one suspect that it won’t be too much longer before we see Linux warmly embraced by our TV binging overlords. 

html5 netflix utopic unicorn