Netflix in linux with pipelight

Despite Netflix' honest attempt to lock out anything that isn't windows or osx, and running the abomination that is silverlight, it has been running just fine in linux for quite some time. Before we had netflix-desktop which was basically a standalone version of firefox running under wine.

These days we use pipelight, which is a firefox plugin for your native browser using wine to run the windows version of the plugins. It's smoother and doesn't require running a separate app, the flipside being that it runs constantly in the browser you use for daily use. Your choice.

Now, there's tons of how-tos and tutorials for this subject out there but they all lack one rather vital bit of information so I figured I'd throw my hat into the ring. Took me a solid hour to figure out just what the problem was. This will be designed for Ubuntu 14.04 LTS users but you can adapt it to fit whatever distribution you're using.

First let's install pipelight itself.

1. sudo add-apt-repository ppa:pipelight/stable  
2. sudo apt-get update  
3. sudo apt-get install --install-recommends pipelight-multi  
4. sudo pipelight-plugin --update

Now let's install the silverlight plugin.

1. sudo pipelight-plugin --enable silverlight5.0

I recommend you stick with 5.0 even though 5.1 is out because Microsoft tried adding driver verification to that one. Guessing it's to please their MPAA masters, but who knows for sure. 5.1 caused me a variety of issues while 5.0 worked just fine for everything I tried it on.

If the sites you visit use both silverlight and flash (hey ho, back to the future of days gone past) then you will want to enable the windows version of flash as well. But please check that you really need it before doing so.

1. sudo pipelight-plugin --enable flash

Finally we need to change our user agent. This is the part that pisses me off. I get it, Netflix is checking what browser you're using to customize the experience to fit your viewer. But that starts smelling like bs after the next step.

1. Install uacontrol  
2. Restart firefox.  
3. Click the earth-icon and UAControl options.  
4. Add site.  
5. Site:  
6. Custom: Firefox 15/Windows: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1

Now then, go to netflix. Looking good right? What? You're getting DRM errors when the movie is trying to start? Yeah, that's the thing. They correctly identify silverlight, they think you're running windows and firefox and customize the site to fit your experience.. But UAControl doesn't change the UA for javascript requests. So they're checking multiple times to make sure you're really ready to eat that DRM. No matter, we can fix that.

2. No configuration, just restart firefox.

Finally! Try some netflix goodness. Does it work? Great! You're done. Unfortunately, I ran into even more problems but if you're done at this point then you're done.

Silverlight uses javascript to communicate. There's tons of calls going back and forth. The DRM bit of silverlight desperately wants to connect to certain elements to validate itself, in a futile attempt I might add since if you can see it you can record it. If you're running any of the following addons then make sure to disable them one by one until you find the one that's blocking something silverlight is trying to reach.

1. Disconnect  
2. Ghostery  
3. Adblock plus  
4. HTTPS Everywhere  
5. many, many more

Basically, if your addons are locking out parts of the web then try disabling them. Figure out which one is causing the problem and then take the appropriate steps. That should be it.