Building a Podcast Feed File, for Beginners

24 Jul 2013

I had a question about how to set up a podcast. I wrote this answer and thought while I was at it, I might as well polish up the answer just a bit and post it, in case it would be helpful to anyone else.

I’m starting a podcast and I need help creating an RSS feed. You’re the only person I could think of that might know how to create such a thing. Is there any way you could help me?

OK, I am not an expert on podcasts in general because I’ve only every created mine. I set mine up by hand. I’ll tell you how I do that and then you can try it that way if you want. You might prefer to use a web site that does the technical parts for you.

A podcast just consists of audio files that can be downloaded, and the feed file. I write my feed files by hand. I just have a hosting site at DreamHost that gives me FTP access, and I upload audio files to a directory that is under the root of one of my hosted web site directories. For example, this directory.

The feed file I use, I write with a text editor. I use BBEdit, which is a fantastic text editor for the Macintosh that I’ve used for over 20 years, but any text editor will do. For the General Purpose Podcast, this is the feed file.

The feed file contains information about the podcast feed as a whole, and then a series of entries, one for each episode (in my case, each audio file, although they don’t strictly have to be audio files; you can use video files). When I add an audio file, I just add a new entry that describes the new audio file.

This is a slight simplification. I actually use a separate “staging” file for testing before I add entries to the main podcast feed. The staging file contains the last few episodes, and I have a separate subscription in iTunes to the “staging” podcast for testing purposes. When I upload a new episode MP3 file, I test it by adding an entry to the staging index file here.

So I add an entry to test, and then tell iTunes to update the staging podcast. If it works OK and finds a new episode, downloads it, and it comes out to the right length, and the tags look OK, then I add the same entry to the main index file.

I have a blog for the podcast too. That’s a separate thing on Blogger, here. That just provides a jumping-off point to get to the episodes, and something I can post on Facebook or Twitter. For each episode I just make a new blog post and write a description and then include a link to the particular MP3 file. The blog in the sidebar also has links to the feeds and to the iTunes store page for the podcast. I’ll get to the iTunes store in a minute.

Oh, writing the entry in the feed file is kind of a pain. You have to specify a date, and it has to be formatted correctly and it has to have the right GMT offset which changes with daylight savings time. You have to specify the exact number of bytes in the file and the length in hours, minutes, and seconds. If you get these wrong the file will not be downloaded correctly — it will be cut off. The URL needs to be URL-escaped, for example spaces become %20, etc. If I upload the file to my hosting site first, so that I can see the file in my web browser, and copy the link, it comes out URL-escaped for me, so that part is easy. I paste that link to the file into the feed file entry for the episode. The entry gets a link to the file, and then there is a also a UID (a unique ID for the episode). Personally, I use the same thing for both the UID and the link, but they can be different. The UID is how iTunes (or some other podcast reader) decides, when it reads your feed file, whether it has downloaded that file already, or whether it needs to download it again. So it’s important to come up with a scheme for UIDs and then never change them, or anyone who subscribes to your podcast will probably either see errors or get duplicated files. In other words, even if I moved the podcast files to a different server, and the link needed to be changed, I would not change the UIDs of any of the existing entries.

Once you have your feed file, you can check it with the feed validator — and you definitely should do this before giving it out in public or submitting it to the iTunes store. See this Feed Validator. I try to remember to check mine every so often just to make sure I don’t have an invalid date or something like that. If the feed is not working, this thing might tell you why.

OK, the next thing is iTunes integration. The thing to keep in mind here is that Apple does not host any of your files or your feed. You apply to be in the podcast directory, and then someone approves it, and the system generates a page for you on Apple’s site. Once a day or so it reads your feed file and updates that page. The point here is that if someone is having problems with your page on iTunes, it is probably not Apple’s fault, it is probably a problem with your feed or your hosted audio files.

If you don’t want to do this all manually there are sites that will set up your feed for you automatically, like and I am not sure which one is best and I have not used them.

This is Apple’s guide that includes information on how to tag your files in the feed — you could start out with mine as an example, but this is the de facto standard for writing a podcast feed that will work with iTunes and the iTunes store.

OK, now you know just about everything I know about it. Oh, there is one more thing to talk about. This part is kind of critical.

So you create an audio file — I make a WAV file and then encode it into an MP3 file either in Logic or in iTunes. My recent spoken word files are encoded at 128 Kbps; if I’m including music I would use a higher bit rate. Some people compress them much smaller, but I am a sticker about audio quality and 128 Kbps is about as much compression as I can tolerate.

You then have to tag it. This actually changes data fields in your MP3 file. The tagging should be consistent. You can see how my files look in iTunes. If the tagging is not consistent then the files will not sort properly — they won’t group into albums or sort by artist and that is a huge pain. When files get scattered all over your iTunes library, it looks very unprofessional and I tend to delete those podcasts. But note that the tags you add are not quite as relevant as they would be if you were releasing an album of MP3 files, and here’s why — podcasts have additional tags that are added by your “podcatcher” — iTunes, or some other program that downloads the podcast files.

So you tag your MP3 file, and take note of the length (the exact length in bytes and the length in hours, minutes, and seconds), so that you can make a correct entry in your feed file. The MP3 file is the file you upload, but note that this file is not actually a podcast file yet. It doesn’t show up in “Podcasts” under iTunes. It becomes a podcast file when iTunes or some other podcatcher downloads it. iTunes reads the metadata from the feed file (metadata is data about a file that is not in the file itself) and it uses parts of that metadata, like the podcast name, to adds hidden tags to the MP3 file. Yes, it changes the file — the MP3 file on your hard drive that is downloaded will not be exactly the same file you put on the server. This is confusing. But it explains why if you download the MP3 file directly and put it in your iTunes library, rather than letting iTunes download it as a podcast episode, it won’t “sort” — that is, it won’t show up as an iTunes podcast under the podcast name.

At least, that has been true in the past. I think recent versions of iTunes have finally made it so there is an “advanced” panel that will let you tell iTunes that a file is a podcast file, but sorting it into the proper podcast this way might still be tricky. So the key thing is that you might want to keep both your properly tagged source files, because those are the ones you would upload to your site if, for example, your site lost all its files, or if you were going to relocate your site to a new web server, and also the files after they have been downloaded and tagged as podcasts by iTunes. I keep them separately. If someone is missing an episode I can send them the podcast tagged file and they can add it to their iTunes library and it will sort correctly with the other podcast files.

OK, now you pretty much know everything I know about podcast feeds. I prefer doing it by hand because I’m a control freak — I like to know exactly what is happening. I like to tag my files exactly the way I want. But if you’re not into that — if you don’t know how to upload and download files of various kinds and tag MP3 files, for example — you probably want to use something like Libsyn. Or maybe you know what to do but just want to save time. I just know that I’ve sometimes been called on to help people using these services fix their feeds after they are broken, or they need to relocate files, and it isn’t pretty, so I’ll stick to my hand-rolled feed.

Creative Commons Licence
This work by Paul R. Potts is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. The CSS framework is stylize.css, Copyright © 2014 by Jack Crawford.

Year IndexAll Years IndexWriting Archive