Issue #19 May 2006

Podcasting in open source


This Palm Pilot Tungsten E holds over 100 OGG files, thanks to some additional software and a 1 GB SD card.

Podcasting has always struck me as a bit paradoxical. On one hand, it grants anyone access to a wide listening audience. True democratization of content. You, the listener, choose what radio shows and content you want to hear. Advertisers and media conglomerates may loom over the airwaves, but you control your downloads. The content you want, when you want to hear it. And you get your RSS feeds in open source xml.

On the other hand, podcasting has become intricately tied to various proprietary file formats and software. The vast majority of audio files are sent in MP3 format. People get their favorite shows through iTunes and listen on iPods, jamming needlessly in a proprietary iWorld.

There is a better way. Did you know that podcasts can be produced, fed to RSS feeds, downloaded, and heard in OGG format... on Mac, Windows, and Linux?

Ok, so neither did we. And there aren't a whole lot of OGG podcasts out there yet. But it's every bit as simple to do, and the Ogg Vorbis codecs are open source, so why not spread the word?

There's a lot of controversy over MP3 vs. OGG, but at the end of the day, the quality is comparable, the codec is open source, and you can freely use the OGG format in ways that mp3 does not allow.

Getting ogg on Linux, Mac, and Windows

The iRiver 700 and 800 series plays OGG files.

If you're already running iTunes on Mac or Windows, there's a simple third-party plug-in that will have your ogg files downloading and playing in seconds. This is nice if you have MP3 podcasts that you are already subscribed to, or if you use iTunes already for your music organization. Proprietary, to be sure, but if you were a purist, you'd be using Linux. Still, it's valuable to the open source community that the average user can easily get OGG podcasts.

If you're running Fedora™ Core 5, you're in luck. It ships with Rhythmbox, and you can download and play OGG podcasts in the latest version without any extra labor.

If you're running Fedora Core 4 or Red Hat® Enterprise Linux® 4, it's a bit trickier to find software that downloads and plays OGG but not MP3. (You didn't really think we'd suggest downloading software with illegal libraries, did you?)

Try CastPodder, a Linux podcast aggregator, instead. This will download your OGG podcasts automatically, and then you can play them using your preferred audio player. You may also be able to download the latest version of Rhythmbox, depending on what Linux distribution you're using.

Building your first RSS feed

Now that you've seen how easy it was to download ogg podcasts, why not build your own or help an MP3-enslaved friend?

