Chumby Podcast Client Source Code


Ok so I blogged about a podcatcher/podcast client for the Chumby quite a while ago (August 2008 to be precise). At the time I said I'd tidy things up and release the source code etc. Well that didn't quite happen, but I figured I might as well release the source code. So seeing as I've been using git a lot lately and github is easy to use I thought that'd I'd best just put online what I had.

So you can now find the hybrid Python, Javascript and Flash Chumby postcast client I dubbed chumbycast, on github. I'm providing the code just for the curious - I've had at least one request for it, but I'm not really going to detail too much of how it works. Though some of this is outlined in the original post where I mentioned the project.

I am tempted to revive this project a bit, but probably by trying a different approach. I mostly gave up on this as I was creating a UI on the Chumby in Flash and my Flash skills aren't exactly great, plus I was trying to use mtasc which hampered things further. Which is not to belittle mtasc - it's just with limited time and no previous Flash experience I wasn't exactly helping myself by not using some nice friendly Flash IDE.

I've since realised that if I ditched the Flash UI I could probably get quite a bit done. The Python httpserver side of things was pretty easy. So if I focussed on that I would then have a few of ways of providing a UI by hijacking existing functionality on the Chumby.

  • The Chumby runs a httpserver on port 8080 when an ipod is plugged in, which the UI uses to access playlists etc. I could mimic this approach and effectively make the podcast client look like an iPod as far as the Chumby's UI was concerned. By plugging in a USB stick loaded up with the podcast client everything would behave the same as if you had plugged in an iPod.
  • It's possible to create playlist files and edit the "My Streams" section programmatically. Each podcast subscribed to would create a matching pls or m3u file and be added to the "My Streams" section.
  • Create a javascript/web UI for controlling the playback and subscriptions to podcasts and other podcast management tasks (like removing old files, manually downloading older episodes etc) from another computer. Possibly adding bonjour/zero-conf support so the Chumby can be browsed to easily

I would need to see whether those first two could be made to work for my purpose, but it would make sense to just use the existing UI on the Chumby - rather than creating a new one. The existing chumbycast code already provides a javascript/web UI for controlling the playback on the Chumby. This was originally done so I could remote control the chumby, but also so that I could easily create and debug an API for the Flash UI to use.

The other major missing feature is allowing the podcasts to be paused part way through. The current client does not support this, as the audio files are streamed and not downloaded. So that would be the first change to make. Now that I've dug out the code maybe I'll be inspired to play around some more. I've also been listening to a lot more podcasts (thanks to Huffduffer) so it might happen yet.