Skip to main content

Podcasting 2.0 Tags

Benecaster supports the Podcasting 2.0 namespace (xmlns:podcast) from the Podcast Index project. These tags extend standard RSS with richer metadata — show ownership signals, funding links, transcripts, credits, soundbites, and more.

All Podcasting 2.0 tags are included in your private subscriber feeds automatically when configured. No additional plugins or code are needed.

Where a tag needs turning on, this page names the setting alongside it. Show-level tags are configured under Show Settings → Podcasting 2.0; episode-level fields live in the episode editor’s Podcasting 2.0 section. Where a tag has a guide of its own, it is linked from its entry.


App Support

Podcasting 2.0 tags are supported in Podcast Index-compatible apps including Overcast, Pocket Casts, AntennaPod, Podverse, Castamatic, and Podfriend. Support varies by tag and app version — check the Podcast Index apps directory for a current list.

Apple Podcasts and Spotify do not currently recognize Podcasting 2.0 tags. These tags are silently ignored by apps that don’t support them, so including them has no negative effect on your feed in any app.


Show-Level Tags

Configure show-level Podcasting 2.0 settings under Show Settings → Podcasting 2.0.

podcast:guid

A permanent, unique identifier for your show — a UUID v4 generated when the show is created. Podcast directories and apps use this identifier to track your show reliably across hosting platform changes and feed URL updates.

You do not need to configure this. Benecaster generates and stores the GUID automatically on show creation. It is never regenerated.

podcast:locked

Signals to podcast platforms that this show should not be claimed or imported by another service without your permission. When enabled, you also provide an owner email address — platforms contact this address to verify ownership requests.

Turn this on if you want to prevent an automated platform claim from moving your show without your knowledge.

podcast:funding

Links listeners to your support page inside compatible podcast apps. When your Listener Support payment link is configured, Benecaster populates this tag automatically. You can also enter a custom URL pointing to any external donation or membership platform.

The link label defaults to {Show Title} Listener Support. Developers can override it per-show using the benecaster_feed_podcast_funding_label filter.

podcast:block

Prevents specific platforms from indexing or importing your show. Select from a list of known platforms (YouTube, Amazon, Spotify, and others) or enter a platform identifier manually. One <podcast:block> tag is output per blocked platform.

This tag is separate from <itunes:block> — use podcast:block for granular per-platform blocking; the iTunes block flag (an all-or-nothing setting) is handled separately in Show Settings.

podcast:txt

Adds arbitrary text strings to your feed. Most commonly used for podcast directory ownership verification: the directory gives you a string to paste, you add it here, and the directory confirms ownership by finding it in your feed. Each entry has an optional purpose label and a value. Repeatable.

podcast:license

Declares the content license for your show. Choose from Creative Commons options (CC BY, CC BY-SA, CC BY-NC, CC BY-NC-SA, CC BY-ND, CC BY-NC-ND) or enter a custom license URL. The tag is omitted when “All Rights Reserved” is selected, which is the default.

podcast:medium

Tells apps what kind of thing your feed is: podcast, music, video, film, audiobook, newsletter, blog, or course. Set it under Shows → Settings → Podcasting 2.0 → Medium.

Every feed carries it. A show that has never had a medium chosen, existing shows included, emits <podcast:medium>podcast</podcast:medium>, so you only need to change it when your feed is one of the other seven things. Because the tag is always there, every feed also declares the Podcasting 2.0 namespace.

The spec also defines *L list variants (musicL, videoL, and so on) and a publisher medium. Benecaster does not offer these: they describe feeds assembled from <podcast:remoteItem> references to other feeds, which Benecaster does not generate.

podcast:updateFrequency

Tells listeners and apps how often to expect new episodes — “Every other Tuesday”, “Weekly, most weeks”, “Whenever we finish one”. Set it under Shows → Settings → Podcasting 2.0 → Update Frequency.

<podcast:updateFrequency rrule="FREQ=WEEKLY;BYDAY=TU">Every Tuesday</podcast:updateFrequency>

The Schedule text is the tag. It is what an app displays, so if you leave it blank there is no tag at all — whatever else you have filled in.

The optional Recurrence rule does not work on its own. It is a machine-readable RFC 5545 rule that rides along as an attribute, for apps that want to compute the next expected release rather than print your sentence. With no Schedule text there is nothing for it to attach to, so Benecaster discards it when you save. Fill in the Schedule first.

If your show is marked complete in Feed settings, the tag also carries complete="true" — the same declaration behind <itunes:complete>. That comes from you ticking the box, and is never inferred from a show going quiet. A podcast on an unplanned eighteen-month hiatus is not finished, and Benecaster will not tell the world it is.

podcast:trailer

Advertises your trailers on the channel, so an app can offer a listener a taste of the show before they subscribe.

There is nothing to configure, and no switch to look for. Any published episode whose episode type maps to the iTunes type trailer is advertised automatically. If you have renamed that type — calling it “Sneak Peek” or “Preview” — it still works: what matters is the iTunes type it maps to under Shows → Settings → Episode Types, not what you called it.

Trailers behind a paid tier are not advertised to feeds that cannot play them. Each subscriber’s feed only advertises trailers that feed is already allowed to carry. This matters more than it sounds: a <podcast:trailer> tag carries the episode’s media URL in the channel block, where every recipient of that feed sees it, so advertising one the listener cannot access would hand out the file anyway.


Episode-Level Tags

Configure episode-level Podcasting 2.0 fields in the episode editor under the Podcasting 2.0 section.

