Building the Ultimate Media Center, Part 2: Plex

Written on March 16, 2009 in Personal.
Adam Fortuna

Hey hey! I'm a developer who lives in Orlando, FL. Right now I work at Code School, listen to a lot of audiobooks, set way too many goals, write at and tweet often.

If there’s a killer app out there in the media center world, it’s Plex . Built on the long running XBMC , Plex is a fork of the project optimized to run on the Mac. XBMC has been around since the first Xbox, making one of the most established media center platforms out there. It’s long outgrown the console however, and now serves as the core for projects like Plex and Boxee . It was also featured on a recent FLOSS Weekly episode which is worth a listen. With lots of recent talk about Boxee , I thought I’d add Plex to the conversation with a little talk on why I think it’s the best media center software available.

Media Management

Like other projects based on XBMC, Plex has built in capacity for managing your media collection. This enables Plex to have an internal listing of what movies you have available in a much nicer format than the typical folder structure. Within Plex you do this by adding sources (in the form of folders containing files) and specifying what type of content resides there (movies, tv shows, music videos). Plex even allows for different sources to pull down the information on the video- - from IMDB, OFDB, MovieMaze, TheTVDB, and many more. If you want to pull data from another site, it can be added using Python, so if a better movie database comes out, it’s just a matter of writing an adapter for it. Plex uses the file name or folder name to look it up, so it’s important to name your files correctly and add the year the movie/tv show was released. You can do this manually from within Plex as well, but it’ll find your media on IMDB if your files are named correctly.

One issue that always come up when crawling a media collection is varying file format and folder structure. Chances are not all of your videos will be in the same format. Some might be single file avis, mkvs, or they might be in multiple small files (disc1, disc2), or even in DVD rips (in a VIDEO_TS folder) or Blu-ray rips. If you follow Plex’s conventions, all of these can be used and you won’t even have to concern yourself with it later on. Here’s a sample folder structure for this setup: /WALL.E (2008).mkv /Wanted (2008)/any_file_name_disca.avi /Wanted (2008)/any_file_name_discb.avi /Waltz with Bashir (2008)/VIDEO_TS/* (DVD contents here) To Plex all these will be listed the same, with IMDB show descriptions, artwork, genre listing and even actor/actresses if you want. When you play “Wanted (2008)’, it’ll queue up all files in the folder and play them in alphabetical order. I sometimes notice a short skip when it transitions to the second video, but it may not be noticeable all the time. Playing the DVD file is very similar as well. Upon selecting it to play, it’ll open you up to the DVD title menu, the same menu you’d go to if you were using the DVD itself! I’ve found there is a bit more overhead to using DVDs, as it has to put the entire menu into memory, rather than streaming the video from the start. This is really only an issue if you’re playing your media off a NAS. DVDs will still work, but they won’t be as snappy at starting.

TV shows are categorized by season number, but aside from that they work the same. Each season has it’s own folder, and within that each episode is named accordingly. You can choose to add in descriptions, or leave them blank. You can also combine episodes if multiple ones are in the same file. /Arrested Development (2003)/Season 1/Arrested Development (2003)- S01E01 - pilot.avi /Arrested Development (2003)/Season 1/Arrested Development (2003) - S01E02.avi /Arrested Development (2003)/Season 1/Arrested Development (2003) - S01E03-04.avi Like with movies, TV DVDs also work here, but you’d want to check the Plex Wiki for instructions on setting that up. In addition to downloading cast, banners and artwork from movies and TV shows, Plex will also download TV theme songs. As you’re browsing through your TV shows you’ll hear a little snippet that Plex was able to grab for each series. One very relivieving thing to note is that Plex won’t touch your media folders or add new files to them at all. You know how you can set iTunes to manage your media library? There’s no similar setting on Plex. You have full control of your files, and Plex won’t alter them in any way. The additional files that Plex downloads will be stored your Application Support folder on the computer running Plex.

Library Searching

After all you files have been discovered by Plex that’s when the fun begins. Just browsing your movies and tv shows is a visual treat, and the Plex team has done an excellent job of making the experience similar regardless of what type of artwork is available. You can filter Movies or TV shows by year, imdb rating, director, genre, actor/actress, and even whether or not you’ve seen them or not. The ability to list what you haven’t seen, and even hide descriptions for new items, is extremely useful, serving as a bookmark for where you left off in a series. The Favorites system that was recently introduced gives one click access to some commonly used movies, shows or even apps. I’m currently re-watching a TV Series, so having in Favorites saves time. If you’re using a Harmony Remote, you can even setup a button to open favorite directly. For instance, if you wanted to watch something with Christian Bale in it, you could filter your entire movie library to just movies he was in. Plex keeps an internal actor/actress list if you specify it when adding a folder (a source).

3rd Party Plugins

With a little background in Python, anyone can create plugins to pull video from other sites. Since this feature was added to the .7 release of Plex a few months ago, there’s been a huge flood of these apps making Plex better and better. Some of the more popular include Hulu, Joost, MTV, Comedy Central, South Park, Ted, Escapist Magazine (Zero Punctuation!), Youtube, Apple Trailers, Pandora, CNN, The Onion, Daily Show, Colbert Report- - the list goes on and on. The framework for building these apps allows full screen playback and scaling of flash videos, which just about all of these are. Need to click on a close button within the video so an ad doesn’t show? The plugin developer can even do that. These plugins have quickly become one of the most useful features in Plex for expanding it into new territory.

External Applications

You can setup any application to launch from within Plex. When this application is closed, Plex is reopened. This seems like a throwaway feature at first glance — why would you need to open up something else when Plex can do so much? But from a media center standpoint it helps having one more way of extending the livingroom feel without having to go back to the mouse/keyboard setup if you get it right. One application that is a prime candidate for launching in this manner is Emulaunch , and emulator launching program. Emulaunch fits in perfectly — running full screen and launching ROMs full screen. Emulaunch isn’t an actual emulator program, for that you’ll need something like SNES9x . Emulaunch will run the rom using whatever program it’s associated to run in (whatever program would run it when you double click). Without much trouble at all I was playing some Zelda a Link to the Past launched from Plex. If you were playing a specific game repeatedly, you could also set it up to run directly from Plex by launching the emulator you’d want to use and passing the game in as an argument. Since it’s possible to use Xbox 360 controllers (both wired, or wireless if you buy the controller adapter), this could easily become a new center for gaming.

Remote Control

I mentioned this last week, but it bears repeating — Plex has excellent support for apple remotes and Harmony remotes. I’d been using an Apple remote for the past year without any trouble actually. It’s so simple to use that you could give it to someone who’s never used Plex before and they’d be able to navigate around, play videos and even browse Hulu. To be fair, you can do all this with an Apple remote from Boxee as well. One of the advantages of Plex though, is that by holding down the menu button, you can get a list of advanced features which become important in managing a media collection. You could be perfectly happy running Plex with an Apple remote for a long time. I still plan to use it when people are over because of how easily new people take to it. For general use though, I love having a universal remote — a single remote for all my devices. That’s where the Harmony One comes in. With the One, and other higher end Harmony remotes, you set all devices through the bundled software. I was shocked when I went to add my Mac Mini here only to find Plex as a listed device. This sets up the remote with all of Plex’s default keys, getting your running with Plex right away. There is also a screen from within Plex to set this up which can be set for the Harmony line of remotes.