From IndieWeb
(Redirected from podcasts)
Jump to navigation Jump to search

A podcast is an episodic series of audio and/or video posts that can be subscribed to and downloaded for offline listening/viewing.

You may also be interested in:


Why should you have a podcast? Some people like listening to them when:

  • walking / running / exercising in general
  • driving, e.g. on a roadtrip
  • commuting (by any method)


How to publish

Publishing a podcast usually involves publishing an RSS feed with episodes as items and linking to the audio file in the RSS <enclosure>.

Once you've created the podcast RSS feed, you can submit it to one or more directories like Apple Podcasts, Google Play, Stitcher, or you can give the feed URL to people directly and they can add it to most podcast player apps.

How to consume

Podcasts are RSS/Atom/XML feeds where, normally, the media of the podcast is linked to with an enclosure tag eg: <enclosure url="http://example.com/podcast01.mp3" length="259429328" type="audio/mpeg" />

However, most podcasts also include a number of other iTunes specific tags to ensure iTunes will subscribe to them easily, eg <itunes:summary>. Some of these iTunes tags are usually just replications of the data in other tags in the item.

Most podcast players both consume podcast feeds and play podcast audio. iTunes is the primary podcast player on OS X and iOS. Other platforms have other players, e.g. BeyondPod and AntennaPod on Android. (See also podcatcher)

Some podcasts only publish on iTunes. You can subscribe to them in other players with hacks like Feed Flipper.

IndieWeb Examples

IndieWeb examples of personal podcast publishing and consuming

Ben Werdmuller

Ben Werdmüller has published podcasts on werd.io using Known


Ashton McAllan consumes podcasts through her reader Whisperfollow which aggregates RSS and, if they are marked up with podcast media tags, embeds the media for consumption and provides a link to save or open in another window

gRegor Morrill

gRegor Morrill has published a podcast on http://latenighttoast.com using ProcessWire

  • First 2015-05-07: http://latenighttoast.com/episodes/001-episode-305/
  • Includes h-feed microformats
  • Generating the RSS feed [1] on the same domain so that we can control the canonical URL of the feed after submitting it to iTunes.
  • Using archive.org to host the MP3s.
  • Using URLs on the same domain that redirect to the archive.org MP3s, again so that we control the canonical URL of the MP3. This also gives us the ability to roughly track the number of streams/downloads of each episode.

Jeenas Excellent Encounters

Jeena Paradies is publishing a podcast on https://jeena.net/pods

  • using his own implementation with Ruby on Rails
  • It's marked up with a h-feed h-entry and u-audio
  • It also has a RSS feed for iTunes and other podcast managers

Marty McGuire

Marty McGuire is publishing a podcast at https://wehavetoask.com/

  • static site generated with Hugo
  • index marked up as an h-feed with h-entry and u-audio
  • Build process also creates an RSS feed for iTunes and other podcast managers

Marty also hosts an IndieWeb-centric podcast This Week in the IndieWeb

  • part of a static site generated with Jekyll
  • index marked up as h-feed with h-entry and u-audio
  • Build process also creates an RSS feed for iTunes and other podcast managers

Colin Walker

Colin Walker is publishing a twice-weekly microcast at https://colinwalker.blog/podcast

  • self-hosted using WordPress
  • episodes approx 3 minutes long, recorded on iPhone and posted using Workflow
  • includes h-feed, h-entry and u-audio markup
  • local RSS feed and via iTunes

Aaron Parecki

Aaron Parecki publishes a podcast at https://percolator.today

  • self-hosted using home-built tools
  • episodes are about 3-6 minutes long
  • marked up with h-feed, h-entry and u-audio
  • has a local RSS feed published via iTunes and other podcast directories

Greg McVerry

  • Greg McVerry self publishes poembox and 2toPonder
  • uses microformats to mark up
  • converts feeds to RSS using Granary

Other Examples


For additional examples of short podcasts, see the microcast page.

Main article: microcast


Wavelist is a collection of podcast episodes curated into playlists by individuals.

Chris Aldrich

