podcast-namespace/docs/1.0.md

3.7 KiB

RSS Namespace Extension for Podcast (xmlns:podcast DTD)

A wholistic RSS namespace for podcasting that is meant to synthesize the fragmented world of podcast namespaces. As elements are canonized, they will be added to this document so developers can begin implementation. The specifications below are considered locked and the team will prioritize backward compatibility. We are operating under the Rules for Standards-Makers.

If your application generates RSS feeds and you implement one or more elements below, you will need to link this DTD in your XML. <rss version="2.0" xmlns:podcast="https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md">

Podcast Tags

Each tag below exists in the podcast namespace within the specified parent. All attributes are required unless explicitly specified as optional.



Transcript

<podcast:transcript> This tag is used to link to a transcript or closed captions file. Multiple tags can be present for multiple transcript formats.

Parent

<item>

Attributes

url: URL of the podcast transcript

type: Mime type of the file such as text/plain, text/html, application/srt, application/json

language (optional): The language of the linked transcript. If there is no language attribute given, the linked file is assumed to be the same language that is specified by the RSS <language> element.

rel (optional): If the rel="captions" attribute is present, the linked file is considered to be a closed captions file, regardless of what the mime type is. In that scenario, time codes are assumed to be present in the file in some capacity.

Examples

<podcast:transcript url="https://podcastindex.org/ep0002/transcript.html" type="text/html" />

<podcast:transcript url="https://podcastindex.org/ep0002/transcript.srt" type="text/srt" rel="captions" />

<podcast:transcript url="https://podcastindex.org/ep0002/transcript.json" type="application/json" language="es" rel="captions" />



Locked

<podcast:locked> This tag may be set to yes or no. The purpose is to tell other podcast platforms whether they are allowed to import this feed. A value of yes means that any attempt to import this feed into a new platform should be rejected. It is expected that podcast hosting providers will enable a toggle in their GUI to allow their users to turn feed transfer lock on or off.

Parent

<channel>

Attributes

owner: The owner attribute is an email address that can be used to verify ownership of this feed during move and import operations. This could be a public email or a virtual email address at the hosting provider that redirects to the owner's true email address. This is a critical element, and it's expected that podcast hosting providers (if not providing virtual addresses) will allow setting this element's value in their GUI with an emphasis to their users of how important it is to have this be a valid, working email address.

Examples

<podcast:locked owner="email@domain.com">yes</podcast:locked>

<podcast:locked owner="email@domain.com">no</podcast:locked>



Funding

<podcast:funding> This tag lists possible donation/funding links for the podcast. The content of the tag is the recommended string to be used with the link

Parent

<channel>

Attributes

url: The URL to be followed to fund the podcast.

platform (optional) Identifies a payment or funding platform for the podcast. Service slugs should be recorded here in the repository.

Examples

<podcast:funding url="www.mydomain.com/support">Support the show!</podcast:funding>

<podcast:funding platform="paypal" url="www.paypal.me/myshow">Support the show!</podcast:funding>