Advanced RSS Tags

We would now like to take our Podcast to the next level by adding more tags to the RSS feed to give PodCatchers (and thus our Subscribers) more information about our Podcast and various episodes.

We have arrived at the following podcast.rss file during the preceeding lessons:

Our functional but still boring podcast.rss file:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Craig's Weekly Podcast</title>
<link>http://craigspodcast.com/</link>
<description>Craig's weekly talks about life in the fast lane.</description>
<item>
<title>Craig's Podcast Episode 3</title>
<enclosure url="http://craigspodcast.com/episode3.mp3" length="983041" type="audio/mpeg" />
<guid isPermaLink="false">003-09.04.2010</guid>
</item>
<item>
<title>Craig's Podcast Episode 2</title>
<enclosure url="http://craigspodcast.com/episode2.mp3" length="875904" type="audio/mpeg" />
<guid isPermaLink="false">002-08.04.2010</guid>
</item>
<item>
<title>Craig's Podcast Episode 1</title>
<enclosure url="http://craigspodcast.com/episode1.mp3" length="643565" type="audio/mpeg" />
<guid isPermaLink="false">001-07.04.2010</guid>
</item>
</channel>
</rss>

Advanced Channel Tags

We will start with some of the advanced RSS tags that go within the <channel> tag before covering the more advanced tags within the <item> tag.

Some PodCatchers (including iTunes) are capable of displaying basic HTML within their content regions. This is not supported, however, in the basic tags. In order to use HTML and other special characters (i.e. anything other than a-z,A-Z,0-9,",',comma,.), you must use one of the iTunes-specific tags that we will cover on the next page.

Tag Name Name Description
<copyright> Copyright A sentence or two describing the fair use of your Podcast. Seen by some PodCatchers.
<copyright>Copyright 2006 by Ryan. No rights to distribute or disseminate without Author's consent.</copyright>
<pubDate> Publication Date The last date of publication for this channel (i.e. the last time you added an Episode or made a change to this feed). The format that this tag requires is a bit awkward. Consider the following example:
Sun1, 042 Sep3 2010 144:345:216 PDT7
  1. The short abbreviation of the day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat, Sun)
  2. The 2-digit day of the month (e.g. 01, 10, 31)
  3. The short abbreviation of the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sept, Oct, Nov, Dec)
  4. The 24-period hour of the day (e.g. 1 is 1:00am; 13 is 1:00pm).
  5. Minutes (0-59)
  6. Seconds (0-59)
  7. 3-letter time zone abbreviation (PDT = Pacific Daylight [Savings] Time. Others include PST (Pacific Standard Time), EST (Eastern), MST (Mountain), CST (Mountain), etc.)
You should update this tag every time you post a new episode. Many PodCatchers will not pay attention to added items if the <pubDate> has not changed since it last visited the feed.
<pubDate>Sun, 04 Sep 2010 14:34:21 PDT</pubDate>
<ttl> Time to Live The number of minutes the PodCatcher should wait before checking for new episodes. If you omit this tag, most PodCatchers will assume a wait period of 24 hours.
<ttl>60</ttl>
<image> Image

The "album art" for your Podcast. Each Episode may have its own <image>, but many PodCast directories (including the iTunes Music Store) will display Podcasts' feed url in the listing of Podcasts fitting certain criteria.

The <image> tag has several sub-tags rather than attributes. These sub-tags include:

<url>
The absolute (i.e. including the http://) URL of the image
<link>
The link that should be followed when the user clicks on the image. This is a bit confusing because most users will probably click on your Podcast's image in order to subscribe to it. Adding a link to the Podcast's image is optional.
<title>
Analogous to the alt attribute in HTML. Displayed when the image referenced in the URL cannot be found.
<height>
The height in pixels of the image
<width>
The width in pixels of the image
<description>
A (short) description of the image. An expanded version of what's in the <title> tag. HTML is okay.
<image>
<url>http://craigspodcast.com/logo.jpg</url>
<link>http://craigspodcast.com/</url>
<title>Craig's Podcast Logo</url>
<description>A picture of <a href="mailto:craig@craigspodcast.com">me</a> and my new car.</description>
<width>300</width>
<height>300</height>
</image>

Here is our PodCast feed after adding these tags to our <channel>:

<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Craig's Weekly Podcast</title>
<link>http://craigspodcast.com/</link>
<description>Craig's weekly talks about life in the fast lane.</description>
<pubDate>Sun, 04 Sep 2010 14:34:21 PDT</pubDate>
<image>
<url>http://craigspodcast.com/logo.jpg</url>
<link>http://craigspodcast.com/logo</link>
<title>Podcast Logo</title>
<description>A picture of me and my new car.</description>
<width>300</width>
<height>300</height>
</image>
<item>
<title>Craig's Podcast Episode 3</title>
<enclosure url="http://craigspodcast.com/episode3.mp3" length="983041" type="audio/mpeg" />
<guid isPermaLink="false">003-09.04.2010</guid>
</item>
<item>
<title>Craig's Podcast Episode 2</title>
<enclosure url="http://craigspodcast.com/episode2.mp3" length="875904" type="audio/mpeg" />
<guid isPermaLink="false">002-08.04.2010</guid>
</item>
<item>
<title>Craig's Podcast Episode 1</title>
<enclosure url="http://craigspodcast.com/episode1.mp3" length="643565" type="audio/mpeg" />
<guid isPermaLink="false">001-07.04.2010</guid>
</item>
</channel>
</rss>

Advanced Item Tags

The next round of tags is very similar to the last round. In fact, many of them are exactly identical and have the same function. The only difference is going to be that the contents of the tags are going to pertain to each individual episode and not the Podcast as a whole.

That is, instead of us putting the URL to our Podcast's logo in the <image> tag, we are going to use an image that is specific to each Episode. The logo will be displayed on directories of multiple Podcasts, but the "album art" will be the content's of the most recent <item>'s <image> tag.

The following tags may also be used for each <item> within the <channel>. The caveats to their usage are the same as addressed earlier.

  • <pubDate>
  • <image> (and its sub-tags)
  • <description> (remember that HTML is not okay for this)

Adding these for each of our <item>s, we are brought up to:

Our really almost complete but still boring podcast.rss file:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Craig's Weekly Podcast</title>
<link>http://craigspodcast.com/</link>
<description>Craig's weekly talks about life in the fast lane.</description>
<pubDate>Sun, 04 Sep 2010 14:34:21 PDT</pubDate>
<image>
<url>http://craigspodcast.com/logo.jpg</url>
<link>http://craigspodcast.com/logo</link>
<title>Podcast Logo</title>
<description>A picture of me and my new car.</description>
<width>300</width>
<height>300</height>
</image>
<item>
<title>Craig's Podcast Episode 3</title>
<enclosure url="http://craigspodcast.com/episode3.mp3" length="983041" type="audio/mpeg" />
<guid isPermaLink="false">003-09.04.2010</guid>
<pubDate>Sun, 04 Sep 2010 14:34:21 PDT</pubDate>
<description>We talked about the feds today.</description>
<image>
<url>http://craigspodcast.com/episode3.jpg</url>
<link>http://craigspodcast.com/episode3</link>
<title>Episode 1 Logo</title>
<description>These are those feds.</description>
<width>300</width>
<height>300</height>
</image>
</item>
<item>
<title>Craig's Podcast Episode 2</title>
<enclosure url="http://craigspodcast.com/episode2.mp3" length="875904" type="audio/mpeg" />
<guid isPermaLink="false">002-08.04.2010</guid>
<pubDate>Wed, 04 Aug 2010 14:34:21 PDT</pubDate>
<description>We talked about the cat; today.</description>
<image>
<url>http://craigspodcast.com/episode2.jpg</url>
<link>http://craigspodcast.com/episode2</link>
<title>Episode 2 Logo</title>
<description>This is that cat.</description>
<width>300</width>
<height>300</height>
</image>
</item>
<item>
<title>Craig's Podcast Episode 1</title>
<enclosure url="http://craigspodcast.com/episode1.mp3" length="643565" type="audio/mpeg" />
<guid isPermaLink="false">001-07.04.2010</guid>
<pubDate>Sun, 04 Jul 2010 14:34:21 PDT</pubDate>
<description>We talked about the man today.</description>
<image>
<url>http://craigspodcast.com/episode1.jpg</url>
<link>http://craigspodcast.com/episode1</link>
<title>Episode 1 Logo</title>
<description>This is that man.</description>
<width>300</width>
<height>300</height>
</image>
</item>
</channel>
</rss>

What's Important: Recap

  1. Make sure you correctly update the <pubDate> in your <channel> every time you add a new Episode.
  2. Make sure each Episode (and thus each <item>) has its own <guid isPermaLink="false">.

That's it! There are of course more RSS and Podcasting tags, but they are mostly obscure. Please see Apple's Podcast Technical Spec page (opens in a new window) for more information.

What's next? Next we'll cover some of the iTunes-specific tags that you can use if you plan to list your Podcast on the widely popular, free, and publicly-available iTunes Music Store. We will also briefly cover a few of the other popular PodCast directories that use the iTunes tags. If you are not concerned with advanced features such as HTML-enabled show notes, keywords, and categories, you may safely skip the next page.

Then we'll need to upload our feed to a public server. We will do a quick-review of how to upload to your Student Dante or Staff Homer account using various means. Then we will cover validating your feed so we don't submit a broken feed (which guarantees no subscribers).

We will then conclude with a quick HTML wrap-up with pertinence to linking to your Podcast on your web page using royalty-free graphics.

last modified on 04/20/2007 13:35