podcast:transcript

Links to a transcript file for the episode. Enter the transcript URL and select the MIME type: text/plain, text/html, application/srt, text/vtt, or application/json.

Transcription Service add-on: When the Transcription Service add-on is installed and a transcript is complete, Benecaster populates this tag automatically — no manual URL entry needed. Your transcript visibility settings are respected: if you’ve restricted transcript access to specific tiers, the tag is omitted from feeds where subscribers don’t have access.

On the episode page: the same transcript URL also appears on the episode’s web page as a Read the transcript link under the player. It is shown only to visitors who can access the episode, under the same tier, release-date and buy-up rules as the player, and needs no setting. An episode with no transcript URL shows nothing. The link opens the transcript file at its host; the page does not display the text. The file itself is not protected by the link: anyone who has the URL can open it, so a transcript you must keep private should not be hosted at a public address.

podcast:soundbite

Marks a highlighted moment in an episode with a start time, duration, and optional title. Compatible apps may surface these as shareable clips or prominent navigation points. Repeatable — add as many soundbites per episode as you like.

Enter start time and duration in seconds. Decimals are supported (e.g. 73.5 seconds).

podcast:person

Credits the people involved in an episode: host, guest, editor, producer, or a custom role. Each entry includes the person’s name, an optional profile URL, and an optional headshot URL. Repeatable.

Guest Manager add-on: When the Guest Manager add-on is installed, guests assigned to an episode are automatically included as <podcast:person> entries with the guest role. Your show’s host is added as a separate entry.

podcast:image

Provides your episode artwork at every size WordPress has generated, so apps can pick the resolution they need instead of downloading a full-size file to draw a thumbnail. Benecaster emits one <podcast:image> element per registered image size, largest first, with no configuration needed.

<podcast:image href="https://example.com/art-1536x1536.jpg" alt="A hand-drawn map of the harbour" width="1536" height="1536" type="image/jpeg"/>
<podcast:image href="https://example.com/art-768x768.jpg" alt="A hand-drawn map of the harbour" width="768" height="768" type="image/jpeg"/>

Filling in Alternative Text is what puts a description in your feed. There is no new field anywhere in Benecaster for this — the alt attribute comes straight from the Alternative Text box on the artwork in your WordPress Media Library. Set it there and it appears in the feed; leave it blank and it does not.

Blank alt text produces no alt attribute at all, rather than an empty one. That is deliberate: alt="" is not “no description,” it is a positive claim that the image is decorative and should be skipped by a screen reader. Episode artwork is not decorative, so saying nothing is more honest than saying that.

An episode with no artwork of its own emits nothing here, and does not fall back to your show artwork. Apps already fall back to <itunes:image> on their own, so repeating the show art per episode would add bytes to every item to say what the channel already says.

There is no channel-level <podcast:image> for the same reason.

Replaces <podcast:images>. The Podcast Index spec retired the old single-element srcset form in favour of these repeated elements, and Benecaster no longer emits it. If your feed still contains a <podcast:images> element, an add-on or a site filter is putting it back — the feed health check under Settings → Tools flags it explicitly for that reason.

podcast:chapters

Chapter markers are a built-in feature, included in every Benecaster plan — there is no add-on to buy. When an episode has chapters defined, Benecaster generates a JSON chapters file and adds the <podcast:chapters> tag automatically, and also outputs inline Podlove Simple Chapters (<psc:chapters>) for apps that support that format instead.

Add chapters in the episode editor — see Chapter Markers for the editor, the front-end jump-to-chapter list and the available filters.

podcast:episode

Carries the episode number, so apps that show episodes in numbered order have a Podcasting 2.0 value to read rather than only the iTunes one.

There is no new field and nothing to fill in. It uses the same episode number you already set in the episode editor — the one behind <itunes:episode>. Set the number once and both tags appear.

Emitted only when the episode has a number greater than zero. Episodes with no number simply have no tag.

The spec allows an optional display attribute — a moniker shown in place of the number, such as “Prologue” — which Benecaster does not emit, because there is nowhere in the episode editor to store one.

podcast:season — Display Name

When your show uses seasons, Benecaster already outputs a standard <podcast:season> tag with the season number. If you’ve set a display name for a season — for example, “The Vault” instead of “Season 3” — Benecaster adds the name attribute: <podcast:season name="The Vault">3</podcast:season>.

Set season display names under Show Settings → Seasons.


Add-on Integrations

Two add-ons automatically populate Podcasting 2.0 episode tags. Both are independent — you can install either or both without conflicts.

Add-on Tag Notes
Transcription Service podcast:transcript Populated automatically when a transcript is complete; visibility-gated per subscriber tier — ineligible subscribers never see the URL in their feed
Guest Manager podcast:person One entry per assigned guest (role="guest") plus a host entry per show (role="host")

Without an add-on, you can also populate any of these tags manually — enter transcript URLs directly in the episode editor, or inject additional tags for any episode using the benecaster_feed_podcast_episode_tags filter.


Developer Extension Points

Three filters give add-ons and custom code full control over what Podcasting 2.0 tags appear in your feed:

Filter What it controls
benecaster_feed_podcast_channel_tags The full channel-level tag array before XML output — add, override, or remove any show-level tag
benecaster_feed_podcast_episode_tags The per-episode tag array before XML output — the integration point used by all three add-ons above
benecaster_feed_podcast_funding_label The <podcast:funding> element label text

See the Filter Hooks Reference for full parameter documentation and usage examples.

See Also

Need this built rather than just documented? See our services →