Archive for the 'Developers' Category
myPlex Queue API How-to
Hi Guys! André here, taking a break from working on myPlex to give you an update on how it’s going. Since we launched almost two weeks ago, myPlex has gotten off to a very rousing start. Sophisticated and good-looking Plex users (that’s all of you) have been queueing videos from all over the internet to watch later in one of the many Plex clients.
Enterprising Plex users have even created Chrome and Safari extensions to allow queueing videos directly. Those clever coders have already figured out the HTTP requests to add an item to your myPlex queue. But we want everyone to be able to add to their queues as easily as possible.
So, I thought this would be a good time to explain how those requests work. Armed with this information, you will be able to add “Plex It!” functionality to any program or script that can make HTTP requests. If you’re not the kind of person who “adds functionality to any program or script”, I suggest instead that you bask warmly in the knowledge that there will soon be even more ways to add videos to your myPlex queue.
Anyway, back to adding videos to the queue. Once you have a myPlex account, you only need one thing to queue a video: the URL. As long as you give myPlex the URL of the page with the video on it, we will handle the rest of the work. While not every website with videos works yet, rest assured that we are busily working to expand myPlex to encompass all videos, everywhere.
All requests to myPlex must be made over HTTPS, and must be authenticated. The easiest way to authenticate is to just use HTTP Basic Authentication with your myPlex username and password. Once you have an account and a URL, though, adding a queue item is very easy. How easy, you ask? Let me show you with curl.
$ curl -i -u "username:PASSWORD" \
--data-urlencode 'url=http://www.youtube.com/watch?v=FCSBoOcGFFE' \
https://my.plexapp.com/queue/items
HTTP/1.1 200 OK
That’s it! Next time you load up Plex on your TV or mobile-handheld-thingy-of-choice, you will be presented with the chance to find out exactly how reality hits you, bro.
That’s all for now, but if you’re writing an application or client that integrates with myPlex, stay tuned! I’ll be writing a followup post explaining how you can connect to a myPlex user’s account without storing their password.
17 commentsAutomated Channel Testing
Along with the Plex desktop applications, there is a lot of infrastructure behind the scenes that we’ve been working on. Today I want to focus on Plex Channels, which bring Internet media content to your desktop and mobile Plex clients.
The Web is in a constant state of flux, with sites changing and being redesigned. Wherever possible, the Plex Channels use the site’s API to ensure stability in the face of this change, but at this point we have nearly 250 channels, and we decided it was time to add some automation to the quality assurance process. Whenever we have a server sitting with idle cycles, I’m deeply bothered, since I feel those cycles could be spent doing productive work. Didn’t someone once say that the devil makes work for idle cycles?
Fast-forward a few weeks and that lazy server is hard at work checking all of the channels for failures and putting the results up on a giant board with ~ wait for it ~ colored status indicators! That’s right, we took the colors that the US Dept of Homeland Security established for its terror alerts (doubtlessly arrived at after months of study and millions of dollars of expense), and shamelessly stole them for our leaderboard. According to the image below, if you plan on using Webcomics, expect a backscatter.