Because of the way Chris Aldrich formats his listen posts (using the Post Kinds Plugin) and includes html audio tags marked up with u-audio, the feed for these posts at http://boffosocko.com/kind/listen/feed can be subscribed to like a traditional podcast. Because this feed is meant more to help other's discovery of content, he calls this non-traditional podcast a "faux-cast". More details here.

Ryan Barrett

Ryan Barrett publishes a list of podcasts he listens to:

Silo Examples


  • Cast provides a paid service to allow you to record, edit, publish, and host your podcast.



There are number of services for distributing your podcast without having to make copies (thus different from POSSE / syndication in general).


Huffduffer is a bookmarking service for podcasts and audio / music / speech in general.

To submit your podcast to Huffduffer, create an account, submit your podcast with various tags.

Users of Huffduffer can then find your podcast by tag.


iTunes is a service and application from Apple for music, video, podcasts and other multimedia. Podcasts distributed by iTunes are made easily discoverable and subscribable in:

  • MacOS "iTunes" application
  • iOS "Podcasts" application

Submitting to iTunes for distribution

See: How to Submit a Podcast at apple.com

When submitting a podcast URL to iTunes, be sure to submit a URL on a domain that you control. For example, if using Libsyn to host your podcast mp3s, don't submit the RSS URL that they provide. Instead, host a page on your domain that sends a "302 Found" temporary redirect to the Libsyn URL.

The HTTP client that Apple uses to fetch your podcast feed does not support SNI or Let's Encrypt certificates. If you don't have the ability to host an https URL on a dedicated IP address with an SSL cert from a supported CA, then you will have to give Apple a non-https URL for your podcast feed.

Changing podcast hosting providers

Podcast URL under your control

If your podcast URL is on your own domain, then you can just change the 302 redirect to point to the new hosting provider.

Podcast URL not under your control

If your podcast URL is not on your own domain, then the ability to change your URL is limited by whether your current host allows you to.

Libsyn has a writeup of how to change your feed URL.

Essentially the process involves setting an additional property in the feed URL.




Main article: unmung

unmung will turn podcast feeds into playable HTML5 audio with microformats markup eg In Our Time


Main article: granary

granary converts podcast h-feeds and h-entries to RSS with enclosures, including iTunes extension elements. It reads and writes the duration mf2 property. Details.


How to podcast with h-feed

Based on the examples, a podcast h-feed would be an h-feed of h-entry and may have some of the following.

  • Minimum properties
    • audio - the url of the podcast file.
    • name - episode name
  • Additional h-entry properties
    • summary - representing a summary of the episode meant to be displayed in players
    • content - Used by several as HTML contents of episode page. May include audio tag, summary, length, download link etc, and may be used as a fallback for readers that don't have special handling for audio.
    • photo - Marty McGuire uses this as the poster image for the episode, however, it might be better to use featured for this.
    • published - Publish time of the episode
    • category - Categories for this episode
  • Currently Proposed Properties
    • size - The size of the audio file
    • duration - The duration of the episode
  • Areas Not Covered by current properties
    • episode/season - Episode and season numbers for podcasts current have no vocabulary. In media files, it is common to use SXXEXX(Season and Episode number).
    • Chapter/Scene information. This can be done with media fragments, but how to mark these up?
    • h-entry has a concept of authors, but in podcast context, this is who uploaded the episode. We need vocabulary to cover contributors...such as hosts, guests, etc.
    • Episode Type - iTunes markup has the concept of episode type, being full, trailer, or bonus content. If a trailer and no season or episode number, this represents a show trailer, otherwise, a season or episode trailer/teaser. If a bonus, and no season or episode number: a show bonus, but if it has either a season or season and episode number, a bonus representing the season or the individual episode. Feed has a concept of type which allows for episodic or serial.

The other issue is a multi-format podcast...if you have a video and an audio component, or multiple file formats of the same type, and how to mark this up.

Indieweb Examples

Aaron Parecki publishes an h-feed for his podcast:

  • https://percolator.today/
    • The top-level object is an h-feed with the podcast description
    • Each episode is an h-entry child of the h-feed
    • Each episode h-entry has the following properties:
      • name - the episode name
      • length - duration of the episode in seconds
      • size - the file size of the audio file "17.43mb"
      • audio - the link to the mp3 file of the episode
      • url - permalink to the episode's HTML page
      • published
      • summary - episode summary, intended to be displayed in players

