How to watch Netflix (Watch Instantly) in Linux

With Ubuntu 14.04 and Chrome 37 onwards, playing Netflix on Linux natively is now possible thanks to Encrypted Media Extensions and co-operation between Canonical and Netflix. The instructions below are legacy instructions for running Silverlight on Linux via Wine. However, running Netflix is entirely possible in Ubuntu Linux 12.04 and later releases (and most likely any other modern distribution). See the section below "Running with Wine".

Until recently there was no simple solution to watching streaming movies via Netflix (Watch Instantly) in Linux for any Linux distros besides Android based computers.

This is because they use Microsoft Silverlight plugin with DRM. Although there is a Linux alternative to Silverlight called Moonlight, it does not have any DRM built in and it is unlikely Moonlight will implement a DRM option. Netflix has stated they will not use anything without DRM. So if Netflix continues to use Silverlight, then there will be no official Linux support.

If you don't like it, complain to Netflix, not us. Their phone number is 1-866-716-0414 or you could sign the petition to add Linux support to Netflix. Petition to add Netflix "Watch Now" feature for Linux. Calling Netflix and signing the petition both is the best plan as the numerous times I've called has resulted in the call center person telling me that "...the more people who call and request linux as an option is noted by Netflix".

=Special note= Netflix does not currently offer support for Linux (as of Nov 2013),

This how to is by NO means, in ANY way, shape, or form an official or supported way of running the Netflix: Watch Instantly feature natively in GNU/Linux.

=>  Method 4 is the simplest <= 

=Method 1: Running with Wine= Netflix Desktop is package that combines Wine, Silverlight, and Firefox, configured to work with Netflix
 * Netflix Desktop homepage

Ubuntu (and distros based on Ubuntu)
Using Ubuntu 12.04 simply follow the steps below: sudo add-apt-repository ppa:ehoover/compholio

sudo apt-get update && sudo apt-get install netflix-desktop

Depending on each individual system's configuration and hardware, video quality may vary. The steps for installing or running Netflix with Wine listed below this line may be old or out-dated. (11/25/2012) http://www.iheartubuntu.com/2012/11/ppa-for-netflix-desktop-app.html

Compile from source
These are all different methods to get Silverlight and Netflix to work with Wine, essentially creating Netflix Desktop

Method 1, version 1
It is also possible to run Netflix under Wine with a couple of extra patches to the latest source code tree. Hopefully these patches will be included into Wine in the near future so that custom-compiling Wine is no longer necessary. [1/3] http://source.winehq.org/patches/data/91569 [2/3] http://source.winehq.org/patches/data/91570 [3/3] http://source.winehq.org/patches/data/91571 wget -O Firefox-14.0.1.exe http://download.mozilla.org/?product=firefox-14.0.1-funnelcake13&amp;os=win&amp;lang=en-US; wine Firefox-14.0.1.exe /S wget -O Silverlight-4.exe http://silverlight.dlservice.microsoft.com/download/6/A/1/6A13C54D-3F35-4082-977A-27F30ECE0F34/10329.00/runtime/Silverlight.exe; wine Silverlight-4.exe /q Further details can be found on the two remaining bugs: Also, see Erich Hoover's howto and PPA: http://www.compholio.com/netflix-desktop/
 * 1) Compile the latest version of Wine from the "git" repository with the following patches:
 * 1) Create a new Wine prefix
 * 2) Download and install a recent Windows version of Firefox:
 * 1) Download and install Silverlight 4 (Silverlight 5 does not work):
 * 1) Launch Firefox
 * 2) Login to Netflix and attempt to play a movie/show
 * http://bugs.winehq.org/show_bug.cgi?id=31858
 * http://bugs.winehq.org/show_bug.cgi?id=31993

