KB's RSS Generator for Podcasts

KB's RSS feed generator for podcasts

To make standard RSS feeds, use this version.

Fields marked with * are required, and ones marked with + are not technically required, but I'd strongly recomend adding them.

If you are starting from scratch, you will need to make your RSS channel. Maybe you want to copy and edit an existing feed for reference. You only need to do this once for each podcast (not each episode), and when it's done you'll only need to add your items/episodes inside it.

As defined in the Apple Podcasts specification, there must be at least one <item> element, meaning at least one episode, and it must contain at least a title, enclosure (the file for the podcast) and guid (basically a link or a unique identifier for the episode). I recommend including all of these (except stated otherwise):

Item/Episode data Episode files:

If you get an error, or you want to inlcude the duration of the file as metadata, also use:

Image / Episode specific artwork:

Note that Itunes only supports embedded chapters on the episode file and Spotify requires you to use their proprietary tool or format the episode's description 😡.

+ Episode transcription(s) (see * for a list of tools to get transcription files). Note that transcription files can be HTML, JSON, VTT or STR files, but Itunes will only accept VTT or SRT, and that Spotify doesn't support this at all atm (not cool 😡):

Or if you get an error, also use:

If you don't want to use the current date, please change the <pubDate> and <lastBuildDate> tags with a RFC 2822 date. You can use timestamp­generator.

This generator complies with the RSS specification, the Apple Podcasts requirements and Itunes Podcast namespace specifications and the namespace specification simultaneusly, to not only make it work but also support most of the useful features/metadata offered by the namespaces. Feel free to report bugs or suggest new features or enhancements via the social platform that makes the most sense to you.

* Subtitles/closed captions/transcription tools I found:

  • vizard.ai: must sign up but subtitle/transcript download seems free
  • turboscribe.ai: 3 30min long file transcripts daily for free
  • youtubetotranscript.com: if you provide a YT link, it gets the transcript in plain text for free
  • veed.io: subtitle/transcript download was free at some point, it doesn't seem like it anymore

TODO/Future enhancements (pending tasks in order of importance/ease of developement, tasks marked as done are kept for extra info):

  1. Support enclosures/episode files fully (via proxy; may need a proxy change, but the infrastructure is built)
  2. Add Web Master or Managing Editor as the owner attribute in <podcast:locked>
  3. Support <podcast:guid> (that link also has some tools for generating guid's) automatic generation based on the RSS feed link as the spec says, and manual input (in case it has already been generated for your podcast)
  4. Trim leading and ending spaces for all values and limit characters to 255 unless they have a different limit
  5. Support for <podcast:chapters>. An (aparently) awesome open source tool for making chapters online, use the chaptersjson format
  6. Support <podcast:season> and <podcast:episode> (without display attribute) and dupe for <itunes:season> and <itunes:episode>
  7. Added a way to validate the feed the user is writing in the Podbase validator (all other validators need the feed to be hosted somewhere and use the feed link field)
  8. All itunes namespace's item tags (minus <itunes:block> and the redundant <itunes:title>) supported 🥳🥳🥳
  9. Add HTTP HEAD requesting to images to verify requirements and possibly show a preview
  10. Generate Guid-enabled fast-follow share links when possible (both podcast link and guid need to be provided)
  11. Support <podcast:person> (There's so many options omg! Planning on supporting at least host and guest roles)
  12. Support <podcast:podroll> and <podcast:remoteItem> inside it by extension
  13. Wont do: Detect relative URL's on "free-form" fields and notify the user (The Regular Expressions are so complicated it doesn't make sense, the user can check this using the validators, which should detect this, and most platforms reading the feeds should be able to resolve relative paths based on the channel properties anyways). WARNING: The podbase validator doesn't detect this

Privacy notice: This demo runs entirely within your browser. In other words, no data is sent to me, the code is sent to your browser and runs locally. You could theoretically load the page, cut your network connection and then use it (external feed validation and automatic file URL checking functionallity, the episode, transcripts and chapter ones, would fail, though. If you don't care about CORS checks, you can additionally use the file inputs to overcome this and make it a fully offline tool).