Marty McGuire publishes a podcast with h-feed.

  • https://wehavetoask.com/
    • The top-level object is an h-feed. The podcast description is contained in the author property of the h-feed as an h-card:
      • url
      • name - name of the podcast
      • note - summary description, similar to what appears in a podcast directory
      • photo - poster image similar to what appears in a podcast directory
    • Each episode is an h-entry child of the feed, with the following properties:
      • name - title of the episode
      • summary - episode summary, intended to be displayed in players
      • audio - the link to the mp3 file of the episode
      • content - HTML with the summary text and <audio> element
      • url - permalink to the episode's HTML page
      • published

gRegor Morrill publishes a podcast with h-feed:

  • http://latenighttoast.com/
    • The top-level object is an h-feed with properties
      • name
      • url
      • author - nested h-card
      • summary - podcast summary, similar to what appears in podcast directory
      • photo - poster image similar to what appears in a podcast directory
    • Each episode is an h-entry child of the h-feed
    • Each episode h-entry has the following properties:
      • name - the episode name
      • length - duration of the episode, e.g. "PT1H7M59S"
      • size - the file size of the audio file "62.2 MB"
      • audio - the link to the mp3 file of the episode
      • url - permalink to the episode's HTML page
      • dt-published
      • summary - episode summary, intended to be displayed in players
      • content - HTML contents of episode page. Includes summary + <audio> + length + download link. May be redundant, but may also serve as a fallback for readers that don't have special handling for audio posts
  • Greg McVerry published a podcast with h-feed and Granary
    • You can use Granary to convert the microformats on your podcast page to valid RSS feed.
      • Make a 3000X 3000 image and mark it up with u-photo
      • add size using dt-size
      • add duration using dt-duration
      • Visit granary, copy the link and use that to register with podcatchers
    <div class="h-feed" id="audiopoem">  
   <h2 class="p-name">Poembox</h2>
   <p class="p-summary">A boombox of bad poems</p>
   <img class="u-photo" src="https://jgregorymcverry.com/photos/poemboxpodcastart.jpg" style="width:200px">
  <time class="dt-updated" datetime="2020-02-25 11:14:20">25 <sup>th </sup> February 2020 </time>
<div class="h-entry>
  <p class="p-name">(un)Celebration</p>
  <a class="p-author" href="/"></a>
  <time class="dt-published" datetime="2020-02-01 13:34:20">01<sup>st</sup> February 2020</time>
 <audio class="u-audio" src="https://jgregorymcverry.com/poetry/(un)Celebration.m4a" controls="controls">
<data class="p-size" value="222672"></data><data class="p-duration" value="PT0H0M15S"></data>
  • Please note that an RSS feed from Granary will not be compliant with ITunes Validators
    • This feed uses the SSL certificate authority “Google Trust Services”, which is not compatible with iTunes.

How to create a subscribe link

It is important to make it easy for people to subscribe to your podcast. Jeremy Keith uses the following code, as of before 2018-04-23, to allow people to easily subscribe to Huffduffer feeds:

  <li><a rel="alternate" type="application/rss+xml" href="/adactio/rss">RSS</a></li>
  <li><a href="pcast://huffduffer.com/adactio/rss">Subscribe in Podcasts app</a></li>
  <li><a href="overcast://huffduffer.com/adactio/rss">Subscribe in Overcast</a></li>
  <li><a href="downcast://huffduffer.com/adactio/rss">Subscribe in Downcast</a></li>
  <li><a href="instacast://huffduffer.com/adactio/rss">Subscribe in Instacast</a></li>
  <li><a href="podcast://huffduffer.com/adactio/rss">Subscribe in another app</a></li>

This list is very iOS centric, but the “Subscribe in Podcasts app” (with the pcast scheme) also works for some Android applications:

WordPress recommends the itpc scheme “to make life easier for iTunes users”. They make no mention of which podcatcher may support it.


See Also