Dan has been nagging me for a while now to set up a iTunes feed for his podcast. So I did.

However, a bit like my iTunes streaming guide I couldn't find a step by step, follow this and it will work guide. Actually I couldn't find any guide, just vague hand waving of how it could work. Or should work. Or might work. But no actual templates nor anything concrete.

So, I present "The definitive guide to setting up an iTunes podcast feed from Movable Type". Phew that’s a mouthful.

The Short Guide

  1. Install the MT plugin Enclosures

  2. Install the MT plugin Custom Fields

  3. Create new podcast fields

  4. Create a new category for your podcast

  5. Populate the category fields

  6. Create a new podcast feed template

  7. Create a entry for your podcast episode

  8. Publish, Test and Listen

Essentially what we are going to do is use Custom Fields to create some new category fields to describe the podcast and use Enclosures to automatically pull out the media details from the URL.


The Long Guide

  1. Download and install the MT-Enclosures plugin. This is pretty easy and just follow the instructions on Brandon Fullers plugin page for MT-Enclosures. I had no problems doing this, just dropped the file into the plugin directory and that was that.


  2. Download and install the Custom Fields plugin. Again just follow the instructions on the Movalog site. However their are two bugs I found with this plugin, that you will need to work around.



    • With Custom Fields you can create both new Entry fields and new Category fields.

      However clicking on either option takes you through to the Edit Custom Entry Fields page and not the categories one. To solve this problem you need to edit lne 31 of categories.pl file and change entries.cgi to categories.cgi, as this post on the support forum discusses.


    • For some reason when you do click through to the correct page, there are two slashes after the domain name.

      Once you have clicked through and you are on this page, you need to remove one of the slashes. I had problems creating and deleting fields when there were two slashes. Just delete one of the slashes and you should be fine. This may only be a problem with me, as I haven't seen any posts on it in the support forum, but I have logged an error so keep an eye on support forum if you are having the same problem.


    • Also I didn't upload the CVS files in the download. I don't think these are necessary.

  3. Now we need to create some new category fields. We will then uses these fields to automatically publish the relevant data for iTunes to describe the podcast. The main page for your blog should have two links under plugin actions (as seen in image 1 above). Once you have fixed the categories link, click through on it and it will take you to Custom Category Fields page. Click Create new Field and create 6 fields with the following data.

    To populate <itunes:summary>
    Field NamePodcast Summary
    DescriptionA long description that will appear next to your Podcast cover art when a user selects your Podcast.
    Template TagCategoryDataPodcastSummary
    TypeSingle-Line Text
    Required?No
    To populate <itunes:subtitle>
    Field NamePodcast Subtitle
    DescriptionA short description that provides general information about the Podcast. It will appear next to your Podcast as users browse through listings of Podcasts.
    Template TagCategoryDataPodcastSubtitle
    TypeSingle-Line Text
    Required?No
    To populate <itunes:explicit>
    Field NamePodcast Explict
    DescriptionThis tag should be used to note whether or not your Podcast contains explicit material.
    Template TagCategoryDataPodcastExplict
    TypeRadio Buttons
    Drop Down Optionsno, yes
    Required?No
    To populate <itunes:block>
    Field NamePodcast Block
    DescriptionPrevent the entire podcast from appearing in the iTunes Podcast directory.
    Template TagCategoryDataPodcastBlock
    TypeRadio Buttons
    Drop Down Optionsno, yes
    Required?No
    To populate <itunes:image>
    Field NamePodcast Image
    DescriptionSpecifies the url to the artwork for your podcast. Tunes prefers square .jpg images that are at least 300 x 300 pixels. (Supports images in JPEG and PNG formats)
    Template TagCategoryDataPodcastImage
    TypeURL
    Required?No
    To populate <itunes:category>
    Field NamePodcast Category
    DescriptionPrimary Category for your podcast on iTunes
    Template TagCategoryDataPodcastCategory
    TypeSingle-Line Text
    Required?No

    When you are done, your new Custom Category Fields should look something like this


  4. Now that we have new fields you need to create a category for your podcasts. They way it will work is that each podcast has it's own category and from that category we pull all the relevant information to populate iTunes. Each episode will come from a post within this category. So say you have three posts, a music one, a video cast and an audio book podcast that you do. Then create three categories, each one being the title of your podcast, e.g. "The Destruct/hour", "Ski Video Jumps" & "The Trusted Professionals". These will become the title of the podcast that shows up in iTunes. You can place these as a subcategory if you want, and in Dan's case this is what I have done with "Radioblogging" being the top level podcast category and under that I put the actual podcast, so far just the music one "The destruct/hour".

  5. When you create the new category above, you will notice a whole lot of new fields (the ones we created earliy). Populate these fields with the information you want to appear in iTunes. We create a description of the what the fields are above so it should be pretty self evident, however I'll add a few more points to help you.

    • Category Label is the title of your podcast.

    • Category Description is a description on what your podcast is about.

    • Podcast Summary is the long description that will appear next to your Podcast cover art when a user selects your Podcast. Limited to 4000 characters or less, plain text, no HTML

    • Podcast Subtitle is a short description that provides general information about the Podcast. It will appear next to your Podcast as users browse through listings of Podcasts. Limited to 255 characters or less, plain text, no HTML.

    • Podcast Explict is used to note whether or not your Podcast contains explicit material. This puts a red square with the word explict in it, next to your podcast.

    • Podcast Block when set to yes is used to prevent the entire podcast from appearing in the iTunes Podcast directory.

    • Podcast Image is the URL that links to the image for the artwork that goes with your podcast. This can be between 170x170 and 300x300 pixels in size and either a jpg or a png.

    • Podcast Category is the iTunes category. Put in one from the list at the bottom of the apple iTunes podcasting tech specs. I have only included support for top level categories, but you could extend this quite easily to have more if you chose.

    Here's a bit of an example of a populated page


  6. Go to your templates page and create a new index template, with the code below. Note this template has to be static, as the enclosures plugin doesn't work with dynamic templates.

    Also note that there are 4 fields (highlighted below) you have to fill manually. 3 of those are the category name (you have one feed per podcast which is one feed per category. The final one is the any copyright notice you want to post. (Otherwise delete this field). Set it to save as nameofyourfeed.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> 
    <channel> 
    	
    	<MTEntries lastn="1" category="YOUR PODCAST CATEGORY GOES HERE">
    
    

    <title><$MTEntryCategory$></title>
    <itunes:author><$MTEntryAuthorDisplayName encode_xml="1"$></itunes:author>

    <MTEntryCategories category="YOUR PODCAST CATEGORY GOES HERE">
    <link><$MTCategoryArchiveLink$></link>
    <itunes:subtitle><$MTCategoryDataPodcastSubtitle$></itunes:subtitle>
    <itunes:summary><$MTCategoryDataPodcastSummary$></itunes:summary>
    <description><$MTCategoryDescription$></description>
    <itunes:explicit><$MTCategoryDataPodcastExplict$></itunes:explicit>
    <itunes:block><$MTCategoryDataPodcastBlock$></itunes:block>

    <language><$MTBlogLanguage ietf="1"$></language>
    <copyright>PUT ANY RELEVENT COPYRIGHT INFORMATION HERE.</copyright>
    <lastBuildDate><$MTEntryDate format_name="rfc822"$></lastBuildDate>

    <itunes:image href="<$MTCategoryDataPodcastImage$>" />
    <image>
    <url><$MTCategoryDataPodcastImage$></url>
    <title><$MTEntryCategory$></title>
    <link><$MTCategoryArchiveLink$></link>
    </image>

    <category><$MTCategoryDataPodcastCategory$></category>
    <itunes:category text="<$MTCategoryDataPodcastCategory$>" />
    </MTEntryCategories>
    </MTEntries>

    <MTEntries category="YOUR PODCAST CATEGORY GOES HERE">
    <item>
    <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
    <$MTEntryEnclosures$>
    <itunes:author><$MTEntryAuthorDisplayName encode_xml="1"$></itunes:author>
    <pubDate><$MTEntryDate format_name="rfc822"$></pubDate>
    <description><$MTEntryBody encode_xml="1"$></description>
    <itunes:keywords><$MTEntryKeywords$></itunes:keywords>
    </item>
    </MTEntries>
    </channel>
    </rss>


  7. Now go create an entry for your podcast. The title of the entry is the title of the episode. The body of the entry is the description of the episode. Under extended entry put the link to the MP3 or AAC file that is the show itself, as a link. The enclosures plugin will pull this out automatically and insert it correctly into the template. If you enter keywords (comma separated) into the keywords field it will include these keywords for your podcast, which should help for people searching on it in IMS, but there is some doubt how effective this is.

    Here is an example


  8. Hit publish on your entry. Make sure the new feed template gets built and check the xml is present. Then go to iTunes and go Advanced → Subscribe to podcast and paste in the url. Then download a episode and subscribe. Listen to it. Check out the info by clicking on the 'i'. All should work fine and dandy. If you want to have a look at a complete podcast feed, Dan's is http://www.znaddanz.com/destructhour.xml

Additional Reading Material

2 TrackBacks

26 Feb, '06 11:41 PM

Oh My Pod! Le blog des actualites du podcast

Créer un flux podcast avec Movable Type


Si vous utilisez le logiciel Movable Type pour votre blog, ce guide devrait vous interesser. Il explique en effet comment, avec 2 plugins, il est possible de rajouter des champs supplementaires pour creer automatiquement votre propre podcat et y... Read More
02 Jul, '07 10:30 PM

CCLaP

CCLaP Podcast 02: GapersBlock.com's Andrew Huff


Today, episode 2 of the CCLaP Podcast: a four-minute video interview with Andrew Huff, editor-in-chief of Chicago arts-and-entertainment website GapersBlock.com. Read More

18 Comments

27 Feb, '06 10:56 AM

1. QE

These how-to articles almost make me wish I needed to know this stuff. Good work (assuming it works; I haven’t tried).

I don’t use iTunes, but I’ll see if I can teach anything else to be client to the feed. If I do I’ll get back to you.

06 Nov, '06 5:41 PM

2. rurth24

I’ve been following this guide but I ran into a small problem. When I create a new category like in section 5…. none of the new category fields show up. What could be the cause of this?

06 Nov, '06 6:06 PM

3. Adrian

Did you download and install the plugins and fields correctly?

06 Nov, '06 11:02 PM

4. rurth24

I had to download the latest MT3.3. That was my problem.

I ran into another problem. I followed all the steps but when I try and publish a new entry I get an error.

Writing to ‘D:\inetpub\xxxxxx\podcast\xxxxxx\index.html.new’ failed: Opening local file ‘D:\inetpub\xxxxxx\podcast\xxxxxxx\index.html.new’ failed: No such file or directory

Any ideas what might be wrong?

07 Nov, '06 9:19 AM

5. Adrian

Check the directory. It may no be able to overwrite a file in their. Otherwise it’s a permissions problem, and you need to contact your host.

07 Nov, '06 4:59 PM

6. rurth24

Yes it was a Permissions issue. I ran into another small issue. Im working on section 6 where I create the XML file. I followed your directions but when the xml file is created it only shows…

<?xml version=”1.0” encoding=”UTF-8”?> <rss xmlns:itunes=”http://www.itunes.com/dtds/podcast-1.0.dtd” version=”2.0”> <channel> </channel> </rss>

I’m assuming this isn’t correct.

07 Nov, '06 6:46 PM

7. Adrian

Hmm … for some reason nothing is coming through … try putting some garbage in the file and see if that works. (i.e. just type some random letters and see if it comes though)

I would say you probably have a mistake in your template somewhere, that is causing it to break.

07 Nov, '06 7:18 PM

8. rurth24

Do you mean open the xml file and type some stuff into the area ?

07 Nov, '06 7:32 PM

9. rurth24

Can you email me directly so we can figure this out? I could really use some help. I’m pulling my hair out here. thanks. LOL

07 Nov, '06 8:25 PM

10. Matt

07 Nov, '06 8:55 PM

11. rurth24

Okay, with the help of Adrian, we figured out the main issue. Make sure when you create a Category within MT, the exact name of the category is placed in the XML code where it asks for Category. For example:

I screwed that up. I think I changed the category name at some point not realizing it’s connected to the xml file. Don’t make that mistake.

Thanks Adrian…

24 Nov, '06 6:08 AM

12. Kelly

Hey thanks for this awesome tutorial. However I am running into a small problem. I have followed all the steps and everything seems to work just fine, except when I try to get iTunes to subscribe to the xml file it doesn’t find anything. I have check my xml file with other news readers and the juice podcast client and they see the files and they are downloadable, but iTunes just refuses to see the files.

Thanks, Kelly

25 Nov, '06 12:42 AM

13. Kelly

Once again thanks for the tutorial. I have found the root of my problem though. For some reason I had some rss validation issues. Once I got those straightened out it work fine now.

Thanks, Kelly

Killer tutorial. I did all you said, works like a stinkin’ charm. I Remember JFK now podcastin’.

Thanks a ton!

Ron E.

18 Jun, '07 4:29 PM

15. Ringoya

According to Feedburner, Movable Type limits the number of feeds to 15. My vodcasts started to disapprear; as I posted new ones, the oldest one (15 episodes before) started to vanish. I have tried looking for a cure to this, but I am having much trouble. Any hints? Feedburner (their forum) take no responsibilty for it. Getting help at MT is like going to the dentist with a mouthful of cavities.

18 Jun, '07 9:55 PM

16. Adrian

If you pay for support MT is pretty responsive. And the forums are pretty useful too.

There should be no limits on the number of feeds. MT doesn’t know what a feed is. It’s just a template. You can try hardwire the entries field by setting them to n=999

02 Jul, '07 10:36 PM

17. Jason Pettus

I just followed Adrian’s guide this weekend very closely, step by step, and had everything work perfectly the first attempt; thanks very much for such a concrete tutorial concerning such a complicated subject. Also wanted to let everyone know that since Adrian wrote this, the developer of the Custom Fields plug-in has fixed the bugs he mentions; you can now effectively ignore all the fine print in step 2, and simply install the plug-in instead. See the link associated with my name here for the results of my own installation, if you’re curious.

03 Jul, '07 11:28 AM

18. Adrian

Thanks Jason.

I’ll try get round to updating the post (although time currently very short). Glad it worked for you.

Leave a comment

Twittered

    twittered

    webcam

    About this Entry

    This page contains a single entry by Adrian published on May 29, 2007 10:30 PM.

    Late people have problems (see I told you) was the previous entry in this blog.

    Why this instance? is the next entry in this blog.

    Find recent content on the main index or look in the archives to find all content.