Spec: iTunes Podcast RSS - simplepie/simplepie-ng GitHub Wiki
Updated: WWDC 2017
Table of Contents
Podcasts Connect accepts RSS 2.0 tags as well as some additional tags specific to the iTunes Store. Additional tags are not required, but are recommended for possible feature placement on the iTunes Store and Podcasts.
When you use tags specific to the iTunes Store, you must add the following namespace declaration as the second line in your XML:
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
The namespace declaration points to a document that defines the iTunes Store tags. Without this declaration, Podcasts Connect ignores all tags specific to the iTunes Store. The namespace definition is case sensitive, and must be entered as shown.
For text encoding, use plain text UTF-8 encoding for your feed (no markup or HTML). Tag values are
limited to 255 characters, except for <itunes:summary>
, which can be up to 4000 characters. Don’t
add leading or trailing spaces to your values. Enclose all portions of your XML that contain
embedded links in a CDATA section to prevent formatting issues, and to ensure proper link
functionality. For example:
<itunes:summary><![CDATA[<a href="http://www.apple.com">Apple</a>]]></itunes:summary>
The following table lists the RSS tags for Podcasts Connect and shows which tags apply at the
<channel>
level (which relate to the podcast as a whole), which tags apply to individual <item>
tags (which are specific to a given episode), and where the tag contents appear on the iTunes Store.
The <enclosure>
tag has three attributes: URL, length, and type:
-
url
: The URL attribute points to your podcast content. The file extension specified within the URL attribute determines whether or note content appears in the podcast directory. Supported file formats include M4A, MP3, MOV, MP4, M4V, PDF, and EPUB. -
length
: The length attribute is the file size in bytes. You can find this information in the properties of your podcast file (on a Mac, choose File → Get Info and refer to the size row). -
type
: The type attribute provides the correct category for the type of file you are using. The type values for the supported file formats are:audio/x-m4a
,audio/mpeg
,video/quicktime
,video/mp4
,video/x-m4v
,application/pdf
, anddocument/x-epub
.
<enclosure url="http://example.com/podcasts/everything/AllAboutEverythingEpisode2.mp3" length="5650889" type="audio/mpeg"/>
Usage | Description |
---|---|
<channel> |
Unsupported |
<item> |
Supported |
iTunes UI | N/A |
Every <item>
tag (episode) should have a permanent, case-sensitive globally unique identifier
(GUID). When you add episodes to your RSS feed, GUIDs are compared in case-sensitive fashion to
determine which episodes are new. If you don’t add the GUID for an episode, the episode URL is used
instead.
Assign the GUID to an episode only once and never change it. Assigning new GUIDs to existing episodes can cause issues with your podcast’s listing and chart placement in the iTunes Store.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | N/A |
Pay close attention to the title at the <channel>
and <item
> level of your podcast feed. The
iTunes Store uses these fields for search. The metadata for your podcast, along with your cover art,
is your product packaging and can affect whether your podcast shows up in relevant searches, and how
likely users are to subscribe to it.
Make your title specific. A podcast titled Our Community Bulletin is too vague to attract many subscribers, no matter how compelling the content.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | Name column |
<link>http://www.example.com/podcasts/everything/index.html</link>
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Unsupported |
iTunes UI | Website link under podcast details |
<copyright>℗ & © 2014 John Doe & Family</copyright>
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Unsupported |
iTunes UI | Visible under podcast details |
The <pubDate>
tag specifies the date and time when an episode was released. Format the content
using the RFC 2822 specifications. For example: Wed, 15 Jun 2014 19:00:00 GMT
.
Usage | Description |
---|---|
<channel> |
Unsupported |
<item> |
Supported |
iTunes UI | Released column |
The content you specify in the <itunes:author>
tag appears in the Artist column on the iTunes
Store. If the tag is not present, the iTunes Store uses the contents of the <author>
tag. If
<itunes:author>
is not present at the RSS feed level, the iTunes Store uses the contents of the
<managingEditor>
tag.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | Visible under podcast title and in iTunes Store browse |
Specifying the <itunes:block>
tag with a Yes
value in:
-
A
<channel>
tag (podcast), prevents the entire podcast from appearing on the iTunes Store podcast directory -
An
<item>
tag (episode), prevents that episode from appearing on the iTunes Store podcast directory
For example, you might want to block a specific episode if you know that its content would otherwise
cause the entire podcast to be removed from the iTunes Store. Specifying any value other than Yes
has no effect.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | N/A |
Users can browse podcast subject categories in the iTunes Store by choosing a category from the
Podcasts pop-up menu in the navigation bar. Use the <itunes:category>
tag to specify the browsing
category for your podcast.
You can also define a subcategory if one is available within your category. Although you can specify more than one category and subcategory in your feed, the iTunes Store only recognizes the first category and subcategory. For a complete list of categories and subcategories, see Podcasts Connect categories.
NOTE: When specifying categories and subcategories, be sure to properly escape ampersands:
Single category:
<itunes:category text="Music" />
Category with ampersand:
<itunes:category text="TV & Film" />
Category with subcategory:
<itunes:category text="Society & Culture">
<itunes:category text="History" />
</itunes:category>
Multiple categories:
<itunes:category text="Society & Culture">
<itunes:category text="History" />
</itunes:category>
<itunes:category text="Technology">
<itunes:category text="Gadgets" />
</itunes:category>
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Unsupported |
iTunes UI | Visible under podcast details and in iTunes Store browse |
Specify your podcast artwork using the <a href>
attribute in the<itunes:image>
tag. If you do
not specify the <itunes:image>
tag, the iTunes Store uses the content specified in the RSS feed
image tag and Apple does not consider your podcast for feature placement on the iTunes Store or
Podcasts.
Depending on their device, subscribers see your podcast artwork in varying sizes. Therefore, make sure your design is effective at both its original size and at thumbnail size. Apple recommends including a title, brand, or source name as part of your podcast artwork. For examples of podcast artwork, see the Top Podcasts. To avoid technical issues when you update your podcast artwork, be sure to:
- Change the artwork file name and URL at the same time
- Verify the web server hosting your artwork allows HTTP head requests
The <itunes:image>
tag is also supported at the <item>
(episode) level. For best results, Apple
recommends embedding the same artwork within the metadata for that episode’s media file prior to
uploading to your host server; using Garageband or another content-creation tool to edit your media
file if needed.
NOTE: Artwork must be a minimum size of 1400 x 1400 pixels and a maximum size of 3000 x 3000 pixels, in JPEG or PNG format, 72 dpi, with appropriate file extensions (.jpg, .png), and in the RGB colorspace. These requirements are different from the standard RSS image tag specifications.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | Visible in the same location as the album art |
The content you specify in the <itunes:duration>
tag appears in the Time column in the List View
on the iTunes Store.
Specify one of the following formats for the <itunes:duration>
tag value:
HH:MM:SS
H:MM:SS
MM:SS
M:SS
Where H = hours, M = minutes, and S = seconds.
If you specify a single number as a value (without colons), the iTunes Store displays the value as seconds. If you specify one colon, the iTunes Store displays the number to the left as minutes and the number to the right as seconds. If you specify more then two colons, the iTunes Store ignores the numbers farthest to the right.
Usage | Description |
---|---|
<channel> |
Unsupported |
<item> |
Supported |
iTunes UI | Time column |
The <itunes:explicit>
tag indicates whether your podcast contains explicit material. You can
specify the following values:
-
If you specify
yes
,explicit
, ortrue
, indicating the presence of explicit content, the iTunes Store displays an Explicit parental advisory graphic for your podcast. -
If you specify
clean
,no
, orfalse
, indicating that none of your podcast episodes contain explicit language or adult content, the iTunes Store displays a Clean parental advisory graphic for your podcast.
NOTE: Podcasts containing explicit material are not available in some iTunes Store territories.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | Parental advisory graphic under podcast details or episode badge in Name column |
Specifying the <itunes:isClosedCaptioned>
tag with a Yes
value indicates that the video podcast
episode is embedded with closed captioning and the iTunes Store should display a closed-caption icon
next to the corresponding episode. This tag is only supported at the <item>
level (episode).
NOTE: If you specify a value other than Yes
, no closed-caption indicator appears.
Usage | Description |
---|---|
<channel> |
Unsupported |
<item> |
Supported |
iTunes UI | Closed caption graphic in Name column |
Use the <itunes:order>
tag to specify the number value in which you would like the episode to
appear and override the default ordering of episodes on the iTunes Store.
For example, if you want an <item>
to appear as the first episode of your podcast, specify the
<itunes:order>
tag with 1
. If conflicting order values are present in multiple episodes, the
iTunes Store uses <pubDate>
.
Usage | Description |
---|---|
<channel> |
Unsupported |
<item> |
Supported |
iTunes UI | N/A |
Specifying the <itunes:complete>
tag with a Yes
value indicates that a podcast is complete and
you will not post any more episodes in the future. This tag is only supported at the <channel>
level (podcast).
NOTE: If you specify a value other than Yes
, nothing happens.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Unsupported |
iTunes UI | N/A |
Use the <itunes:new-feed-url>
tag to manually change the URL where your podcast is located. This
tag is only supported at a <channel>
level (podcast).
<itunes:new-feed-url>http://newlocation.com/example.rss</itunes:new-feed-url>
NOTE: You should maintain your old feed until you have migrated your existing subscribers. For more information, see Update your RSS feed URL.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Unsupported |
iTunes UI | Not visible, reports new feed URL to the iTunes Store |
Use the <itunes:owner>
tag to specify contact information for the podcast owner. Include the email
address of the owner in a nested <itunes:email>
tag and the name of the owner in a nested
<itunes:name>
tag.
The <itunes:owner>
tag information is for administrative communication about the podcast and is
not displayed on the iTunes Store.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Unsupported |
iTunes UI | Not visible, used for contact information only |
The content you specify in the <itunes:subtitle>
tag appears in the Description column on the
iTunes Store. For best results, choose a subtitle that is only a few words long.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | Description column |
The content you specify in the <itunes:summary>
tag appears on the iTunes Store page for your
podcast. You can specify up to 4000 characters. The information also appears in a separate window if
a users clicks the Information icon in the Description column. If you do not specify a
<itunes:summary>
tag, the iTunes Store uses the information in the <description>
tag.
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | Visible when users click the Information icon in the Description column |
Use the <language>
tag to specify a language for your podcast.
Because the iTunes Store is available in territories around the world, it is critical to specify the language of a podcast. The iTunes Store only supports values from the ISO 639 list (two-letter language codes, with some possible modifiers, such as "en-us").
Usage | Description |
---|---|
<channel> |
Supported |
<item> |
Supported |
iTunes UI | N/A |
The following is an example of a well-formed RSS feed.
Apple recommends using http://validator.w3.org/feed/ to validate your feeds.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<channel>
<title>All About Everything</title>
<link>http://www.example.com/podcasts/everything/index.html</link>
<language>en-us</language>
<copyright>℗ & © 2014 John Doe & Family</copyright>
<itunes:subtitle>A show about everything</itunes:subtitle>
<itunes:author>John Doe</itunes:author>
<itunes:summary>All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our podcast in the Podcasts app or in the iTunes Store</itunes:summary>
<description>All About Everything is a show about everything. Each week we dive into any subject known to man and talk about it as much as we can. Look for our podcast in the Podcasts app or in the iTunes Store</description>
<itunes:owner>
<itunes:name>John Doe</itunes:name>
<itunes:email>[email protected]</itunes:email>
</itunes:owner>
<itunes:image href="http://example.com/podcasts/everything/AllAboutEverything.jpg"/>
<itunes:category text="Technology">
<itunes:category text="Gadgets"/>
</itunes:category>
<itunes:category text="TV & Film"/>
<itunes:category text="Arts">
<itunes:category text="Food"/>
</itunes:category>
<itunes:explicit>no</itunes:explicit>
<item>
<title>Shake Shake Shake Your Spices</title>
<itunes:author>John Doe</itunes:author>
<itunes:subtitle>A short primer on table spices</itunes:subtitle>
<itunes:summary><![CDATA[This week we talk about
<a href="https://itunes/apple.com/us/book/antique-trader-salt-pepper/id429691295?mt=11">salt and pepper shakers</a>
, comparing and contrasting pour rates, construction materials, and overall aesthetics. Come and join the party!]]></itunes:summary>
<itunes:image href="http://example.com/podcasts/everything/AllAboutEverything/Episode1.jpg"/>
<enclosure length="8727310" type="audio/x-m4a" url="http://example.com/podcasts/everything/AllAboutEverythingEpisode3.m4a"/>
<guid>http://example.com/podcasts/archive/aae20140615.m4a</guid>
<pubDate>Tue, 08 Mar 2016 12:00:00 GMT</pubDate>
<itunes:duration>07:04</itunes:duration>
<itunes:explicit>no</itunes:explicit>
</item>
<item>
<title>Socket Wrench Shootout</title>
<itunes:author>Jane Doe</itunes:author>
<itunes:subtitle>Comparing socket wrenches is fun!</itunes:subtitle>
<itunes:summary>This week we talk about metric vs. Old English socket wrenches. Which one is better? Do you really need both? Get all of your answers here.</itunes:summary>
<itunes:image href="http://example.com/podcasts/everything/AllAboutEverything/Episode2.jpg"/>
<enclosure length="5650889" type="video/mp4" url="http://example.com/podcasts/everything/AllAboutEverythingEpisode2.mp4"/>
<guid>http://example.com/podcasts/archive/aae20140608.mp4</guid>
<pubDate>Wed, 09 Mar 2016 13:00:00 EST</pubDate>
<itunes:duration>04:34</itunes:duration>
<itunes:explicit>no</itunes:explicit>
</item>
<item>
<title>The Best Chili</title>
<itunes:author>Jane Doe</itunes:author>
<itunes:subtitle>Jane and Eric</itunes:subtitle>
<itunes:summary>This week we talk about the best Chili in the world. Which chili is better?</itunes:summary>
<itunes:image href="http://example.com/podcasts/everything/AllAboutEverything/Episode3.jpg"/>
<enclosure length="5650889" type="video/x-m4v" url="http://example.com/podcasts/everything/AllAboutEverythingEpisode2.m4v"/>
<guid>http://example.com/podcasts/archive/aae20140697.m4v</guid>
<pubDate>Thu, 10 Mar 2016 02:00:00 -0700</pubDate>
<itunes:duration>04:34</itunes:duration>
<itunes:explicit>no</itunes:explicit>
<itunes:isClosedCaptioned>Yes</itunes:isClosedCaptioned>
</item>
<item>
<title>Red,Whine, & Blue</title>
<itunes:author>Various</itunes:author>
<itunes:subtitle>Red + Blue != Purple</itunes:subtitle>
<itunes:summary>This week we talk about surviving in a Red state if you are a Blue person. Or vice versa.</itunes:summary>
<itunes:image href="http://example.com/podcasts/everything/AllAboutEverything/Episode4.jpg"/>
<enclosure length="498537" type="audio/mpeg" url="http://example.com/podcasts/everything/AllAboutEverythingEpisode4.mp3"/>
<guid>http://example.com/podcasts/archive/aae20140601.mp3</guid>
<pubDate>Fri, 11 Mar 2016 01:15:00 +3000</pubDate>
<itunes:duration>03:59</itunes:duration>
<itunes:explicit>no</itunes:explicit>
</item>
</channel>
</rss>