How to create a podcast RSS feed

From FandomResources
Revision as of 03:38, 15 October 2023 by Bluedreaming (talk | contribs) (Bare minimum podcast RSS feed: minor formatting)
Jump to navigation Jump to search

Background & intention

The intention here is to create an RSS feed file that can be manually added to any podcast player and, via the player, be managed like any podcast. It shouldn't require any third-party hosting apart from uploading the RSS file somewhere, and isn't intended to be submitted to any podcast platforms for syndication. (Hypothetically, that should be possible if you fulfill the platform's requirements, but that's outside the scope of this guide.)

The background is that it's inconvenient to create an RSS feed for individual podfics (whether a single-"episode" podfic or a multi-chapter that's either posted all at once or as a work in progress) using any over-the-counter podcast hosts. Either they require public syndication (like Spotify for Podcasters[1], formerly Anchor.fm), or you'll need to pay (for most podcast hosting services, including WordPress), and either way you have to host your audio on that platform as well as your regular hosting, which is inconvenient. Most podcast hosting services are also structured around having a single podcast, and not several "podcasts" for which separate RSS links are desired (such as wanting a separate link for individual podfics).

Alternatives

If you just want a simple RSS feed and you host your files on the Internet Archive, you can use the archive's search to generate an RSS feed based on search terms. This RSS will be podcast player compatible, but will be limited in terms of cover art & title etc. GodofLaundryBaskets has an excellent guide at Create an RSS Feed on Archive.org which also details the caveats. An additional caveat is that, since this depends on search, your posts will need to be indexed, i.e. when you uploaded them, you can't have set them to noindex: true. At present, there's no way to change this once a post has already been created.[2][3]

Cautions and limitations

"It's possible you may find your podcast on platforms you didn't manually submit it to. Third-party apps sometimes scrape RSS feeds to feature on their own platform. If you want your podcast removed from any of these services, contact them directly."[4]

Since the intention of this guide is to create an RSS feed link for manual use, which will presumably be shared in controlled spaces (such as on ArchiveofOurOwn.org or Squidgeworld.org posts), scraping is probably less likely, but it is technically still possible.

We have found that your account email is included in the metadata file (.xml) of your posts although it is not visible on the page; choose one associated with fandom or that you do not mind associated with your fandom ID.[5]

This guide uses the Internet Archive as an example host, since it's simple to access and free, and you can store all the elements of the RSS feed in the same place. However, when creating an account, please note the caution about the email address as noted above.

Basic prerequisites

This guide assumes that you already know how to upload files to the Internet Archive. If you need a guide, Brief Intro: Hosting and Streaming podfics on Archive.org is excellent. For the purposes of this guide, it doesn't matter if your posts are indexed or not, as long as you have the links.

XML

RSS files are written in XML (Extensible Markup Language), which is similar to HTML, but not quite the same. You can find a brief introduction to it in the mdn web docs at XML introduction, as well as W3 School's XML Tutorial (and the internet has many other resources). In tried-and-true method, however, this guide depends on the principle of copying examples from other people, so you'll probably only need the linked resources if you're trying (and failing - test it first!) to do something outside these descriptions. For instance, I went through a lot of hassle to try and display accented letters, with no success, only to realize that just using the accented characters as-is worked just fine. Of course, results may vary.

Bare minimum RSS feed

An RSS feed is made of of three-ish elements: an <rss> element, a <channel> element inside of that, and as many <item> elements inside of the <channel> as you have "episodes" or chapters.[6]

  • The channel needs to have a title, link and description, and there are other optional elements.[6]
  • An item needs to have either a title or description, with all other elements optional.[6]

Bare minimum podcast RSS feed

Obviously, a podcast feed needs to have audio, so there are a few other elements it needs. Apple Podcasts and Google Podcasts[7] have some requirements listed; since the intention isn't to submit an RSS feed to them for syndication, it's not clear if their all of their requirements are truly required, but on the other hand podcast players need to be able to read the RSS file, so following their guidelines is probably a good idea.

