Posted on 5 January 2011
Recently, I've been working on Airplayer, a Python script to make media playing software Apple Airplay compatible.
It currently supports XBMC, Plex and Boxee, but could support any media playing software through the 'pluggable backends' feature.
Due to this feature, Airplayer could support any media playing software as long as it provides some kind of an external API like a HTTP API. Media backends work pretty easy; there's a BaseMediaBackend which defines abstract methods like play, pause, get player position, set player position etc. Media backends just need to be a subclass of the BaseMediaBackend and implement the required abstract methods.
Currently, media backends are implemented for XBMC, Boxee and Plex. The XBMC media backend is implemented using the new JSON-RPC api, however not all required methods are exposed through this api, so for some cases the old, deprecated http api is used.
Boxee and Plex unfortunately do not ship with the JSON-RPC api, so everything is implemented using the old HTTP api which is a pain compared to the JSON-RPC api.
I myself use my script on my Asrock ION 330HT, running Ubuntu with XBMC. I especially like that I'm able to show pictures from my iPhone on my TV which such ease, great for showing pictures to friends and family.
Here's a movie demonstrating basic usage of Airplayer. You see me starting the airplayer script on the ASRock ION through a SSH terminal. Currently that's not even necessary anymore as Airplayer can run as a system daemon, so it just starts in the background when my media player boots.
In the future I would love to see other people write media backends too, so it could be used with a wide range of media playing software. As it's coded in Python, it runs on Mac OS X, Linux and Windows so it could make media players on all those platforms Airplay compatible with no problem at all.
If you would like to create a media backend to make your favourite media player Airplay compatible and you need some help, don't hesitate to contact me.
Airplayer currently doesn't support any IOS 4.3 specific features. I have implemented IOS 4.3 features but I won't publish it until IOS 4.3 goes final, because by doing so I would probably violate my NDA with Apple.
Airplayer now supports IOS 4.3. You can now stream movies recorded on your iPhone and stream movies from third party apps supporting Airplay.