Tuesday, November 04, 2008

Amarok podcasting 2.0 and post-2.0 plans

Hey fellow developers and users,

In Juli 2007, at Akademy Glasgow I started implementing podcasting support in Amarok2. Since then I was sidetracked a little, as you may be aware.

The little time I did manage to spend designing and implementing was short and far from focused. So a lot of features are not finished or just plainly missing. The framework I created underneath suffered from the same lack of focus and is need of a good review. I'm aware there is probably some overdesign and some parts might be to complex. If you feel you can help in that area I suggest you take a look at extragear/multimedia/amarok/src/podcasts . Send questions, comments and suggestions to amarok-devel@kde.org .

The 3rd beta from Amarok 2.0 is already out the door and podcasting support is still not finished. In order to make it I had to reduce some goals I had set for myself during those rainy summer days in Scotland. Here's the plan:

Amarok 2.0:
The focus ATM is on finishing the SqlPodcastProvider, Podcastmodel and PodcastCategory (GUI).
SqlPodcastProvider uses tables in the standard SQL database, adds and updates the feeds using PodcastReader and downloads to disk using the regular KIO-jobs.
To make the podcasting fully functional though we'll need to reintroduce:
  • Autoscan the feed for updates
  • Download when available
  • Episode purging (delete downloaded episodes automatically)
The settings dialog for this exists, next up is using them :).
The GUI currently shows all episodes ever read from the feed, which obviously needs to be addressed.
The GUI for 2.0 should be very similar, if not identical to Amarok 1.4, probably minus folder tree grouping support since that is better handled generically for all Playlists (which PodcastChannel is in our class diagram).

If anyone has a bit of Qt Model/View experience and would like to see podcasting in Amarok 2.0 I suggest you send a mail to amarok-devel@kde.org or ping me on irc (Stecchino on #amarok).
Without help we might have to drop it's from 2.0 completely because it's a bit much for me alone to complete and stabilize.

Amarok > 2.0:
I do have a plan for a complete GUI overhaul post-2.0. I'll get some art and usability advice in another blog post when the time comes.

The 2.x releases should see more advanced features being introduced that the framework is already designed to support:
For the SqlPodcastProvider specifically:
  • Renaming and sorting individual episodes (popular request)
  • Purging based on episode age and/or total size on disk
  • Labeling of PodcastChannels (perhaps to replace traditional folder tree grouping)
More general
  • Mediadevice Podcast support: iPod being the most advanced implementation but also generic usb devices, music phones and Canola2, I'm sure the INdT guys could help us with that.
  • OPML import and export
  • Podcast Directory personal subscription list.
  • BashpodderProvider: to use bashpodder and Amarok in parallel with synchronized download status
  • ...
On to hacking.