Why Plex makes me finally use a media center, and how to watch overseas television without limitations using VPN

As I explained in an earlier post, I have set up a Mac mini in my living room that primarily acts as a server, but it is also connected to my home entertainment system to function as a media player. I confess that I did this merely because I could. Like I said back then, I am not a heavy user of media playback software. I have no movie files stored on my harddisk (as downloading movies is too much of a hassle in countries that do not have movies available in the iTunes Store, like The Netherlands), and I never rip DVD content to disk. I don’t use the Mac to play DVDs, as I think that my Blu-ray player does a far better job on this, and is easier to operate. And I also don’t watch or record television on the Mac, as this job is perfectly taken care of by my cable company’s HD settop box with PVR. The only media related activities that I used the living room Mac mini for were playing music, and occasionally watching photos.

Plex and its alternatives

However, due to a number of reasons, as of lately I am hooked to a brilliant open source Media Center initiative that is unique to Mac OS X called Plex. Triggered by my new Harmony One remote, of which I wrote in great detail in my former post, I had a closer look at the Plex software because of its unique capability to work brilliantly with the Harmony, bypassing many of the limitations of the 6-button Apple Remote. And what I found was that this software greatly enhances my TV watching choices, and on top doing so in a slick and very well designed manner. The reason for my shift? Online content.

Plex is derived from the well-known XBMC media center initiative. This open source project aims to provide a rich media interface for a number of platforms, including Windows, Mac, Linux, and even a number of modified game consoles, like the X-Box that gave the project its name. Since its inception, a number of independent new projects have derived from XBMC, so called “forks’. A well known XBMC-offspring is Boxee, available for a large number of platforms, including the Mac and even AppleTV.

I do think however that Plex fits my needs best, for a number of reasons. For starters, the project is focused solely at Mac OS X. While this is no guarantee that it is better than any of the others, my experience with multi-platform projects that get compiled for various operating systems, is that they generally do not support the features unique to that OS (have a look at OpenOffice or even Firefox to see what I mean). In Plex, we find this OS X specific behaviour in its integration with local and network-located iTunes and iPhoto libraries, among others. Plex easily works with these program’s naming conventions, albums and events, keywords and ratings, to name a few.

The modular video plug-in approach

But what really makes Plex special to me, is its very modular approach to watching online video. Although a lot of media center software supports the playback of Internet video in some way or another, Plex offers a plug-in structure that allows developers to create a hook into the software to support practically every video service out there. And because the software is running on a “generic” computer, it is not limited in any technical way to only support specific codecs or streaming formats, as is the case with proprietary media players (like the AppleTV). Plex provides a consistent wrapper around the video (including Windows Media, Quicktime, Flash, or heaven forbid even Silverlight), and plays it back in full screen, with its own on-screen information displays and user controls.

What really strikes me is the effort that the Plex developers have made to make the addition of new plugins to video sites as easy as possible. For this, they have added an App Store, as explained in this short video. Just select any of the available content sources, and install with one click. And just what kind of video sources are there to choose from? This ranges from the CNet technology videos and live video feed from TWIT, to TV series available for online viewing like South Park and The Daily Show. Of couse I found that having these videos available to me on my TV screen, selectable using my remote control, makes me much more willing to watch them compared to viewing them on my desktop computer.

Access to media from other people

But Plex not only lets you connect to any of these video services on the Internet, it can also use the network connection to access the media libraries from your friends. What’s more, your friends don’t even need to run Plex or any other media server software, as among many of the protocols supported by plex is plain old FTP. When simply allowed FTP access to the folders containing media files like movies, music and pictures, you can easily browse all content from your friend using Plex and the remote, and stream the video directly to your screen (even over FTP!). No lenghty download or any manual configuration is required.

I tried this with my friend, who has quite a large video collection stored on his home server, mainly to provide video content for his kids. Some of the videos were in iPod resolution, others were full HD transfers. We found my 10 Mbit/sec internet connection to be sufficient for streaming these 1080p videos to my Mac mini, however an occasional hickup did occure. Our best guest is that these minor problems could be resolved by allowing a greater buffer to be filled before starting playback of the video. All in all, having access to other’s media libraries also greatly enhances my viewing opportunities.

Superb control using the Harmony One remote

The whole interface of Plex is designed to be operated using a remote control. It works out of the box with the Apple Remote. Being a standard accessory for some Macs, or a $19 option from Apple, this forms an affordable option for most people to control the software.

However, the Apple Remote, originally designed for use with Apple’s Front Row software which offers far more basic user interface, quickly becomes limited. With its 6 buttons, navigation is not always easy, as it involves longer key presses to initiate different commands, and still then cannot offer access to many different functions at once. What’s worse, Apple designed the infrared receivers in its Macs to just receive commands from an Apple Remote, the receivers wouldn’t work with any other remote.