Requirements:

  • RSS feed URLs must adhere to RSS 2.0 specifications, be publicly addressable (not password-protected), and include the following XML declaration: <?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"  xmlns:content="http://purl.org/rss/1.0/modules/content/">
  •    Each episode must have a unique <enclosure> tag, along with its three required components — URL, length, and type — which specify the location and host of the episode. Apple Podcasts will ignore duplicate <enclosure> URLs.
  •    All episodes must contain a globally unique identifier (GUID), which never changes.
  •    Use only ASCII filenames and URLs that include a-z, A-Z, or 0-9. For more information, see encoding best practices.
  •    Respect case-sensitivity across all XML tags in podcast RSS feeds.[8]

I removed the requirement "Display your show artwork and allow streaming playback of your episodes by enabling your hosting server for HTTP HEAD requests and byte-range requests."[8] from the above list, since I tested this by using files hosted at the Internet Archive, so while I have no idea what those settings are in that context, presumably it works.

Also, the list above says that a URL is required, but that's actually not the case. You can use a description instead (but you must have one of the two). For instance

  • If you're posting a single chapter podfic (a single "episode" "podcast"), then the URL would be the same as the URL for the podfic ("podcast") as a whole (in the <channel>), and there would be no need to add a description (the summary) since it would be the same as for <channel> as well.
  • If you're posting a multichapter podfic that you are posting in a single chapter on ArchiveofOurOwn/etc., then you won't have an applicable URL for each <item>, but might have a summary or small descriptive text ("description") for each chapter, or even just a note and link to the corresponding chapter of the fic. Or, if you have no chapter-based description, you can always use the same URL as for the podfic as a whole.
  • If you're posting a multichapter podfic that you are posting in separate chapters on ArchiveofOurOwn/etc., the you will have a separate URL for each <item>, and may or may not have a separate description for each chapter as well.


Going off those requirements, here are the details for the components of the <item> tag (i.e. the "episode"):

component attributes example notes
enclosure
  • url says where the enclosure is located
  • length says how big it is in bytes
  • type says what its type is, a standard MIME type.[6]
<enclosure url="https://archive.org/download/paper-planes-and-other-travelling-means/Part%201%20-%20Aithusa.mp3" type="audio/mpeg" length="7429995"/>
  • if you're using Internet Archive hosting, make sure you are using the link that starts with https://archive.org/download/YOUR_MP3.mp3 You should never use: https://ia801504.us.archive.org/30/items/YOUR_MP3.mp3(or similar) because even though it will work at first, it will break over time.[9]
  • You can find the size of the file in bytes by checking the file properties on your computer. (Right-click, Properties, Size if you're on Windows)
  • Here's a list of Common MIME types. However, you should probably stick to mp3 files.[10]
URL

References

  1. Hi there, We are reaching out with important information about your podcast distribution. From November 6, 2023, all shows published on Spotify for Podcasters will also be distributed to Spotify. You are receiving this email because we have detected that your show is currently not on Spotify. There is no further action required from you. If you do not want your podcast to be available on Spotify, please reference this guide to delete your Spotify for Podcasters account. For more information about distributing your podcast through Spotify for Podcasters, please visit this article. Thanks, Team Spotify for Podcasters. Email received 4 October 2023.
  2. Based on conversation in Podfichat 13-14 August 2023 and 9 September 2023.
  3. Internet Archive Ish Posted 6 June 2023. Accessed 9 October 2023.
  4. Distributing your podcast Accessed 9 October 2023.
  5. Brief Intro: Hosting and Streaming podfics on Archive.org by justaphage. Accessed 9 October 2023.
  6. 6.0 6.1 6.2 6.3 RSS 2.0 Specification by Dave Winer, Berkman Center for Internet & Society at Harvard Law School. Creative Commons Attribution-ShareAlike 1.0 Generic CC BY-SA 1.0 DEED Last updated 29 April 2007. Accessed 9 October 2023.
  7. Note that Google Podcasts is going away in 2024 and will be replaced by expanded functionality on YouTube & YouTube Music. Today’s news about Google Podcasts Manager Posted 26 September 2023. Accessed 9 October 2023.
  8. 8.0 8.1 Podcast RSS feed requirements Accessed 9 October 2023.
  9. [Meta] A Breakdown of Podfic Hosting Options by GoLBMeta (GodOfLaundryBaskets). Posted 28 October 2020. Accessed 9 October 2023.
  10. Supported audio formats from RSS feed guidelines for Google Podcasts Accessed 9 October 2023.