20 October 2010

Watching Netflix Movies in VLC on Linux

I wanted to watch Netflix streaming movies on my Ubuntu 10.04 desktop in VLC Media Player. This is generally prevented by Microsoft's "PlayReady" digital restrictions and Microsoft Silverlight. At this point in time you are required to have a Microsoft OS in order to watch streaming Netflix movies, hopefully that will change in the future.

A number of people solved this problem by running Windows in VMplayer or Virtualbox. I didn't really like that solution, I wanted to watch streaming movies on my Linux desktop in VLC, so I found a different way.

My solution uses PlayOn Digital Media server as a proxy for Microsoft restricted Netflix streaming movies.

The PlayOn media server PC should be fairly modern, CPU power is important on this box, and more memory than the minimum required is a good thing. PlayOn is not free, but you can get a 14 trail license to see if this works for you. I purchased the software and it makes online multimedia available to my Linux desktop movie playing and my Popcorn Hour Networked Media Tank. Setup of the PlayOn software is fairly simple and they have a decent user manual available online. I won't go into details for setting up PlayOn since it isn't complicated and the folks over at playon.tv have that information very well covered.

Once the PlayOn media server is up and running, and your Netflix account is setup within PlayOn, you are ready to configure Ubuntu to view streaming movies from PlayOn. The PlayOn media server is now a UPnP multimedia source on your network. Anything you have on your network which can discover UPnP provided multimedia will probably see the PlayOn server.

From the Ubuntu desktop we are going to mount any UPnP sources that are available on your network to a file system directory. In this example it will be the directory /mnt/av.

You may need a few software packages installed on your desktop, some may already be installed. You need the libfuse2, fuse-utils, djmount, and VLC packages installed along with any dependancies. Once you have these installed you can create a directory where you will mount your UPnP multimedia sources.

For example:

sudo mkdir /mnt/av && sudo chown -R yourusername /mnt/av

Once /mnt/av is created, as your regular user account, run the following command.

djmount /mnt/av

You are likely to get the following message returned.

[I] Charset : successfully initialised charset='UTF-8'

The djmount command will discover UPnP sources on your network and make them available under the /mnt/av directory. Discovery of all your UPnP sources could take a minute after you first mount /mnt/av. A minute or so after running the djmount command you should be able to see directories representing your UPnP sources created under /mnt/av.

Running ls -al /mnt/av/Playon* should list the multimedia sources that are provided by the PlayOn media server.

For example:

username@desktop:/mnt/av/PlayOn (servername)$ ls -al /mnt/av/Playon*
total 11
dr-xr-xr-x 21 root root 512 2000-01-01 03:00 .
dr-xr-xr-x 5 root root 512 2000-01-01 03:00 ..
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 BET
dr-xr-xr-x 9 root root 512 2000-01-01 03:00 CBS
dr-xr-xr-x 19 root root 512 2000-01-01 03:00 CNN
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 Comedy Central
dr-xr-xr-x 12 root root 512 2000-01-01 03:00 Hulu
dr-xr-xr-x 2 root root 512 2000-01-01 03:00 .metadata
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 My Media (Beta)
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 Netflix
dr-xr-xr-x 5 root root 512 2000-01-01 03:00 Nick
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 PBS
dr-xr-xr-x 5 root root 512 2000-01-01 03:00 PBS Kids
dr-xr-xr-x 5 root root 512 2000-01-01 03:00 PlayOn Info
dr-xr-xr-x 29 root root 512 2000-01-01 03:00 Revision3
dr-xr-xr-x 31 root root 512 2000-01-01 03:00 South Park Studios
dr-xr-xr-x 5 root root 512 2000-01-01 03:00 Spike TV
lr--r--r-- 1 root root 33 2000-01-01 03:00 .status -> ../.debug/PlayOn (firefly)/status
dr-xr-xr-x 4 root root 512 2000-01-01 03:00 Syfy
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 TBS
dr-xr-xr-x 6 root root 512 2000-01-01 03:00 TED
dr-xr-xr-x 13 root root 512 2000-01-01 03:00 YouTube


Now you can use VLC to watch Netflix and other streaming movies that are shown under /mnt/av.

Tips and Notes:

* Some of the movies may have a .m3u playlist extension. If you can't get VLC to open and play that file you can open it with a text editor and copy the http: line from that file to VLC under the "Open Network Stream" menu.

* If VLC can't initially browse through the /mnt/av directory it is because /mnt/av is not listed in /etc/fstab. Just type /mnt/av in the location box in VLC.

* With the UPnP multimedia sources mounted under /mnt/av you can use other media players to watch streaming videos.

* The PlayOn media server only supports one stream at a time, you'd probably kill the PlayOn PC watching more than one.

* VLC can do many interesting things.

* If you ever want to unmount the /mnt/av directory use the following command.

fusermount -u /mnt/av