Podcasting/Vodcasting: Distributing Your Audio and Video Files Via the Web
iTunes- and Directory-Specific Tags
Until now we've been prefacing our example rss feeds with the fact that they're still boring. We've just been laying groundwork until now. Once we understand the basics of a Podcast and how it works, we can expand it.
Unfortunately, we're starting to tread down some murky waters. Since Podcasting is so new, many of its advanced features are proprietary to either the software that downloads them or the directories that list them. What iTunes does is in some cases different than what Juice does, vice-versa, and magnified to the power of the number of different Pod Catchers and Podcast directory services out there. For this reason, we cannot go into how to make sure your Podcast feed will be a perfect match for every Pod Catcher and every Podcast Directory.
While it certainly was not the first, and while it certainly is not the most feature-inclusive, iTunes has become one of the most popular Pod Catcher clients. Perhaps this is due to its close ties with the wildly popular iPod with which it sycronizes Podcasts. The name Podcast is actually a portmanteau of the words iPod and cast (that is, thrown to iPod[s]). Because of its prevalence, many of the proprietary tags and natures that Apple have chosen to incorporate into iTunes are being adopted and supported by many other Pod Catchers and Podcast Directories. That is, although the tags we're going to learn contain the word itunes, they will work as expected (with a few noted caveats) on many non-iTunes Pod Catchers and Podcast Directories.
For this reason, we will cover the basics of the itunes rss tags (called the itunes namespace) and will provide links to more information about other Pod Catchers and directories
Speaking of boring, let's move on. We were brought up to this in our last lesson.Our really almost complete but still boring podcast.rss file:
The following content is current as of July and August of 2006. Because Podcasting and RSS are emerging technologies, you should check Apple's Podcast Technical Specification (opens in a new window), which actually isn't too technical, to see if there are different considerations to be made for recent additions to Podcasting RSS Spec.
iTunes <channel> Tags
Remember when we were talking about XML and how it allows us to make up our own tags? What if somebody else came along and had no idea what our tags meant? Document Type Definitions formalize XML tags, but if we hadn't made a list of DTDs, whomever didn't understand our tags would be faced with what would essentially be useless information. He or she would then have the choice to either use what could be understood or disregard all of the information entirely.
Most Pod Catchers will do the former rather than the latter. Apple have come up with several tags that are specific to Podcasts and that are specific to iTunes. If another Pod Catcher or Podcast Directory sees these tags and doesn't know what they mean, they simply ignore it. That is, there is no such thing as too much information in your RSS feeds. Anything that is extraneous or not understood will be disregarded. In an effort to remain competitive, many Pod Catchers and Podcast Directories are starting to learn the itunes tags we'll discuss in a minute. We'll see how many itunes tags are simply fancier versions of regular Podcasting tags. And since not every Pod Catcher and Podcast Directory supports the itunes tags, you should always include the degenerate tag in addition to the itunes tag whenever possible.
The following tags should be included inside of the <channel> tag (i.e. before any <item>s).
The itunes namespace
Because we are going outside of the realm of just RSS 2.0 right now into tags that were made up for iTunes, we need to be explicit about what we mean with our tags. We mentioned the notion of Document Type Definitions earlier and how they are necessary for our information to be usable. In order for our feeds to be valid and in good order, we must declare that we are going to be using the itunes namespace. To do this, we change
The <language> tag
While not a part of the itunes namespace, the <language< tag is necessary if you wish for your Podcast to appear in most (if not all) Podcast Directories (including the iTunes Music Store). The format of this must conform to ISO 639 (link opens in a new window). For US-English Podcasts, the ISO-639 code is en-US. Thus, we would use the following syntax:
The <category> tag
You should try to come up with the most abstract category name you can to put in this tag. Examples might be news, technology, or other. Unlike the <itunes:category> tag which we will learn about shortly, the <category> tag can only be used once and can only contain one value.
The <itunes:explicit> tag
All Podcasts wishing to appear in Apple's iTunes Music Store Podcast Directory must contain an <itunes:explicit> tag in their RSS feed. The possible values are yes (for explicit content not suitable for all ages), no (for general content), and clean (for the clean version of an explicit content). According to Apple:
"If you populate this tag with "yes", an "explicit" parental advisory graphic will appear next to your podcast artwork on the iTunes Music Store, and in the Name column in iTunes. If the value is "clean", the parental advisory type is considered Clean, meaning that no explicit language or adult content is included anywhere in the episodes, and a "clean" graphic will appear. If the explicit tag is present and has any other value (e.g. "no") you see no indicator Ñ blank is the default advisory type."
Adding this, we have:
The <itunes:category> tag
Apple have devised several Categories to which your Podcast may belong. When a user browses Podcasts, he or she does so by Category. You may join an unlimited number of Categories and Sub-Categories. While this tag is specific to iTunes and the iTunes Music Store, many other Podcast Directories have the same or similar Categories and will use the information provided by this tag.
The <itunes:category> tag is a convoluted mess of attributed closed tags and attributed non-closed tags. Let's say we wanted our Podcast to be listed in the following categories and sub-categories:
- Business News
Each Category has an associated <itunes:category> tag which must be closed. Within each Category, however, Sub-Categories are listed using the <itunes:category> tag with no closing counterpart. Incorporating this into what we have thus far, we are brought up to:
<itunes:summary> and Special Characters
If you are familiar with HTML and have ever tried to write out something like x < y > z, you know that it is hard to get greater-than (>) and less-than (<) signs to show up on the page because they are part of HTML's syntax (as they are for XML, as we've learned). Web browsers are sometimes nice to us and can tell when we've haphazardly put a < in the middle of our text and will display the symbol without trying to interpret it as (what would be invalid) HTML. XML, however, is much more strict. If you accidentally, for example, put an extra < before one of our tags, our feed will "break" and no longer be valid. Therefore, we must make use of HTML Special Characters in order to be able to display these characters. The basic syntax is &code;. the code is replaced by the code for whatever symbol you are attempting to diplsay. Included is a table with five "named" special characters allowed in XML feeds.
We mention this now because some of the iTunes Podcast Categories include the ampersand (&) in their titles. Because the ampersand must be written as &, tags such as <itunes:category text="News & Politics" /> must be written as <itunes:category text="News & Politics" />.
Special characters are also important because the <itunes:summary> tag (which may be applied to both the <channel> and each <item>) allows you to use basic HTML. It is not technically supported by Apple to use HTML in <itunes:summary>, but it is implemented in iTunes and many Pod Catchers. You should limit yourself to the following tags:
- <br />
Remember that all tags must be closed!!
It is our official recommendation to not use any HTML in the <channel> <itunes:summary> tag and to use, as conservatively as possible, HTML only within <item> tags. This is because the Podcast Directories do not look at the <itunes:summary> tag within the <item>s. Thus, you will not run into any validation errors (which can lead to your Podcast not getting listed in the Directory) if you avoid HTML in <channel> summaries and only use it within <item> summaries as your show notes.
The <itunes:summary> tag is limited to 4000 characters. You might be wondering what the similarity is to the <description> tag. Because (basic) HTML is more or less allowed in <itunes:summary> and is not allowed in <description>, you should put a plaintext (i.e. no HTML) version of <itunes:summary> in <description> and then truncate to 255 characters as <description> is limited to 255 chaacters.
This topic is current as of July and August of 2006. You should check Apple's Podcast Technical Specifications to see if the Category listings or other technical requirements have changed.
There are, of course, more tags that you could add to your feed. Many would even recommend you add such tags as <itunes:author>, <itunes:subtitle>, and <itunes:keywords> (among others). But since their omission would not stop a Podcast from being included in most Directories, we will leave their details to your own endeavors. Apple Computer, for now, maintains the itunes namespace to which these tags belong. If you are curious about what additional tags you can use, please refer to the Podcast Technical Specification (link opens in a new window) available on the Apple website.
You may also wish to investigate the technicalities of whatever other Podcast Directory you plan to list on and whatever other Pod Catchers you anticipate your Subscribers using. As of this writing, iTunes is the most popular, and its namespace is implemented by other Pod Catchers and Directories. Other Directories and Pod Catchers may have more stringent rules or more features that you can exploit. An important thing to remember is that there is no such thing as too much information in an RSS feed. Anything that is extraneous or not understood by a Pod Catcher or Directory is (according to specifaction) to be ignored. Standards do not yet exist, but there exists varying support for varying degrees of propriety.
Bringing everything we've learned so far together, we are now done writing our podcast's RSS/XML file. Assuming you didn't make any errors, you won't have to go through this process ever again. Adding episodes is as simple as copy/pasting your <item<s and changing the respective tag contents. Because we are short on horizontal space on this website, reading the finalized xml file in this space would be difficult. As such, you may download our finished product in PDF format by clicking on this link.
Next we will cover uploading your feed to a public server. Then we will cover how to validate your feed and troubleshoot any errors. Then we will cover linking to your Podcast on your website, and finally we will cover how to list your Podcast on various Podcast Directories including the iTunes Music Store.