RSS feeds are remarkably simple. If you've never been much of a programmer, don't let the xml scare you. Using our sample feed, you can easily build your first OGG RSS feed. (If you'd like to distribute your music in MP3 as well, you can copy the feed you've created, change the file names to your MP3 files, change the audio type from /ogg/ to /mpeg/, and you're done.)

Let's break down the code and figure out what it does, and what you'll need to tweak for your feed.

Podcast information tags

At the beginning of the file, you will see:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
 
  <channel>

And at the end:

</channel>
</rss>

Ignore these; they just tell the rss reader what's going on. No adjustments necessary.

At the top of the file, you'll see:

    <title>My First Podcast</title>
    <description>This is my first podcast.  This description describes, 
    in general, what the podcast episodes will be about.</description>
    <link>http://www.myurlhere.com/</link>
    <language>en-us</language>

The title is the title of your RSS feed (your podcast), not of the individual audio episodes. So, our title is Red Hat Magazine Podcast. Yours might be something like The John Menendez Show.

The description is a descriptor of your podcast, again, not of individual episodes. Yours might be something like "A weekly radio podcast that takes a zany look at the inside world of Guatamalan expats."

The link is to your podcast website, where listeners can find out more info about your show.

The language is expressed in RFC 1766 code, where American English is en-us and British English would be en-gb.

Next, you'll see:

    <copyright>Creative Commons by-nc-nd 2006</copyright>
    <lastBuildDate>Thu, 27 Apr 2006 10:00:00 -0500 </lastBuildDate>
    <pubDate>Mon, 01 Apr 2006 10:00:00 -0500 </pubDate>
    <docs>http://blogs.law.harvard.edu/tech/rss </docs>
    <webMaster>myemailaddress@myurl.com </webMaster>

The copyright is your licensing info; most people use some form of Creative Commons Licensing or Public Domain.

lastBuildDate is the last time you adjusted the file for any reason.

pubDate is the last date of publication, so the last time you added an episode.

docs is just a pointer to reference material about your xml file; you can leave the same file as ours, point to this article URL, etc.

webMaster is the email address for the person in charge of the technical issues for your podcast.

iTunes tags

   <itunes:author>myemailaddress@myurl.com</itunes:author>

    <itunes:summary>My podcast is a really neat radio show.  
    Check it out.</itunes:summary>

    <itunes:owner>
           <itunes:name>My Name Here</itunes:name>
           <itunes:email>myemailaddress@myurl.com</itunes:email>
    </itunes:owner>

    <itunes:image href="http://www.mysmallimagehere.png" />

<itunes:explicit>No</itunes:explicit>

<itunes:category text="International">
     <itunes:category text="Polish"/>
</itunes:category>

The next few tags are iTunes-specific and optional, but recommended. You catch more fish when you cast your line into a busy pond, and proprietary platform users make up an ocean of potential listeners. These tags specify information for iTunes, and they are fairly intuitive.

itunes:image specifies an image for iTunes to display when showing the details about your podcast. Explicit refers to the content; unless you're using very strong language or podcasting your bedroom adventures, you're probably safe with no here. The category choices are found within iTunes, but if you don't have access to the software, here's a cheat sheet.

Episode (item) tags

Finally, you'll see two sets of code snippets that are wrapped in <item> </item> tags. These are samples of what the code for each episode will look like. Remember to put the newest episodes at the top, and let the older episodes move down toward the bottom of the file.

The latest episode is detailed with the following code:

<item>
<title>Name of my latest episode here</title>
<link>http://www.myurl.com/episode2.ogg</link>
<description>This is the latest installment in our 
podcast series.  Blah blah blah.</description>
<enclosure url="http://www.myurl.com/episode2.ogg" 
length="4673406" type="audio/ogg"/>

<category>International</category>
<pubDate>Mon, 17 Apr 2006 10:00:00 -0500</pubDate>

<itunes:explicit>No</itunes:explicit>
<itunes:subtitle>A subtitle for iTunes goes here.</itunes:subtitle>
<itunes:summary>Reuse your description here.</itunes:summary>
<itunes:duration>00:04:52</itunes:duration>
<itunes:keywords>polish podcast pierogi poland other 
relevant keywords</itunes:keywords>
</item>

The title is an episode title. This might be something like, "Backpacking in New Mexico." The link is the url to your ogg (or mp3) file. Be sure to use the full url and not just the file name.

The description gives more information about this particular episode. The enclosure url is also a link to your OGG (or MP3) file. Be sure to include the file length (in bytes), if possible. The type will be "audio/ogg/" or "audio/mpeg/".

The iTunes-specific tags are similar to those above. If you want to optimize your use of these, have a look at another podcast in iTunes to see exactly how they will be displayed.

Note:
Although there are options for keywords, the iTunes music store does not seem to actually use these when a user searches for your podcast. Perhaps this tag is intended for a future releases of iTunes.

After you've entered all of the information for your first episode, copy and paste the code snippet, from <item> to </item>, and reuse it for your latest episodes. Each episode should be surrounded by an item tag, with the oldest episodes on the bottom and the newest at the top.

Note:
If you want to podcast in both OGG and MP3 formats, remember that you'll need two separate xml files, one for each format. This prevents your users from downloading the same episode in both formats--and from crashing their software, if it doesn't support both OGG and MP3.

Taking your OGG on the road

This hand held iRiver 700 plays OGG music out of the box.

While there are some portable OGG players available on the retail market, the selection is still fairly limited. Interfacing these players with Linux can also be a challenge.

Software like the open source POggPl allows you to play OGG files on PDAs with Palm OS 5.0 or higher. There are similar shareware programs available, as well.

There are also a variety of methods--some more successful than others--for getting your iPod to play OGG files.

But for some unknown reason, I just can't seem to find anyone eager to let me perform open source experiments on their $400 iPod.


Some podcasts available in OGG

No login required. Want to see your comments in print? Send a letter to the editor.
  • Red Hat Magazine's podcast is now available in OGG.
  • LugRadio is a fortnightly British radio show that takes a relaxed, humorous look at Linux and open source.
  • The Nashville Feed is a podcast with 75% Nashville based music and 25% Nashville perspective. Most music is released under Creative Commons license.
  • CBC Radio 3 is 8.5 hours of the best in new music and culture from Canada and around the world, hosted on CBC Radio Two every Saturday night.
  • Linux Australia Update
  • NerdTV is a new weekly online TV show from PBS.org technology columnist Robert X. Cringely. NerdTV is essentially Charlie Rose for geeks - a one-hour interview show with a single guest from the world of technology.
  • A podcast about cricket. You know, the sport.

About the author

Rebecca Fernandez is an associate web writer at Red Hat. She can frequently be seen raiding the communal candy dish in search of Hershey's extra creamy milk chocolate nuggets.