In the spirit on Mashed, as I wrote yesterday I've spent a few hours over the weekend putting together a bit of a technology mashup of my own.
The end result was using my Squeezebox as a nice external display and remote control for browsing and watching Freeview programmes recorded on EyeTV.
The best way of explaining it is probably to watch a demo:
In the video, I browse through the EyeTV recordings archive, view info about a recording (Peep Show), then play the recording, which is displayed on the TV (hooked up to the Mac which runs the SqueezeCentre server). I then go in, choose a different recording (Bill Bailey) and watch that.
So how did this come about?
The problem
I've got a Mac Mini plugged into the TV in my living room. I'd love to be able to use the BBC iPlayer on it. But - at the moment, I have to fire up Safari, sit close to the TV, and use a mouse to navigate round the website. Not a very user friendly "10 foot" experience.
My solution
So I looked around to see what I could use to make it better. The first problem was how to interact. I've got the Mac's remote control, which makes a good job of navigating Front Row. But it's not very straightforward to use it to control anything else, without resorting to using third party software to imitate keypresses,
I contined looking around for a plan B - another remote control device - ideally one which was easily scriptable and adaptable. Across the other side of the room, I remembered my Squeezebox. Originally it is designed as a music player, but it's actually a thin client for the server software that, in my case, runs on the Mac under the TV. And best of all, it's fully open source and extendable. A plan was starting to come together...
The next problem
It seemed straightforward - use the Squeezebox remote and display to navigate round the programmes available on the iPlayer, and when you find what you're looking for, press play, and it will fire up the programme on the TV, ready to watch. BUT the problem was that while the Squeezebox was extendable, the iPlayer is not (yet) opened up. So there's no official API to get programme info, and no way of telling the Flash player to start playing full-screen. While there were workarounds (there are several scripts for scraping programme info, and some illegal stream-downloading hybrid would be possible) these seemed a little too much work for one day's programming, and a little too fragile in the long term.
So eventually I decided that instead of controlling the iPlayer, it would be nearly as useful to be able to control EyeTV (the Freeview tuner / software on the Mac), and the programmes I've recorded. EyeTV has an Applescript interface, so it's easy enough to get recording data out, and then control the playback.
While it seemed straightforward in theory, actually doing it wasn't -- Squeezecentre (the Squeezebox's server) uses Perl, and controlling EyeTV requires Applescript. It's nearly 10 years since I did any Perl programming, and I've never done any Applescript (although it does look very similar to Macromedia Director's Lingo language, which I equally haven't used for 6 years). The plugin format for Squeezecentre is pretty obtuse (maybe it makes sense for Perl gurus?) and the documentation was rather sparse.
But, I managed to hack together a working prototype, which grabs all the current recordings from EyeTV, displays them as a navigable menu on the Squeezebox's screen showing programme details, recording dates, channels, etc, and then choose to play them on the Mac's screen (my TV).
Basically you have a remotely controlled, off-screen-on-screen menu displayed on an external LCD screen.
What next?
Well, perhaps I'll get time to do some more work on this to tidy up the edges and add a few more bits of functionality in there. I'll maybe see if there's any community of EyeTV AND Squeezebox owners (it's probably a bit niche) with better development knowledge to take it further.
What would be really interesting is when the BBC release APIs for the iPlayer, to convert the Squeezebox into a hardware iPlayer browser. The future's bright...
Write a comment
Posts: 1
Reply #1 on : Fri August 22, 2008, 15:18:57