But here comes in the very clever thinking on the part of both the team resposible for Plex, as of Logitech. They utilize the fact that a single Mac can be paired with up to 6 remotes, each being able to uniquely identify itself to the computer. By programming all commands of these individual remotes into a single new remote, and by mapping the “keep pressed” state of the buttons to seperate buttons as well, several dozens of infrared commands can be send to the Mac.

For this to work, Logitech co-operated with the Plex team and created a new device called “Plex” in their online database of devices, so that it can easily be added to a Harmony remote, such as my Harmony One. There is no need to do any additional programming to the remote, apart from the normal customzing to make it fit your needs.

Using the Harmony remote with Plex gives you instant and always available access to things like bringing up the on-screen info display, transport controls (play/pause/search), navigation controls, aspect ratio selection, etc. But one of the best examples of the fine integration between the Harmony remote and the Plex software can be found when browsing long lists (for example with TV show episodes). By clicking any of the number buttons, you immediately jump to the letter assigned with that button (SMS-style, the letters are also printed on the Harmony remotes). Needless to say, this greatly improves operation, and makes the Plex software a breeze to use.

Getting access to Hulu and iPlayer using VPN

Those in the US, and to a lesser extend the UK, are blessed with an innovative and competitive market place in the field of video distribution over the Internet. Hulu, a joint-operation of NBC and Fox, is a very popular site that offers access to literally hundreds of TV shows and thousands of episodes, ranging from decades old sitcoms like Alf, Knight Rider and Who’s the Boss, up until recently aired material from such hit shows like Heroes, 24, ER, The Simpsons, Family Guy, American Dad and The Office. In the UK, the BBC offers a similar service for its content trough a service called iPlayer.

There is one major catch, however. Hulu and iPlayer are not available to viewers from outside the US and the UK, respectively. The services determine your location based on your IP address, and provideyou with a message indicating that you cannot play the video because your watching from an unsanctioned area.

Luckily, there is a way around this. It does involve some skills, but getting access to this wealth of TV programming makes it more than worth the effort. In order to get approval from the video site to play the video, you need to visit using a valid IP address. There are services out there, usually requesting a small monthly fee, that can access the sites with a valid IP address, and then redirect the data to you. This technology is called VPN, or Virtual Private Network, and is commonly used to set up a tunnel to a company’s network for employees accessing this network while on the move.

I used the service from a company called UKiVPN, which costs about 6 Euros per month with a 1 year membership. They provide both a number of US-based IP adresses, as well as several UK-based addresses. They provide easy installation instructions, which require no additional software at all, as all the VPN stuff that is needed is already built into Mac OS X. Enterting your details and connecting the VPN is all that is needed to let Hulu and iPlayer do their tricks.

The finishing touch: VPN selection from the remote

Selecting the appropriate VPN connection, or closing the VPN connection again, would normally require you to close Plex, as the software does not have any VPN-features built-in. This would be cumbersome, as you probably would need the mouse and keyboard to do so, making things unpractical in a media center setup.

Luckily, and due to some very clever trickery from people on the Plex forums, I managed to completely control my VPN connections using the remote, and get some notification feedback on screen to boon.

For this trick to work you have to create an AppleScript for each of the VPN connections, that start the connection when it is not yet active, or disconnect from it when it was active. Then, you can assign these AppleScripts to the function keys within Plex. And since all function keys are available from within the “Plex” device in the Logitech Harmony software, you can assign these function keys to a button on the remote. In my case, using the Harmony One, I have created two virtual buttons on the remote’s touch display, called “VPN UK” and “VPN US”, that let me simply select either one directly from within Plex.

But how to make sure that the VPN connection was established? Since Plex is unaware of any VPN business that’s going on behind the scenes, it cannot tell. Well, even for this the clever guys on the forum came up with a solution. Simply install Growl, the well known universal notification system for Mac OS X, and let Growl display a “VPN UK connetion established” window on top of Plex after the connection is initiated by pressing the appropriate button on the remote.

Brilliant. (As far a hackery and home-brew media center customization go, that is!)

4 thoughts on “Why Plex makes me finally use a media center, and how to watch overseas television without limitations using VPN

  1. Great post! It’s a shame that so much online content is restricted by location. The media companies still live in the stone age, not realising that with the internet, the world is one global market… They have to re-think and re-structure their way of operating. It will hurt, but it’s necessary if they want to survive and fight piracy.

    Being able to switch vpn connections on and off with the remote is great, but what would be even better is to have requests to the different online sources routed through different vpn connections automatically…. Unfortunately, I have not figured out how to achieve that yet…

Comments are closed.