ProductsDesktop Server For Scientific Computing For IBM POWER For IBM System z For SAP Business Applications Red Hat Network Satellite ManagementExtended Update Support High Availability High Performance Network Load Balancer Resilient Storage Scalable File System Smart Management Extended Lifecycle SupportWeb Server Developer Studio Portfolio Edition JBoss Operations Network FuseSource Integration Products Web Framework Kit Application Platform Data Grid Portal Platform SOA Platform Business Rules Management System (BRMS) Data Services Platform Messaging JBoss Community or JBoss enterprise
SolutionsApplication development Business process management Enterprise application integration Interoperability Operational efficiency Security VirtualizationMigrate to Red Hat Enterprise Linux Systems management Upgrading to Red Hat Enterprise Linux JBoss Enterprise Middleware IBM AIX to Red Hat Enterprise Linux HP-UX to Red Hat Enterprise Linux Solaris to Red Hat Enterprise Linux UNIX to Red Hat Enterprise Linux Start a conversation with Red Hat Migration services
TrainingPopular and new courses JBoss Middleware Administration curriculum Core System Administration curriculum JBoss Middleware Development curriculum Advanced System Administration curriculum Linux Development curriculum Cloud Computing and Virtualization curriculum
ConsultingStandard Operating Environment (SOE) Strategic Migration Planning Service-oriented architecture (SOA) Enterprise Data Solutions Business Process Management
Issue #19 May 2006
- Intro to design thinking
- Better Linux release notes through design thinking
- Nashville institution influences Summit design
- (Graphic) design exposed
- Design books that inspire us
- Podcasting in open source
- The Nashville Feed: Sounds of Music City
- Lyceum: One installation, many blogs
- Release early, release often. Why?
- Fedora and Red Hat Enterprise Linux, part 1
- Nashville by day or night
- Running Linux on small servers
- FAA saves $15 million
- Video: Muvee-making with Linux and Xen
- Video: Why Red Hat is interested in virtualization
From the Inside
In each Issue
- Editor's blog
- Red Hat speaks
- Ask Shadowman
- Tips & tricks
- Fedora status report
- Podcast (XML)
- Magazine archive
Podcasting in open source
by Rebecca Fernandez
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?
Getting ogg on Linux, Mac, and Windows
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:
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>email@example.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:author>firstname.lastname@example.org</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>email@example.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.
- 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.
- 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
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
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.