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.
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.
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!
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.
- 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’
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.
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.
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.
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:
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:
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:
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.