Blog / For podcasters
For podcasters

Podcast 2.0 tags explained: transcripts, chapters, soundbites, persons and more

A podcaster's guide to the Podcast Namespace ("Podcast 2.0"): what the most useful tags do, how they help discovery and listeners, example XML, how to add them through your host, and which to start with.

Published by the PodSearch team

"Podcast 2.0" sounds like a new platform. It is not. It is a set of optional additions to the ordinary RSS feed your podcast already has, designed so that any app, directory or search engine can offer richer features without locking you into one company. Transcripts that make your words searchable, chapters that let listeners jump to the part they want, guest credits that follow people across shows, a permanent ID that survives a host migration: these all come from Podcast 2.0 tags.

This guide explains the tags that matter most to independent podcasters, what each does for listeners and discovery, what the XML looks like, and how to add them. It is written by the team behind podsearch.org, a search engine that parses Podcast 2.0 data from millions of feeds in the open Podcast Index catalog.

What the Podcast Namespace is

The Podcast Namespace is an open specification maintained by the Podcast Index community. It defines tags that start with podcast:, for example <podcast:transcript>. Because they live in your RSS feed, any app can read them. Apps that do not understand a tag simply ignore it, so adding tags never breaks anything for listeners on older apps.

Most podcasters never write these tags by hand. Hosting platforms add them when you fill in the relevant fields: upload a transcript, enter chapter markers, add a guest. The point of understanding them is to know which features to ask your host for, and to check that they are actually in your feed.

The tags that help discovery the most

Transcripts: <podcast:transcript>

A transcript tag links an episode to a text file of what was said. The specification supports several formats, including plain text, HTML, WebVTT (text/vtt), SubRip (application/x-subrip) and JSON. A transcript can declare its language, and rel="captions" marks a timed file intended for captions.

<podcast:transcript url="https://example.com/ep42/transcript.vtt" type="text/vtt" />

Why it matters for discovery: search engines mostly match titles and show notes. A transcript makes everything you said searchable. If you discussed a guest's book, a city, a technique or a company without putting it in the notes, a transcript lets listeners find that episode anyway. podsearch.org indexes transcripts where feeds provide them, and includes them in deeper searches.

Why it matters for listeners: accessibility for deaf and hard-of-hearing listeners, the ability to skim and quote, and read-along in apps that support it.

Tips: timed formats (VTT or SRT) are more useful than plain text, because apps can sync them with playback. Correct speaker names and proper nouns; automatic transcripts often misspell exactly the words people search for.

Persons: <podcast:person>

