Offer multiple audio format or bitrate downloads for a single podcast episode using the podcast:alternateEnclosure and podcast:source namespace tags
domain: podcasting2.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Within an episode's <item>, add one or more <podcast:alternateEnclosure> elements alongside the standard RSS <enclosure> to describe alternate or companion versions of the episode, such as a lower-bitrate file for constrained bandwidth, an audio-only track for a video episode, or an alternate codec
Nest one or more <podcast:source> child elements inside each alternateEnclosure to declare the actual URI(s) where that specific variant can be fetched, using the uri attribute to support alternate transport schemes (HTTP, IPFS, magnet/BitTorrent, Tor)
Set accurate type, length, and bitrate attributes on each alternateEnclosure so podcast apps that support the tag can present listeners with a meaningful choice
Use the isDefault attribute to indicate which alternateEnclosure, if any, should be preferred by supporting apps over the plain <enclosure>
Set contentType on a podcast:source only when that transport's file type differs from the underlying media's mime type (e.g., a .torrent file pointing at an MP3)
Validate the finished feed against a Podcast Index namespace validator before publishing, since malformed nesting is typically ignored silently rather than rejected
Known gotchas
podcast:alternateEnclosure support is limited to Podcasting-2.0-aware apps (Podcast Index-powered players and similar) - mainstream apps like Apple Podcasts and Spotify ignore it entirely and only ever fetch the plain <enclosure>
podcast:source elements must be nested as children of podcast:alternateEnclosure, not as siblings - this is an easy mistake and most players fail silently on malformed nesting instead of surfacing an error
contentType is only required when a transport's file type differs from the final media type - adding it everywhere or omitting it where required both create ambiguity for parsers
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?