What you’re actually looking at in the list above are plug-ins that have been fixed. When the tester detects a problem, it uses advanced heuristics similar to those used by HAL when he tried to kill that annoying Dave character to assign a point value to the broken channel (How long as the plug-in been broken for? How badly broken is it? Is it a popular channel?). After that, our enterprising group of ninja developers swoops in and fixes it, the tester verifies the fix, and gives points to the developer who fixed it.
The points accumulate, and every month, the people with the top three scores have lavish amount of praise and modest cash prizes (enough to feed a healthy gadget obsession or impress a significant other) heaped upon them.
The first round just ended, and we’d like to take a few minutes to meet the winners. Amazingly, given the total number of points accumulated, there was a tie for first place (if that’s not the definition of bi-winning, I don’t know what is). Without further ado, let’s meet the first 1st place winner, Pierre (twitter: @pierredn), who had some beers with us during the San Jose Plex meet-up and who is an all-around super cool guy.
Pierre, can you tell us a bit about yourself?
I’m an electrical engineer by trade living in California. I’ve always loved computer programming and tinkering with computers, so Plex was a match made in heaven with its open plug-in architecture. Now the only thing I need is a bit of time to enjoy watching TV/Movies/Media ….
How long have you been using Plex?
I have been using Plex since May 2009 when I read an article about it, I was very intrigued and jumped right in. It was love at first sight and although my media library was pretty small at first due to the awkwardness of the media managers I used to use, it has now grown to a respectable size since Plex makes it so easy to manage all the different files you may have. After a few months of ramping up, I saw the lack of plugins in my native French language, started writing a few and offered to help. I haven’t stopped ever since. I now dream in Python.
What’s your favorite feature and the one thing you’d like to see changed/added in Plex?
favorite feature in Plex : Plug-ins! They helped me cut the cord on cable TV and save a ton a $$ every month. I now only watch what I want to watch and they help me stay connected to foreign media all the way to my bed with the great iOS app ….
one thing to change : more support/content for live events / sporting events – not entirely a Plex feature but that would the last step toward completely replacing traditional broadcasts and streaming absolutely everything.
Tied for first place is Sander, from the Netherlands, who has been Plexing for years and is one of the nicest and most helpful guys you will ever meet.
I’m a 30 year old guy, addicted to coffee, film festivals and TV shows such as Fringe, Twin Peaks, The X-Files and La Femme Nikita. I have a background in interaction design and usability testing, but my interests also include (new) web technologies and everything that’s got to do with (digital) video and film. When my Windows/MediaPortal PC died a little over two years ago, it didn’t take long for me to decide to switch to the Mac after I discovered Plex. Four months later I wrote my first plugin (for the Dutch Film Festival website). My favorite Plex feature is the automatic collection of metadata. Although I personally don’t like the media flags, I really love the background art and preview images that are shown for all my movies and shows. But the metadata settings is also a part of Plex that I see a lot of (non-English speaking) users struggle with and it could use some improvements.
In third place is Ryan McNally, who has also been with us for years; he’s written an iPhone app for Plex, and tons of plug-ins.
Ryan, can you tell us a little bit about yourself?
a/s/l: 29/male/Toronto, Canada
Likes: Curling, golf, Python and Objective-C. Really bad zombie movies. The black stuff. Comics that would put CCA censors into conniptions. Those forms of rock commonly described as ‘Hard’. Animation.
Dislikes: Allman braces, lower_case_variables_with_underscores, Flash Player for video streaming. Java apps on OS X. The perversion of the noble potato for wussy fruit drinks. Clown shoes.
Claims to Fame: Wrote the first mobile app to connect to the Plex Media Server. Some of his plug-ins have been downloaded over 9000 times. Charlie Sheen had to go into rehab after doing a hit of /him/.
How long have you been using Plex?
Since it was called osxbmc. Remember when it was called Plexsquared? And Sean was like “Drop the squared. It’s cleaner.” and we were all like “What the hell would you know Sean? Your p2p network is polluted and ‘Cry me a River’ is downright creepy.” And then we changed the name and went water-skiing with nude supermodels? At least that’s how I remember it.
What’s your favorite feature?
The media server is the best thing to happen to web media since H.264. One day people will wonder how we ever accessed web videos (or videos as they’ll call them) without it.
…and the one thing you’d like to see changed/added in Plex?
Well I’m not one to suggest changes to other people’s work but I’ll give it a go: I’d love to be able to write pms handlers for new file types (pdf, rar, cbz, epub to photosets/video streams) and webhosts (hotfile, nntp); create arbitrary metadata schemas (for comics, ebooks, magazines); and HID+streaming (GameCenter). I still have collections that aren’t managed by Plex. They laughed when I suggested ebooks in iTunes. Now it’s big business for Apple. I don’t want six apps to handle my entertainment. I want one, one good one. I think you know which one I’m talking about.
Many congratulations to our winners, and best of luck in the next round to all the others who participated! (By the way, the monthly competition is open to any developer who has at least three Channels/Agents accepted into the official Plex repo.)
15 commentsHappy Holidays from Plex!
We just wanted to take a moment and wish you and your families a happy holidays! Thanks for spending this exciting year with us, thanks for your feedback, your encouragement, your enthusiasm, your kind words, and even for your constructive criticism. We’ve come a long way in the last year, and we have some amazing plans for 2011!
We’d also like to drop a little something in the stockings of our development community out there, in the form of a development key for the transcoder embedded in the Plex Media Server. Even though we’ve handed quite a few out to people who have asked, there has never been a public key available, which would be useful for building an HTML5 browser for the Plex Media Server, or any other number of other interesting things.
Without further ado, here is the key:
API Key: KQMIY6GATPC63AIMC4R2
Secret Key: k3U6GLkZOoNIoSgjDshPErvqMIFdE0xMTx8kgsrhnC0=
(Here’s some sample Javascript code that shows you how to use it, thanks to our friend Frank; we’ll have more details up shortly.)
The only limitation on this key is that it may not be used for any commercial application, including any application (whether free or not) in any app store, without discussing it with us first.
I should point out in relation to this key, and community development around Plex in general, that two full-time employees of Plex came to our attention because of really cool contributions they made to the project. We’re going to be looking to grow the company in the coming year, so if you’re a kick-ass developer who would like to work on an amazingly fun project, build something with all the tools at your disposal, and blow us away.
But for now, eat, drink, be merry, and spend some time with the people you love!