A person tag names someone involved in the show or episode, with an optional role (host, guest, producer and many more from the namespace's taxonomy), an image and a link to a profile.

<podcast:person role="guest" href="https://example.com/janedoe" img="https://example.com/janedoe.jpg">Jane Doe</podcast:person>

At the show level (<channel>), list your regular hosts. At the episode level (<item>), list everyone in that episode, including guests. Episode-level people replace the show-level list for that episode, so include the hosts too.

Why it matters for discovery: guest names are among the most searched terms in podcasting. Person tags make "every show this person has been on" possible for apps and search engines, and they tie your episode to the guest's other appearances.

Chapters: <podcast:chapters>

A chapters tag links to a JSON file of chapter titles and start times, and optionally images and links for each chapter. Because the file is separate from your audio, you can fix chapters after publishing.

<podcast:chapters url="https://example.com/ep42/chapters.json" type="application/json+chapters" />

Why it matters: listeners jump to the part they care about, which increases completion and goodwill. Chapter titles are also a compact table of contents that some search features can use.

Soundbites: <podcast:soundbite>

A soundbite marks a highlight with a start time and duration in seconds, and an optional title. The specification recommends 15 to 120 seconds.

<podcast:soundbite startTime="1234.5" duration="42.25">Why most budgets fail in February</podcast:soundbite>

Why it matters: apps and sites can play your best moment as a preview, which is often what turns a browser into a subscriber. Pick a moment that stands on its own.

The tags that protect your show

Permanent ID: <podcast:guid>

A globally unique, permanent identifier for your podcast, generated once (as a UUIDv5 based on your feed URL at the time) and never changed. It follows your show across hosts and URL changes, so services can recognize it as the same show after a migration.

<podcast:guid>917393e3-1b1e-5cef-ace4-edaa54e1f810</podcast:guid>

Check that your host includes it, and if you move, make sure the new host keeps the same value.

Locked: <podcast:locked>

Tells other hosting platforms whether they may import your feed. yes means a platform that respects the tag should not import it without verifying ownership, typically via the owner email.

<podcast:locked owner="[email protected]">yes</podcast:locked>

This protects against someone copying your show to another platform. Set it to no temporarily when you deliberately migrate.

Podping: <podcast:podping>

Declares that your feed sends Podping notifications when it changes, which tells directories they can rely on notifications instead of frequent polling.

<podcast:podping usesPodping="true"/>

The tag is a declaration; the notifications themselves are sent by your host. See Podping explained.

Other tags worth knowing

The namespace includes many more tags. A selection, with what they are for:

TagWhat it does
<podcast:funding>Links to a page where listeners can support the show
<podcast:season>, <podcast:episode>Season and episode numbering, with optional names
<podcast:trailer>Points apps to a trailer
<podcast:location>What place the show or episode is about
<podcast:license>The license your content is published under
<podcast:alternateEnclosure>Alternative versions of an episode, such as different bitrates or a video version
<podcast:value>Lets listeners send payments to the show and its contributors through supporting apps
<podcast:medium>Says what the feed is (for example a podcast, music, or video)
<podcast:liveItem>Announces a live stream
<podcast:podroll>Recommends other podcasts to your listeners
<podcast:txt>Free-form text, sometimes used for ownership verification
<podcast:updateFrequency>Tells apps how often you plan to publish
<podcast:chat>, <podcast:socialInteract>Point to places where listeners can discuss episodes

The full, current list and exact syntax are in the namespace documentation.

How to add tags to your feed

Through your host. This is the right route for nearly everyone. Look in your host's episode editor for fields such as transcript upload, chapters, guests or people, and soundbites, and in show settings for funding, locked and podroll. Hosts differ widely in which tags they support; if a tag you want is missing, ask, because hosts add features podcasters request.

Through tools. Some editing and transcription tools export chapters files and transcripts in namespace formats that you can upload to your host.

By hand. If you self-host your feed, add the namespace declaration to your <rss> element and write the tags directly:

<rss version="2.0" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

Validate after any change.

Check that the tags are really there

Open your feed URL in a browser and search the page for podcast:. If you uploaded a transcript but cannot find a <podcast:transcript> tag in that episode's <item>, your host may store transcripts without publishing them to the feed. Ask.

What to do first

If you have limited time, this order gives the most benefit for the least effort:

  1. <podcast:guid> and <podcast:locked>. Usually a settings toggle; protects your show.
  2. Transcripts. The biggest discovery and accessibility win. Start with new episodes, then your most popular back-catalog episodes.
  3. Persons for hosts and guests. Make your guest episodes findable by name.
  4. Chapters for longer episodes.
  5. A soundbite per episode.
  6. Funding, podroll and the rest as your host supports them.

On podsearch.org, which parses transcripts, chapters, soundbites and persons where feeds provide them:

Other apps and directories use the same tags in their own ways: chapter navigation in players, transcript views, guest pages and more. Because the tags are open, the work you put in once benefits you everywhere that supports them.

Common mistakes with Podcast 2.0 tags

A few errors come up again and again when podcasters add namespace tags:

A minimal Podcast 2.0 episode

Putting the most useful tags together, a well-equipped episode item might include these lines alongside the usual title, description, date, GUID and enclosure:

<podcast:transcript url="https://example.com/ep42/transcript.vtt" type="text/vtt" />
<podcast:chapters url="https://example.com/ep42/chapters.json" type="application/json+chapters" />
<podcast:soundbite startTime="1234.5" duration="42.25">Why most budgets fail in February</podcast:soundbite>
<podcast:person role="host" href="https://example.com/sam">Sam Rivera</podcast:person>
<podcast:person role="guest" href="https://example.com/janedoe">Jane Doe</podcast:person>

You will rarely type this yourself; your host generates it from the fields you fill in. But knowing what it should look like makes it easy to check that your host is publishing what you entered.

Why open tags beat platform-only features

Many platforms offer their own versions of these features: proprietary chapter tools, transcripts inside one app, guest credits in one database. They can be good, but they only work in that platform. A namespace tag in your feed works in every app that supports it, today and in the future, and moves with you if you change hosts. Filling in a field at your host once and having it appear across many apps is the best return on effort in podcast publishing.

That is also why the namespace is developed in the open: anyone can propose a tag, discuss it and implement it, and hosts and apps adopt the tags that prove useful. If a feature you want is missing, the project's public repository is where those conversations happen.

Measuring the benefit

You can see the effect of tags directly. After adding transcripts, search for a distinctive phrase you said in an episode but did not write in the notes, using a service that indexes transcripts, such as podsearch.org with a content search. After adding person tags, search for your guest's name. Seeing your episode appear for words that exist only in the audio is the clearest demonstration of why the work is worth doing.

Frequently asked questions

Do Podcast 2.0 tags work in Apple Podcasts and Spotify?

Support varies by platform and changes over time. Because the tags live in your RSS feed, apps that support them use them and apps that do not ignore them, so adding tags is safe.

Will adding tags break my feed?

No, provided the XML is valid. Unknown tags are ignored by apps that do not support them. Validate after changes.

Which transcript format should I use?

A timed format such as WebVTT or SRT is the most versatile, because apps can sync it to playback. You can publish several formats for the same episode.

What is the difference between show-level and episode-level persons?

Show-level persons list your regular cast. Episode-level persons list everyone in that episode and replace the show-level list for it, so include hosts as well as guests.

No. It is a signal to hosting platforms that support it. It helps prevent unauthorized imports but is not a substitute for account security.

How do I know if my host supports Podcast 2.0?

Check your host's documentation, and look for podcast: tags in your feed. If a tag you want is missing, request it.

Summary

Podcast 2.0 tags are small additions to your RSS feed with big effects: transcripts make your words searchable and accessible, persons make guests findable, chapters and soundbites help listeners, and the GUID, locked and Podping tags protect your show and speed up indexing. Add them through your host, check that they appear in your feed, and start with identity and transcripts.