Rejoice! Netflix now works on Linux with no Wine shenanigans required. All it takes to start watching Netflix on Linux right now is Chrome and a quick user agent tweak--and even that won't be necessary soon.
Now for the bad news: We could've all been watching Netflix on Linux with no headaches whatsoever for years now if Microsoft had stuck to its initial plans for the Silverlight plugin.
Let's dig in.
What you need to play Netflix on Linux
There are three ingredients you need for Netflix on Linux:
Google Chrome for Linux: You have to use Google Chrome for this--I'll explain why later. The current stable version of Chrome works just fine, so you don't need any beta software.
NSS 3.16.2 or greater: The Network Security Services package is a set of libraries used by Chrome, Mozilla Firefox, and other applications. Netflix's encrypted media extensions require this.
On Ubuntu 14.04, a new version of NSS is now available as a normal update--just run Update Manager and install all the updates to get it.
On other Linux distributions, your distribution of choice may or may not include a recent enough version of NSS. If they don't plan on pushing out an update to NSS, you may want to upgrade to a Linux distribution that offers a more recent version NSS.
A User Agent hack--for now: Netflix is still blocking Linux-based browsers from playing Netflix content. On the Ubuntu mailing list, a Netflix employee said he'd be able to "make a case here to lift the User-Agent filtering" if Chrome for Linux embraced current versions of NSS. However, this hasn't happened yet. Follow the instructions below to modify your user agent so you can play Netflix on Linux without waiting for Netflix's internal bureaucracy.
The easiest way to do this is to install the User Agent Switcher extension for Chrome. Right-click the User Agent Switcher icon on your toolbar after installing it and select Options. Create a new rule with a name like "Netflix on Linux" and enter the following user agent string:
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2114.2 Safari/537.36
Set the Indicator field to IE and click the Add button. You can now choose the Netflix on Linux user agent from the toolbar icon and head over to the Netflix website--it should just work. Soon, you should be able to get rid of this extension and watch Netflix with no more hassle.
Why Netflix never worked on Linux: Microsoft's bait-and-switch
Netflix didn't used to work in Linux because--unlike most other video-playing sites, from YouTube to Hulu to Amazon Instant Video--Netflix chose to go with Microsoft's Silverlight browser plug-in instead of Adobe Flash. Adobe officially supports Flash on Linux, while Microsoft doesn't officially support Silverlight on Linux.
Silverlight was originally a competitor to Adobe Flash. Microsoft wanted to spread Silverlight across the web and replace all that Flash content with a different plug-in. To this end, Microsoft promised Silverlight would be open so all platforms could use it. Microsoft still offers Silverlight plug-ins for both Windows and Mac OS X today.
Silverlight was supported on Linux through Moonlight, an open-source implementation of Silverlight developed by the Mono Project. Microsoft offered official support for the Moonlight project while it was being developed. In 2007, Microsoft announced:
"After a great deal of work between the Moonlight and .NET teams, we're ready to formally announce that we (Microsoft and Novell) will be bringing Silverlight to Linux, fully supported and including application and media codec compatibility.
The expansion of the existing work between Microsoft and Novell to include support for Silverlight on all Linux platforms is a major step in the journey of interoperability that we are on. We've heard clearly from the community that a full cross-platform web development solution is not only Windows and Macintosh, but must include Linux."
Microsoft talked the talk, but they didn't walk the walk. Version 2.0 of Silverlight included "PlayReady DRM," which Netflix required to play its videos. Microsoft wouldn't license the DRM code to Moonlight so they could use it, even though Microsoft provided a binary codec pack for the original version of Moonlight. Microsoft's time of making nice with Linux users was over.
In 2011, Moonlight development was ended. Developer Miguel de Icaza said Microsoft had "cut the air supply" to Moonlight by adding Windows-only features to Silverlight and not fulfilling its original vision of being properly cross-platform. Silverlight itself is now basically abandoned by Microsoft, so it's beginning to look like we can leave this sad period behind. The shift to HTML5 technologies that actually are cross-platform means Netflix can now work on Linux.
Why Netflix doesn't work in Firefox: HTML5 video DRM controversy
Many Linux users prefer Firefox--in fact, it's Ubuntu's default browser. But Netflix only works in Google Chrome on Linux--not Firefox, not Chromium, not Opera, and not anything else.
But why? Well, Netflix isn't just using plain-old HTML5 video for this; they're also using a technology called "Encrypted Media Extensions." Essentially, this is a DRM technology built into web browsers that allows Netflix and other media sites to download a small, closed-source plugin that runs in your web browser. The closed-source plugin attempts to protect Netflix content from piracy, just as Silverlight and Adobe Flash do. It's likely that Netflix's contracts with content providers require this sort of DRM. Netflix wasn't willing to support HTML5 video until the appropriate DRM technologies were available.
Chrome, Internet Explorer, and Safari now support Encrypted Media Extensions, but this feature has proven controversial over at Mozilla. After attempting to push back against this technology, Mozilla is now working on it. They've announced plans to support encrypted media extensions while allowing each user to choose to disable it (which would prevent sites like Netflix from working, of course). Firefox will also surround the closed-source DRM plug-ins in an open-source wrapper. Read more about Mozilla's plans for this DRM technology here.
Long story short: Mozilla is working on it, but they need more time. Firefox on Linux should eventually be able to play Netflix, too. But for now, Firefox lovers can use Chrome as a dedicated Netflix browser.