Plex blog

Plex on the new Apple TV!

11.02.15 498 Comments

Note: The Plex app requires the new fourth generation Apple TV, as Apple does not make the app store available on older models of the device.

There truly isn’t any other platform we’ve wanted to be on for as long as we have the Apple TV. Today’s the day, and we’re celebrating. The app is free in the app store for everyone, and requires the latest media server (note: you may need to download and install the very latest server manually for now on certain NAS devices).

First released way back in 2007 (the same year Plex started), the original Apple TV didn’t support any apps beyond the ones Apple provided. Two years later, in 2010, the second generation of the device was released and subsequently jailbroken, and a barebones third party Plex app was written. It was by no means easy to install, but it was technically impressive, and we ended up hiring both of the main people involved with the project.

Three years later, people discovered a way to run custom Apple TV “channels” on the device. Channels were the official way content partners added apps to the device, written in a custom markup language and Javascript. Coupled with a rather silly DNS trick, you could run the Trailers app on the Apple TV and have it run your custom channel. Enter three smart guys (and a surprising dearth of Frankincense) and all of a sudden it was possible to run a Plex app on a device without any jailbreaking. Over the years, Plex Connect was heavily developed, with a large user base.

Now over the years, we heard numerous rumors that Apple was going to open up their platform, and add a real app store. Every single WWDC the rumors heated up, we got excited (along with half the Internet), and then our hopes ended up dashed on some fairly sharp rocks. With no rum.

That being said, an app store on the device seemed an inevitability. Roku, Google TV, Android TV (essentially every other top streaming device) had them. How long could Apple hold out?

Turns out, until about 6 weeks ago.

The instant the fourth generation Apple TV was announced with an app store, we here at Plex pumped our fists in the air with excitement, as we raced to download the new Xcode and read the developer documentation. Our immediate goal was to be on the platform at launch, which means we didn’t have much time. What we did have was a clean modern iOS codebase for our new app.

Before we pull back the curtain on a few technical details around how we got here, let’s take a minute to appreciate this great-looking new app:


We had some tough choices to make. The new platform allowed for two very different ways to build apps, each with distinct advantages and disadvantages. The easiest was TVML, which is a custom markup language evolved from the earlier version present on previous generations of the device. TVML is a markup language for media interfaces, meaning that it’s incredibly easy to make the beautiful screens you’re accustomed to seeing in the Apple apps. On the other hand, they allowed running full native code, which was obviously essential for games, and provided the highest level of control.

We timeboxed two days of prototyping using both technologies, and quickly realized that a beautiful native-looking UI build with the native SDK would take much longer than using TVML. On the other hand, the limitations around the TVML media players led us to want to use our native code from the iOS app.

Fortunately, Apple makes it incredibly easy to bridge between the TVML/Javascript world, and the native world. So we worked hard to combine the best parts of both into the nascent app. We formed a small team which combined a handful of engineers and designers across four countries and as many timezones, who literally worked around the clock (thanks, round planet!).

The other important decision to make was how we would generate the TV Markup Language. After a bit of experimentation, we settled on a clever mechanism whereby we’d request XML from the media server, and then transform it using XSLT into TVML. Said with fewer acronyms and more gesticulating, we essentially transform the output from a Plex Media Server directly into the beautiful screens you see on the Apple TV. (And yes, we had to make a few small tweaks to the API, which is why we require a brand new media server for the new app.)

We’re incredibly proud of this new app, which is essentially one of the richest apps we’ve built feature-wise, built in just five short weeks. Feast your eyes on the screens, and then go download the new app. It’s completely free for everyone, and it’s awesome.

Thanks, Apple, for a great new device, a powerful new way of building apps for the big-screens, and an exciting future on the platform! Barkley really appreciates it.


Introducing the Plex Media Player

10.20.15 293 Comments

We have something really special to share with you today.

We’re incredibly proud to be taking the wraps off the future of premium media consumption in Plex. We’ve had a crack team working for the better part of a year on an app we’ve built from the ground up to deliver the absolute highest quality media browsing and playback experience. It represents an exciting new direction for us in lots of ways, and we call it the Plex Media Player. Because, well, it plays media. (Full disclosure: we ran Most Best Great Media Player Ever >9000 v3.11 for Media past marketing and they didn’t bite.)

Don’t feel like reading all about it and just want to DOWNLOAD ALL THE ONES AND ZEROS? Be our guests. The Plex Pass preview of the app is available today for download (sign into your Plex Pass-enabled account and choose the “Plex Pass Downloads” button). Let us know what you think in the new forum, or read all about it here. It’ll be free for everyone after the preview period.

Read more below after taking a look at some images of the beautiful new app.