Method 1, version 2
Alternate method tested in Fedora 17:
 * 1) Install GCC 4.5. Using the default (4.7) didn't work for me, but 4.5 did
 * 2) sudo yum install gcc mpfr-devel libmpc libmpc-devel glibc-devel
 * 3) wget http://www.netgull.com/gcc/releases/gcc-4.5.4/gcc-4.5.4.tar.bz2 (Substitute your closest mirror from http://gcc.gnu.org/mirrors.html)
 * 4) tar xjf gcc-4.5.4.tar.bz2
 * 5) cd gcc-4.5.4
 * 6) ./configure—program-suffix=45—enable-languages=c,c++
 * 7) *This caused me some problems later on since apparently not everything gets properly isolated, maybe a better idea is to compile it with—prefix=/usr/local/gcc45 - if you do, adjust step below accordingly
 * 8) make
 * 9) sudo make install
 * 10) Compile latest Wine-git with all the proper patchesNote:
 * 11) git clone git://source.winehq.org/git/wine.git ~/wine-git
 * 12) cd ~/wine-git
 * 13) *Tested with commit 098b3c72941c810a8b4f2712e70654312bba5857. If you want to make sure you get the same, run
 * 14) Apply patches:
 * 15) wget -O part1.patch http://source.winehq.org/patches/data/91645 && patch -p1 < part1.patch
 * 16) wget -O part2.patch http://source.winehq.org/patches/data/91646 && patch -p1 < part2.patch
 * 17) wget -O part3.patch http://source.winehq.org/patches/data/91647 && patch -p1 < part3.patch
 * 18) wget -O part4.patch http://source.winehq.org/patches/data/91648 && patch -p1 < part4.patch
 * 19) *This one is already in git, so trying to apply it would fail: wget -O part5.patch http://source.winehq.org/patches/data/91649 && patch -p1 < part5.patch
 * 20) git show e2900c23c7f0b143078da780c9a0ff19a895bf45 | patch -p1 -R
 * 21) *Some screwy patch from earlier doesn't let Silverlight setup run correctly, revert it
 * 22) ./configure CC=/usr/local/bin/gcc45—prefix=/usr/local/wine-git
 * 23) *Better keep the patched version separate from the system-installed wine
 * 24) make
 * 25) sudo make install
 * 26) Download and install a recent Windows version of Firefox (exact version doesn't matter, so I used the most recent one):
 * 27) wget -O Firefox-16.0.2.exe https://download.mozilla.org/?product=firefox-16.0.2&os=win&lang=en-US
 * 28) WINEPREFIX=/home//.wine-netflix /usr/local/wine-git/bin/wine Firefox-16.0.2.exe
 * 29) *WINEPREFIX=... to keep it isolated from other wine-installed programs
 * 30) Download and install Silverlight 4 (Silverlight 5 does not work):
 * 31) wget -O Silverlight-4.exe http://silverlight.dlservice.microsoft.com/download/6/A/1/6A13C54D-3F35-4082-977A-27F30ECE0F34/10329.00/runtime/Silverlight.exe
 * 32) WINEPREFIX=/home//.wine-netflix /usr/local/wine-git/bin/wine Silverlight-4.exe
 * 33) Now you can finally run it:
 * 34) *WINEPREFIX=/home//.wine-netflix /usr/local/wine-git/bin/wine C:\\Program\ Files\\Mozilla\ Firefox\\firefox.exe netflix.com

=Method 2: Running in a VM=

Another way to watch Netflix in Linux is by running it in a virtual machine. People have gotten it to work with Virtualbox and VMware.

Method 2 version 1: Virtual machine using Virtualbox
Using a virtual machine is a non-ideal solution, but it works. But if you have a Win-XP CD lying around its not so bad. Just think of it as running a really inefficient video player program, instead of a really backwards workaround.

Requirements

 * Windows XP CD or ISO
 * Virtual Machine: Virtualbox
 * Alternative: You can use VMWare Player as the Virtual machine software
 * Microsoft Silverlight

Installing

 * 1) OS Type: Windows XP
 * 2) Click 'Next'
 * 3) Base Memory Size: set as default
 * 4) Click 'Next'
 * 5) Click 'New...', to create a new virtual disk
 * 6) Click 'Next'
 * 7) Image Type: Dynamically....
 * 8) Click 'Next'
 * 9) Image File Name: where ever you wish to have it
 * 10) Image Size: 5GB
 * 11) Click 'Finished'
 * 12) Click 'Next'
 * 13) Click 'Finished'
 * 14) Install Windows XP onto the Virtual Machine
 * 15) Insert the 'Windows XP' install CD
 * 16) Click 'Start', to start the virtual machine
 * 17) This will boot the install CD in the virtual machine, install Windows XP on the virtual disk as you normally would
 * 18) Open this page in the virtual machine.
 * 19) Install required software and updates
 * 20) * If you are using WinXP, update Windows to Service Pack 3
 * 21) ** http://windowsupdate.microsoft.com
 * 22) * Install Microsoft Silverlight
 * 23) ** http://silverlight.net/
 * 24) Go to Netflix and try view a video.
 * 25) Install any other required plug-ins if requested

