Getting Open University Podcasts on your TV with MythStream

Christmas is upon us once again and inevitably many people will be thinking about what to enjoy on television as they recover from all of that food and drink! So in my last blog post for this year I thought I would experiment with MythStream, a plugin for MythTV which is a multimedia home entertainment system designed for PCs that are connected to your TV and you operate with a remote control rather than the traditional laptop and desktop experience of computing. In my last post the Open University's new podcast website was brought inside Miro, but in this example, information will be extracted from it to integrate it with MythStream and MythTV so you can enjoy the content of the site from your armchair. The OU's podcast site uses a hierarchical navigational structure that made it a bit difficult to import the whole thing into MythStream straight away. Fortunately, MythStream enables you to write your own parsers for external websites, so you can import the same navigational logic, even if it is not supported out of the box.

MythStream in action

The parsers are written in Perl, which I must admit I'm a bit rusty with these days, but had a go to produce this experimental script, which is completely unofficial of course. MythStream comes with several parsers, and the website for it has a full explanation of how they work. Rather than starting from scratch, I started with a copy of the script to parse podcasts. The interesting thing about this script is that it is slightly recursive. A couple of navigation menus have to be created first, and then the actual feed containing the podcasts, which is usually subject specific, is passed to the existing script which contains links to files MythStream can play. At each step the aim is to produce an XML structure that MythStream can understand, which contains a link name, URL, description and handler. If you specify your own script as the handler again, you can get MythStream to call yor script and provide a different level of navigation dependant on the URL supplied. MythStream will usually download the file that you want to work with and then pass it to your script for processing, this can be overridden though.

Subject menu, showing original site on left and MythStream on right The first level of navigation is to split all of the content into three groups, OU Learn, OU Life and OU Research. This is a common navigation element between the podcast website and the OU's site on YouTube. This is the initial entry point for the navigation that the MythStream site will provide, and in the script I just hardcoded this in for ease. This also means that MythStream does not have to download anything first. The second level is a bit more tricky, only OU Learn is split up into subcategories here, but I assume this could change in future. As I couldn't find a feed for these subcategories, the script takes the HTML page and parses the menu on the right hand side. If it find links it returns a list of them, if not it returns a link to the next level down. In the picture above you can see a snippet from the original site containing the subjects, and how this looks in MythStream. After a selection is made on this menu, names of podcasts become available. These details are taken from an RSS feed, no media files are available yet as you'll need to select the podcast you would like first. This level is also handled by the script, but it encodes each link from this level to be handled by the existing script, which can take over from here. So the script is just a piece of integration work, designed to be a bit of glue to stick the OU podcasts website to MythStream.

A list of podcasts available

If you fancy having a play with this yourself, you will need make sure you have MythStream installed, in Ubuntu and Mythbuntu, a version of Ubuntu optimised for MythTV, it is available as a package. You need to copy the parser, making sure it is executable, (contained in the tarball/archive at the end of this post) into /usr/share/mythtv/mythstream/parsers/ and then set it up in MythTV by going to Utilities/SetupSetupMedia SettingsMythStream SettingsStreams then click on “Podcasts” in the left hand panel. In the right hand panel you will notice a box saying “Add Stream” enter these details:

Stream Folder: Podcast Feeds
Stream Name: Open University Podcasts
Stream URL: oupodcasts
Stream Description: [Anything you like]
Stream Handler: *oupodcasts

Notice the asterisk before the stream handler name, this tells MythStream NOT to download the document at the Stream URL before calling the parser. We set it up like this because the first level of our navigation is hard coded, if you don't put in the asterisk you will get an “invalid URL” message. Now click Add .

You can now get to the OU podcasts by returning to the first menu and going to Media LibraryPlay Online StreamsPodcastsOpen University Podcasts and you can select what you would like to see or hear. The script isn't perfect and in the new year I want to explore this technology more fully. Putting computers in living rooms seems like potentially quite a powerful concept, the steps in this post are a bit fiddly, but still enough to pipe hours and hours of educational content directly to your TV. What else is possible?

*** Update 6th February 2008 ***

The script has been updated to remove the HTML screen scraping and get the required information from an OPML file. Read all about it and get the new version of the script at:

Linking a podcast site into MythStream using OPML (the OU MythStream script revisited)



Add new comment

Comments are always very welcome, but please note the following:
  • Sadly due to the high number of spam comments recently all comments are now manually moderated. You comment will therefore not appear on the site instantly.
  • Comments on this web site are monitored for spam using Mollom. By posting a comment, you accept that your message and other personal details about you will be analysed and stored for anti-spam and quality monitoring purposes, in accordance with Mollom's privacy policy.
  • Please use your own name not a company or website name to submit comments. Your comment will be removed if you don't do this.
  • All links in comments will be marked with a no follow attribute. That means posting a link to your site here won't help your search engine rankings.
  • By submitting a comment you agree that your comment can be reproduced under the same licensing terms as the rest of the content on the site.
  • Comments can be removed at any time without explanation, but won't be removed just because you disagreed with something I said.