This is a EE template based off Apple’s technical specifications for a podcast feed. This is a template I use on a couple sites so I know it works. If it breaks on my sites I’ll update this with fixes.
This is a pretty simple, straight-forward implementation. It does not require extra plugins or add-ons to work. It does assume that you have a weblog specifically for podcasts, that you upload your podcasts via FTP*, and that you use custom fields to insert the appropriate data into the feed.
* Why ftp? Most webhosts have a 2mb upload limit for file uploads through http, which means that EE’s file upload is unlikely to work for the majority of podcasts (mine are typically 15-30mb in length), which means FTP is typically the best upload method.
<!--
This is a sample iTunes podcast template for use with ExpressionEngine.
This is not the only way to do it but hopefully it will get you started.
This template is based off Apple's example RSS template located here:
http://www.apple.com/itunes/store/podcaststechspecs.html
Especially useful is the Common Mistakes info:
http://www.apple.com/itunes/store/podcaststechspecs.html#_Toc526931694
Two most common reasons EE iTunes feeds break:
1. Wrong date/time stamp format. iTunes is very strict about this.
2. Using non-XML entitles in subtitle, description areas of the feed.
-->
<!--
Start with EE's RSS feed tag. This assumes you have a weblog setup
specifically for your podcasts.
-->
{exp:rss:feed weblog="weblog_shortname"}
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<channel>
<ttl>60</ttl>
<!-- Automatically feed your weblog name and description to iTunes -->
<title>{weblog_name} {weblog_description}</title>
<!-- You can also autofeed the link to your podcast weblog -->
<link>{weblog_url}</link>
<language>en-us</language>
<copyright>Your Copyright info</copyright>
<itunes:subtitle>Your podcast subtitle</itunes:subtitle>
<itunes:author>By Your Name or whoever</itunes:author>
<itunes:summary>The summary of your podcast</itunes:summary>
<itunes:owner>
<itunes:name>Podcast owner</itunes:name>
<itunes:email>you@example.com</itunes:email>
</itunes:owner>
<!-- This is the image that shows in your iTunes listing -->
<itunes:image href="http://www.example.com/images/podcast_image.jpg" />
<itunes:category text="Family">
<itunes:category text="Audio Blogs"/>
</itunes:category>
<!--
This portion starts the actual listing of your podcast episodes. The above
just gives info on your podcast show. That's why we specify the weblog tag
here.
-->
{exp:weblog:entries weblog="weblog_shortname"}
<item>
<!-- Automatically feed the title to iTunes -->
<title>{exp:xml_encode}{title}{/exp:xml_encode}</title>
<!-- If you have multiple authors you can use a tag or just leave it static -->
<itunes:author>Episode author</itunes:author>
<!--
For this example I'm assuming that you are using EE's custom fields.
I generally create a custom field for an episode's subtitle, description,
physical file (a field that only holds your uploaded podcast name),
episode size (in bytes), and episode length.
NOTE: For all these fields its important to only use XML friendly entities.
Your feed will break if you don't. iTunes is super-strict about this.
-->
<!-- Custom field for episode subtitle. The subtitle appears right next to the
title in iTunes. -->
<itunes:subtitle>{exp:xml_encode}{episode_subtitle}{/exp:xml_encode}</itunes:subtitle>
<!-- Custom field for episode description. This appears when you click the "i" in iTunes
next to subtitle. -->
<itunes:summary>{exp:xml_encode}{episode_description}{/exp:xml_encode}</itunes:summary>
<!-- Use the custom physical file field, which should hold only the name of your episode
to tell iTunes where your file is located. There are other methods. I'm using a simple
one since this is just a template to build off of.
NOTE: This is assuming you are using iTune's m4a format. If you are using mp3 you'll also
need to change the type value below to mp3. You can find the value on Apple's tech specs
url posted at the beginning of this template.
NOTE: You can also insert the size in bytes (see tech specs for format) using a custom
field. There are other methods available, such as a few plugins. But again, this is
to give you the basics.
-->
<enclosure url="http://www.example.com/podcasts/{epsiode_name}" length="{episode_size}" type="audio/x-m4a" />
<!-- url to your episode. I'm using the title permalink but any tag that generates a unique
URL to your episode will do. -->
<guid>{title_permalink=template_group/template}</guid>
<!-- The date/time stamp for your podcast. Again, iTunes is super-strict about this. If your
date/time stamp is not exactly how Apple wants it your feed will break. -->
<pubDate>{gmt_entry_date format="%D, %j %M %Y %H:%i:%s %Q"}</pubDate>
<!-- Insert episode length. -->
<itunes:duration>{episode_length}</itunes:duration>
<itunes:keywords>family, friends</itunes:keywords>
</item>
{/exp:weblog:entries}
</channel>
</rss>
{/exp:rss:feed}