Results of systems using this how to
You can list your results here, Please include Video Frames (rendered/dropped) and Bitrate at full screen. To find this out Alt-Shift-Left Click, then click A/V Stats.

Systems that have choppy playback.

 * System: 1.6 GHz Core 2 dual core CPU/Integrated Intel graphics chip
 * VirtualBox settings:512MB RAM alloted
 * Results: Video is a little choppy.
 * Statistical results: Video Frames (rendered/dropped): 18/6 @ Bitrate: 500 @ Full Screen
 * System: 3.3 GHz P4 dual core CPU/nVidia GeForce FX 5200 video
 * VirtualBox settings: 256MB RAM alloted
 * Results: Plays choppy
 * System: 3.0 GHz P4, 2GB ram (Kingston Hyperx; hyperthreading enabled)/512MB PCI express video card
 * Settings: VMware used instead of VirtualBox, 1024MB RAM alloted, Nouveau driver used
 * Results: Plays choppy
 * System: 2.1 GHz AMD Athlon 64 X2 4000+, 4GB RAM, NVIDIA GeForce 9500 GT
 * VirtualBox settings: 1500MB RAM allotted
 * Results: Plays choppy
 * Statistical Results: Bitrate 64/1750 (a/v) with frame 6/25 (rendered/dropped)
 * System: 2.6 GHz AMD Athlon 64 X2 5000+, 4GB RAM, NVIDIA GeForce 9400 GT/PCIe/SSE2
 * VirtualBox memory settings: 1000MB RAM allotted
 * VirtualBox audio setings: ALSA driver, ICH AC97 controller
 * Results: Mediocre video (although only slightly choppy); very slow steaming download speed leading to many interruptions and need to reload the page; terrible audio: constantly getting behind/garbled; playback cannot be paused (steaming stops).
 * Summary: Unacceptable, finally installed Windows XP on a separate partition, use grub to dual-boot (Linux or Windows XP)
 * System: 3.4 GHz Pentium D, 3.2GB RAM, Nvidia GeForce 9500 GT
 * OS: Bohdi Linux 2.4 (Ubuntu variant with Enlightenment E17 Window Manager)
 * Using method 1 s1 "Ubuntu" Compholio package
 * Playback slightly choppy but turning off HD will smoothen things out.
 * The mouse pointer is skewed lower than what it actually points to, during playback. This is quite annoying.
 * Sometimes playback does not start correctly and there will be a black screen or screen is stuck on the playlist screen. To remedy this move mouse to top of screen and .
 * Will try other fixes/workarounds and post results.

If things get choppy, you may be able to renice the virtualbox command with -19 and get things straight.

