A project to extend the podcast specification to make it easier to make enhanced podcasts
https://www.theguardian.com/info/2019/jun/12/why-we-want-to-make-podcasts-better
A better podcast app, with a goal to improve listener revenue.
A potential mockup of the UI and some of the supported events:
PodX is an extension for a podcast’s RSS 2.0 feed.
PodX is an XML namespace designed to be consumed by a podcast client application. PodX event data consists of elements which specify information or interactions to display to a listener of a podcast. Valid elements are identified by name, and contain a set common child elements which specify a time to display information, as well as text descriptions of displayed information to be shown through the client application.
All PodX event elements are expected to be children of item elements, where the item encapsulates an episode of a podcast in a feed.
Element | Description |
web | A web link event contains a href attribute that points to a URL a user can choose to navigate to during the display of en event.
Example:
|
image | An event contains a href attribute that points to the URL of an image that the user can navigate to, or the PodX client can display
Example:
|
socialPrompt | An event that contains a list of urls and social media services so that users can choose from a range of options for engaging with podcast producers.
Example:
|
text | An event to show text from the caption element without additional unique elements or attributes.
Example:
|
support | A web link event pointing to a site that allows a listener to support podcast producers. Identical to the web link event in structure and function, but enables the podcast client application to differentiate for display.
Example:
|
feedLink | A web link event with an additional attribute to point to an item element or episode of a podcast feed pointed to by the URL. A third optional attribute specifies a point in normal play time from the start of playback to begin playing. This way the user can be taken to a specific point in a different podcast episode and begin playback at that point.
Example:
|
callPrompt | Contact details to initiate a call or text to a predefined contact number. The number to contact is specified as an attribute.
Example:
|
newsletterSignup | A web link event pointing to a form to enter details required to sign up to a newsletter. Identical to the web link event in structure and function, but enables the podcast client application to differentiate for display.
Example:
|
feedback | A web link event pointing to a form to submit feedback to podcast producers. Identical to the web link event in structure and function, but enables the podcast client application to differentiate for display.
Example:
|
poll | A web link event pointing to a poll or survey. Identical to the web link event in structure and function, but enables the podcast client application to differentiate for display.
Example:
|
Common elements are elements that are available or required children for PodX event elements.
Element | Description |
start | A point in playback of a podcast expressed in normal play time relative to the start of an audio file in the parent item. The expected format is HH:MM:SS.mmm or MM:SS.mmm or SS.mmm Leading and trailing zero values can be trimmed, and milliseconds are optional.
The parent event is to be displayed from this timestamp. Example:
|
end | The point in playback of a podcast expressed in normal play time relative to the start of an audio file in the parent item. The expected format is the same as the format.
Display of the parent event is to end at this timestamp. It is expected for the end time to a after the start time. Example:
|
caption | Text to display to a listener along with an event.
Example:
|
notification | A condensed version of the caption, to be displayed in notifications associated with the event.
Example
|
Attribute | Description |
url | A generic url that is to be opened in a browser |
Attribute | Description |
href | A uri for an image to be displayed during playback |
Element | Description |
socialLink | A link to a social media profile. The url and type are stored as attributes.
Example:
|
Attribute | Description |
url | A url that points to a social network profile. The podcast client can also identify which know social media sites are present using the url. |
Attribute | Description |
url | A url that points to a page that allows listeners to financially support podcast producers. |
Element | Description |
feedUrl | The url of an rss feed that describes a podcast. |
feedItemTitle | The title field of an item element to be used to identify the item that describes the linked episode to begin playing. |
feedItemPubDate | The published date field of an item element to be used to identify the item that describes the linked episode to begin playing. |
feedItemGuid | The guid field of an item element to be used to identify the item that describes the linked episode to begin playing. Guids may not be set in feeds. |
feedItemEnclosureUrl | The the url attribute of the enclosure field of an item element to be used to identify the item that describes the linked episode to begin playing. This could be used to begin playback if other data is missing or malformed. |
feedItemAudioTimeStamp | A timestamp to start playing an episode at in normal play time relative to the start of an audio file in the parent item. The expected format is HH:MM:SS.mmm or MM:SS.mmm or SS.mmm Leading and trailing zero values can be trimmed, and milliseconds are optional. |
Attribute | Description |
number | A phone number that a listener can call |
Attribute | Description |
url | A url that points to a newsletter signup form to be opened in a browser. |
Attribute | Description |
url | A url that points to contact details or a feedback form to be opened in the browser. |
Attribute | Description |
url | A url that points to a poll to be opened in the browser. |