In my current series of XML tips, we've been looking at various markup languages, tools and technologies related to syndication, including various forms of RSS, Atom and even RDF. In today's tip, we'll take a look a one particular type of syndicated content—namely podcasting—that has become extremely popular and incredibly widespread on the Web. In part, podcasting's popularity is a testament to the popularity of the Apple iPod, after which podcasting takes its name. Even though you don't have to use an iPod to listen to a podcast, there's no doubt that this ubiquitous personal audio device helped launch the podcasting phenomenon. But to my way of thinking, podcasting's popularity is even more of a testament to the simplicity and ease in syndicating all kinds of content, including audio, thanks to simple markup languages and good tools for creating content that exploit their capabilities.
But for some, podcasts can indeed be played back on PCs (and Macintoshes, of course) as well as MP3 audio players of all kinds, nothing *really* counts as a podcast unless it's listed on the iTunes Store Web site. Though this is just another syndication aggregator, for those with strong beliefs it is the sine qua non of podcasting listings. This means creating RSS feeds that display the following characteristics:
1. XML markup conforms to the RSS 2.0 specification
2. Includes recommended iTunes RSS tags (more on these in the next paragraph)
3. Contains pointers to the episode (podcast) you wish to playback
Of course, it's also necessary to create a first episode, which may be in any of the following file formats: .m4a, .mp3, .mov, .mp4, .m4v or .pdf (datatypes must correspond to the file type as well of course). Then post the episode file on a server with a publicly accessible URL. Once the RSS file gets posted to a server that is likewise publicly accessible, you need only submit the URL for your RSS feed to iTunes for the listing process to get underway.
The iTunes markup makes use of the XML namespace itunes and must be referenced in the rss document header element as follows:
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
Each of the itunes namespace elements is preceded by "itunes:" in the markup and is what iTunes uses to catalog, index and present RSS feeds listed in the store. A few of the namespace elements are listed here in alphabetical order, but you can find a complete explication in the iTunes namespace definition at FeedForAll (we skip the <itunes: text that must precede every such invocation strictly for brevity).
- <category>: Use at the
- level to describe where the podcast should appear when browsing by category at the iTunes Music Store.
- <duration>: Use at the
- level to describe how long the episode runs, either in HH:MM:SS notation in by total number of seconds.
- <summary>: Arguably the most important itunes: element, it may be used at either <channel> or <item> levels, and shows up as the long description of the podcast in the iTunes listing. Apple recommends that anything you'd want to put in a keywords meta-tag, you're better off including in the summary because it is extensively indexed and cross-listed.
Though you will find plenty of tools to help you build podcasts (and be aware that for audio work, a production/recording tool like the Open Source Authenticity is also needed to lay down the sound tracks you'll eventually package up as episodes), this XML markup is simple enough that most people can hack it out by hand as well. For a plethora of tutorials, tips and examples, check out content and links on the Podcasts – Technical Specification pages on the Apple iTunes Music Store Web site.
About the author
Ed Tittel is a full-time writer and trainer whose interests include XML and development topics, along with IT Certification and information security topics. Among his many XML projects are XML For Dummies, 4th edition, (Wylie, 2005) and the Shaum's Easy Outline of XML (McGraw-Hill, 2004). E-mail Ed at firstname.lastname@example.org with comments, questions or suggested topics or tools for review.