Systems that work reasonably well

 * System: Intel Celeron G530@2.4 GHz, 4GB RAM, Ubuntu 12.04 LTS 32 bit.  DH61CR mobo.  Onboard video.
 * Using Wine as per above article
 * Installed IceWM and am NOT using any form of unity, which robs cycles from the graphics.  This nearly eliminated tearing and frame skipping.
 * Turned on Option AccelMethod sna in xorg.conf.
 * Results: Only a wee bit of skipping and tearing, smoother than virtualized. (Tried that too.)
 * System: Intel 2.53GHZ Core 2 Duo, 512 MB Ram alloted to the VM. Integrated Video Card Intel GMA 4500MHD/Solid State HD
 * Settings: Recommend switching your audio driver from pulseaudio to ALSA so you can get synchronous audio, No 3D support installed on VM
 * Guest OS: Windows 7
 * Results: Video is smooth playback is fine
 * System: Intel i7 2 GHz/4GB Ram
 * Settings: 1.2GB RAM alloted, Activated Direct3D support for Guest, Installed Guest Additions
 * Guest OS: Windows XP
 * Results: Watching Instantly in Full Screen, not choppy at all.
 * System: Intel(R) Core(TM) i7 CPU 950 @ 3.07 GHz
 * Settings: Allocated 2GB Memory. 128Mb video memory
 * Results: Works great
 * System: Intel Pentium E6500 Dual Core @ 2.93 GHz/128MB ATI Fire GL V3400 PCI-EXPRESS GDDR3 DVI
 * Settings: default
 * Guest OS: Running Windows XP on Ubuntu 10.04.
 * Results: Works great
 * Statistical Results: Bitrate 64/1050 (a/v) with frame 20/10 (rendered/dropped) or alternatively bitrate 64/235 (a/v) and frame 25/5.
 * Systems: Intel Core 2 dual core, 2.133 GHz/nVidai GeForce 6800
 * Settings: 512GB RAM Allocated, 2 CPUs, enabled PAE/NX, enabled VT-x/AMD-V, enabled Nested Paging, 128MB video RAM, enabled 2D and 3D acceleration, Guest additions installed without DirextX
 * Guest OS: Windows XP
 * Results: Works OK
 * Statistical results:
 * System: amd athlon II x2 250 3GHz dual core, onboard/integrated ATI radeon 3000, 256MB memory dedicated to video, 1920x1080 resolution, 4GB ram
 * Settings: default, vbox guest additions installed but no directx support, sp3, ie8, switched from pulseaudio to alsa to fix audio sync
 * Guest OS: Windows XP (under ubuntu 11.04)
 * Results: Works great full screen/HD
 * System: Intel Core i7 980X 4.27 GHz (Hex core), 2x GTX 480 SLI (3GB VRAM), 12GB DDR3 1866 MHz


 * Settings: 4GB RAM allocated, 4 CPUs, PAE/NX, VT-x/AMD-V, Nested Paging, 128MB VRAM +2D,3D acceleration, guest additions.
 * Guest OS: Windows XP SP3
 * Results: Playback is perfect in all scenarios
 * System: Intel i5-3570k, GeForce 8800 GT, 16GB DDR3
 * Settings: 8GB RAM allocated, 4 CPUs, IO APIC, PAE/NX, VT-x/AMD-V, Nested Paging, 256 VRAM, 2D acceleration, guest additions.
 * Left PulseAudio, but changed audio controller to ICH AC97—had to download and install drivers from RealTek
 * Guest OS: Windows 7 64-Bit
 * Results: Great so far, need to try with less CPU and RAM dedicated to VM. Switching from having VM present Intel HD Audio to ICH AC97 made it go from crawling to looking great. Previously went in super-slow motion at any resolution, now fine at fullscreen 1920x1200. Even works in seamless mode. No sync issues.

Tips

 * Increasing alloted memory from 512MB to 1GB doesn't seem to make any difference
 * Enabling Direct3D acceleration in VirtualBox with Guess Additions will enable video acceleration in Silverlight and allow for HD playback. Using Guess Additions and WineD3D together might break video playback
 * Decreasing VirtualBox's window size improves playback
 * Running Silverlight seems to play the same in Firefox and Internet Explorer
 * Playing at a lower Bitrate/Resolution improves playback
 * Running Windows XP SP3 and Google Chrome Netflix WebApp in kiosk mode improves presentability and performance

=Other methods that don't work=
 * Boxee (as of 9/2011)
 * Boxee only supports Netflix on Boxee Boxes (not outside US and Canada) and on Windows.
 * Mono/Moonlight (as of 9/2011)
 * Moonlight does not include DRM support and hence does not support Netflix
 * Mono FAQ for Netflix
 * ChromeOS virtual machine, and use the Netflix plugin
 * This does not work. Only the official ChromeOS loaded onto a verified computer will run Netflix. (Mostly because all other computers lack the Netflix plugin, above is the 'official' report.)
 * Android SDK's Android emulator, and run the Android Netflix app
 * Android SDK
 * Android SDK's emulator
 * Note: This is rather unlikely to work on account of the slow speed of the ARM emulator.
 * Further note: this has been tested and does not in fact work with the current netflix app, which runs in the emulator, but fails when trying to play a movie (as of 9/2011)
 * Using a PlayStation II emulator and a Netflix disc iso from thepiratebay.se

Method 3, Native Silverlight through Wine in your Browser
To install the new "Pipelight" plugin. http://www.webupd8.org/2013/08/pipelight-use-silverlight-in-your-linux.html

This is just the same as method #1, s1 "Ubuntu" above. http://www.namhuy.net/1867/how-to-install-netflix-on-ubuntu-linux-mint-and-fedora.html

Method 4, fully native with HTML5 (no Wine or Silverlight)
Install Chrome version 37 or higher (currently the stable version). Launch Chrome, sign in to your Google account (if you have one), log in to Netflix, and streaming should be working. If not, make sure your system is fully up to date. In particular, you need a recent version of libnss3.

See also http://www.omgubuntu.co.uk/2014/08/netflix-linux-html5-support-plugins for a longer explanation.