If you’re still with us, and you’ve been around for a while, you know how seriously we take Plex in the living room. If you’re like us, you have a plasma TV whose size and sticker price your friends mock (but your cat gladly sleeps next to in the winter), more speakers than you can count (note to kids: they’re speakers, not climbing equipment), and a subwoofer that stresses the dog out every time it growls and rumbles below 20Hz.

We took a long, hard look at our current flagship for home theater enthusiasts, Plex Home Theater, and asked ourselves which bits we wanted to take to the next level and which ones we’d be happy sacrificing in a leaner, meaner, more beautiful, purpose-built high end Plex experience.

The final must-have list, written on an IPA-stained napkin, looked something like this:

  • Best media playback engine in the world. Needs to play every format under the sun. Needs to render hellishly complex anime subtitles without batting a tentacle, and support all the high-end features true Home Theater devotees want: refresh rate switching, display sync, rich subtitle support, popcorn maker integration, etc.
  • Most beautiful, efficient media library browsing experience in the world, scaled to any resolution (jagged posters and fonts are so 2002).
  • Truly cross-platform, with hardware acceleration, even on a Raspberry Pi 2. (How does a lovely 1080p UI on the Pi sound?)
  • Accurate determination/prediction of airspeed of various swallows (laden/unladen).

Needless to say, this was a pretty tall order, so we rolled up our sleeves and got started down the list.

What’s the best media playback engine in the world? After careful consideration, we chose mpv to power the Plex Media Player. A massively popular open source project with great community support, mpv effortlessly handles any media you throw its way and looks great doing it. It’s lean, incredibly fast, and very actively developed. We know the ones and zeros are only part of the story, though, so we reached out to @wm4, the primary contributor to the project (and incredibly talented individual), and promptly hired him full-time. He’s played an essential role in continuing to make mpv awesomer (it’s a word) while ensuring that it works even better within Plex Media Player.

Next up we needed to build the best media browsing experience in the world. Luckily, we had a pretty good head start with all the work we’ve been doing on our various TV platforms over the past year. If you haven’t seen them, they’re beautiful, efficient, and getting better every day. We incorporated a best-in-class web engine (Chromium 45, if you want to get technical) so we could take full advantage of our existing app and ensure an open, standards-based underpinning for the experience that you all value.

This means that we now have the same user interface running on everything from a PlayStation to a VIZIO TV, to our new Plex Media Player. In the long run, this implies consistency for our users, and massively improved efficiency when it comes to adding features and fixing bugs.

It took some serious special sauce to pull together a rock solid platform that would let us combine this best-in-class media player with a best-in-show web-based interface (spoiler: Sriracha & Mayo), and get it running flawlessly everywhere. We’re super proud of this piece of the puzzle, and also thrilled to let you know it’s open source, which means you’ll be able to help us tweak and improve it. Behind the scenes, as part of the work, we’ve contributed code for an MMAL hardware decoder for the Raspberry Pi, as well as improvements to Qt (which we use to power the cross-platform nature of the app). And here is the code for the Plex Media Player itself.

It’s been almost eight years since we set out on this wild ride, when we originally ported Kodi née XBMC to OS X, and we’ll always be thankful for that. Over the better part of a decade we’ve evolved that original code to align with our Home Theater users’ needs while simultaneously building our vision of a media platform for the future (a centralized server! a cloud component! mobile apps!). And now, finally, it’s time to take the next giant step. With Plex Media Player, we leave all that original code behind and strike out with a new core platform for the living room. We just wanted to take a moment to thank all those behind Kodi. We all cut our teeth on hacked Xboxes running XBMC, and we wouldn’t be here without you!

Lastly, we came to the matter of the swallows. Can we, stewards of common lore, harborers of folk questions’ answers, knowers of the most common Monty Python references on the internet, yet true viewers not, pretend to understand the pattern of the sparrow? We submit we cannot.

Will it be available to everyone? The new app is launching as an early preview version for our Plex Pass subscribers. Once the preview period ends, it will be available to all users; we’ll make another announcement when that happens.

Where’s search, TV theme songs, etc.? Search is a big priority for us and we’ll be adding it as soon as possible. You can find information about notable planned features and known issues in our forum.

What about mouse support, though? Don’t worry, Plex Media Player lets you use your mouse if you like pointy cursors.

Is Plex Home Theater still around? Plex Home Theater is still available and open source. We’re no longer actively developing it and are focusing our efforts on making Plex Media Player the best experience possible. (We’ll continue to make bug fixes for PHT for now.)

You can find answers to other common questions on our support site. We’ll leave you with a photo of Barkley, from eight years ago. Yep, he loves Plexing from the couch.