kopia lustrzana https://github.com/Podcastindex-org/podcast-namespace
Merge branch 'main' into main
commit
0a23f577ab
145
README.md
145
README.md
|
@ -1,8 +1,8 @@
|
|||
# The "podcast" Namespace
|
||||
|
||||
A wholistic rss namespace for podcasting that is meant to synthesize the fragmented world of podcast namespaces. The broad goal is to create one namespace
|
||||
to rule them all, that is easily extensible, community controlled/authored and addresses the needs of the independent podcast industry now and in the future.
|
||||
The large podcast platforms have shown virtually no interest in extending their namespaces for new functionality in many years. Our hope is that this namespace
|
||||
A wholistic rss namespace for podcasting that is meant to synthesize the fragmented world of podcast namespaces. The broad goal is to create a single, compact, efficient
|
||||
namespace that is easily extensible, community controlled/authored and addresses the needs of the independent podcast industry now and in the future.
|
||||
Our hope is that this namespace
|
||||
will become the framework that the independent podcast community needs to deliver new functionality to apps and aggregators.
|
||||
|
||||
|
||||
|
@ -15,27 +15,20 @@ There is significant overlap amongst the many existing podcast namespaces. Each
|
|||
system and audience the metadata they need in the way they want it delivered.
|
||||
|
||||
|
||||
## Goal #2 - Minimize Attributes and Sub-elements
|
||||
|
||||
Attributes in xml elements should be used only where absolutely needed. The preference is to create a new element type, rather than reuse the same element with
|
||||
different attributes. For example, instead of using **\<podcast:image type="Large">**, we would use **\<podcast:imageLarge>**. This makes the corresponding
|
||||
aggregator code easier and more linear. Sub-elements should be avoided if at all possible.
|
||||
|
||||
|
||||
## Goal #3 - Keep "required" tags minimal
|
||||
## Goal #2 - Keep "required" tags and attributes minimal
|
||||
|
||||
The only required tags should be those that solve an overwhelming need in the industry. Requiring tags is a roadblock to adoption and should be avoided. Attributes
|
||||
should also only be required when they are key to the functionality of the tag.
|
||||
|
||||
|
||||
## Goal #4 - Keep Exisiting Conventions
|
||||
## Goal #3 - Keep Exisiting Conventions
|
||||
|
||||
Reinventing the wheel helps nobody. When at all possible, existing conventions should be maintained. For example, it would make sense to turn **\<podcast:explicit>** into
|
||||
a unary element, where it's existence is taken as a "yes" and it's absence as a "no". But, that has never been the standard. And, given as how this namespace will probably
|
||||
sit alongside at least one other namespace, it makes sense to keep existing conventions in place.
|
||||
|
||||
|
||||
## Goal #5 - Be General... to a point
|
||||
## Goal #4 - Be General... to a point
|
||||
|
||||
There is no way to address every possible metadata point that each platform would want. That is not the aim. Instead we focus on defining the elements that would be useful
|
||||
to the broadest set of apps, publishers, platforms and aggregators. Individual parties can keep their respective supplemental namespaces small and targeted as an adjunct to
|
||||
|
@ -44,7 +37,26 @@ this larger namespace. But, we don't want to be so general that the spec become
|
|||
|
||||
## The Guiding Principles
|
||||
|
||||
Our guiding principles for development of this namespace are the "[Rules for Standards Makers](http://scripting.com/2017/05/09/rulesForStandardsmakers.html)" by Dave Winer. Please read it before contributing if you aren't familiar with it.
|
||||
Our guiding principles for development of this namespace are the "[Rules for Standards Makers](http://scripting.com/2017/05/09/rulesForStandardsmakers.html)" by Dave Winer.
|
||||
Please read it before contributing if you aren't familiar with it.
|
||||
|
||||
|
||||
## Official XMLNS Definition
|
||||
|
||||
To see the formalized tags, the official definition file is [here](docs/1.0.md).
|
||||
|
||||
|
||||
## Supporting Platforms and Apps
|
||||
|
||||
To see a list of platforms and apps that currently implement some or all of these tags, see the list [here](docs/element-support.md).
|
||||
|
||||
|
||||
## Example Feed
|
||||
|
||||
There is an example feed [example.xml](example.xml) in this repository showing the podcastindex namespace side by side with the Apple itunes namespace. There is also
|
||||
a "sandbox" feed where we experiment with tags while they are being hashed out.
|
||||
|
||||
The url for that feed is: [https://noagendaassets.com/enc/pc20sandbox.xml](https://noagendaassets.com/enc/pc20sandbox.xml).
|
||||
|
||||
<br><br>
|
||||
|
||||
|
@ -54,7 +66,7 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
|
||||
<br>
|
||||
|
||||
- **\<podcast:locked owner="[podcast owner email address]">**[yes or no]**\</podcast:locked>**
|
||||
- **\<podcast:locked owner="[podcast owner email address]">**[yes or no]**\</podcast:locked>** (formalized)
|
||||
|
||||
Channel
|
||||
|
||||
|
@ -71,7 +83,7 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
|
||||
<br>
|
||||
|
||||
- **\<podcast:transcript url="[url to a file or website]" type="[mime type]" rel="captions" language="[language code]" />**
|
||||
- **\<podcast:transcript url="[url to a file or website]" type="[mime type]" rel="captions" language="[language code]" />** (formalized)
|
||||
|
||||
Item
|
||||
|
||||
|
@ -84,26 +96,21 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
|
||||
<br>
|
||||
|
||||
- **\<podcast:chapter start="[(int or float)]" title="[(string)]" href="[uri to content]" type="[mime type]"/>**
|
||||
- **\<podcast:chapters url="[url to chapter data file]" type="[mime type]" />**
|
||||
|
||||
Item
|
||||
|
||||
(optional | multiple)
|
||||
(optional)
|
||||
|
||||
This element specifies a point in time during the podcast that can be linked to directly and optionally supplemented with additional content.
|
||||
|
||||
Attributes:
|
||||
|
||||
- `start` (required) Used to identify the starting point of the chapter within the podcast. Start time is expressed as seconds since the start time of the podcast.
|
||||
- `title` (optional) Used as a user facing identifier for this chapter.
|
||||
- `href` (optional) Points to a url containing additional user facing content, like an image or wiki entry.
|
||||
- `type` (optional) This attribute is strongly encouraged if `href` is used so that apps can handle the external chapter content appropriately.
|
||||
Links to an external file (see example file) containing chapter data for the episode. The mime type of the file should be given - JSON prefered, `application/json`. See
|
||||
the [jsonChapters.md](chapters/jsonChapters.md) file for a description of the chapter file syntax. And, see the [example.json](chapters/example.json) example file for
|
||||
a real world example.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:location latlon="[latitude,longitude]" (osmid="[OSM type][OSM id]")>**[CountryCode(|Locality)]**\</podcast:location>**
|
||||
|
||||
Channel (required | single)
|
||||
Channel (optional | single)
|
||||
|
||||
Item (optional | multiple)
|
||||
|
||||
|
@ -116,9 +123,11 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
- CountryCode: (required) The ISO 3166-1 alpha-2 country code, eg 'US'. (Note that the United Kingdom is 'GB', not 'UK'.)
|
||||
- Locality: (recommended) With a pipe separator from the countrycode, this is a humanly-readable place name as preferred by the podcast publisher.
|
||||
|
||||
The maximum recommended string length of the node value is 128 characters.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:person name="[(string)]" role="[host or guest]" img="[(uri of content)]" href="[(uri to website/wiki/blog)]"/>**
|
||||
- **\<podcast:person role="[host or guest]" img="[(uri of content)]" href="[(uri to website/wiki/blog)]">**[name of person]**</podcast:person>**
|
||||
|
||||
Channel or Item (optional | multiple)
|
||||
|
||||
|
@ -129,6 +138,8 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
- `img` (optional) This is the url of a picture or avatar of the person.
|
||||
- `href` (optional) Link to a relevant resource of information about the person. (eg. website, blog or wiki entry).
|
||||
|
||||
The maximum recommended string length of the node value is 128 characters.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:contact type="[feedback or advertising or abuse]" method="[email or link]">**[email address or url]**\</podcast:contact>**
|
||||
|
@ -143,22 +154,24 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
|
||||
<br>
|
||||
|
||||
- **\<podcast:alternateEnclosure type="[mime type]" length="[(int)]" bitrate="[(float)]" title="[(string)]" stream>**[uri of media asset]**\</podcast:alternateEnclosure>**
|
||||
- **\<podcast:alternateEnclosure url="[url of media asset]" type="[mime type]" length="[(int)]" bitrate="[(float)]" title="[(string)]" stream />**
|
||||
|
||||
Channel (optional | single)
|
||||
|
||||
Item (optional | multiple)
|
||||
|
||||
This element is meant to provide alternate versions of an enclosure, such as low or high bitrate, or alternate formats or alternate uri schemes, like IPFS or live streaming. There may be multiple alternateEnclosure elements in an item, but there must be no more than one in a channel. The presence of this element at the
|
||||
channel level would be useful for adding a video/audio trailer or intro media that introduces the listener to the podcast. For instance, in a podcast of an audiobook, this could be the book's
|
||||
introduction or preface. The alternateEnclosure element always refers to an "alternate" media version. The standard RSS enclosure element is always the default media to be
|
||||
played.
|
||||
This element is meant to provide alternate versions of an enclosure, such as low or high bitrate, or alternate formats or alternate uri schemes, like IPFS or live streaming. There may be multiple alternateEnclosure elements in an item, but there must be no more than one in a channel. The presence of this element at the channel level would be useful for adding a video/audio trailer or intro media that introduces the listener to the podcast. For instance, in a podcast of an audiobook, this could be the book's introduction or preface. The alternateEnclosure element always refers to an "alternate" media version. The standard RSS enclosure element is always the default media to be played.
|
||||
|
||||
All attributes are required except for "stream". "stream" is a boolean attribute that indicates the uri points to a streaming media that is not downloadable.
|
||||
- `url` (required) This is the url to the media asset.
|
||||
- `type` (required) Mime type of the media asset.
|
||||
- `length` (required) Duration of media asset in seconds.
|
||||
- `bitrate` (optional) Encoding bitrate of media asset.
|
||||
- `title` (required) Alternate assets need a title since main title will apply to primary asset.
|
||||
- `stream` (optional) Boolean attribute that indicates the uri points to a streaming media that is not downloadable.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:id platform="[service slug]">**[the id string]**\</podcast:id>**
|
||||
- **\<podcast:id platform="[service slug]" id="[platform id]" url="[link to the podcast page on the service]" />**
|
||||
|
||||
Channel
|
||||
|
||||
|
@ -166,61 +179,45 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
|
||||
See "ID's" in this document for an explanation.
|
||||
|
||||
All attributes are required.
|
||||
- `platform` (required) This is the service slug of the platform.
|
||||
- `id` (required) This is the unique identifier for this podcast on the respective platform.
|
||||
- `url` (optional) A url to the page for this podcast on the respective platform.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:imageLarge size="[pixel width]">**[url to a large image file]**\</podcast:imageLarge>**
|
||||
- **\<podcast:images srcset="[url to image] [pixelwidth(int)]w,
|
||||
[url to image] [pixelwidth(int)]w,
|
||||
[url to image] [pixelwidth(int)]w,
|
||||
[url to image] [pixelwidth(int)]w" />**
|
||||
|
||||
Channel or Item
|
||||
|
||||
(optional | single)
|
||||
|
||||
This is assumed to point to an image that is 1000px or larger in size. The image must be square (1:1 ratio). The image content may differ from other images specified in
|
||||
the feed where appropriate.
|
||||
This points to a group of images, separated by commas - each with a pixel width declared after them. It is highly recommended that the images referenced
|
||||
be square (1:1 ratio), as this is the industry standard for podcast album art, and what podcast apps expect to work with. The srcset attribute is designed
|
||||
to work like the ```srcset``` attribute in the HTML5 specification. Suggested widths are 1500px, 600px, 300px and 150px. See the example feed in this
|
||||
repo for an example of how this looks in practice.
|
||||
|
||||
All attributes are required.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:imageMedium size="[pixel width]">**[url to a medium image file]**\</podcast:imageMedium>**
|
||||
|
||||
Channel or Item
|
||||
|
||||
(optional | single)
|
||||
|
||||
This is assumed to point to an image that is 300px to 999px in size.
|
||||
The image must be square (1:1 ratio). The image content may differ from other images specified in the feed where appropriate.
|
||||
|
||||
All attributes are required.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:imageSmall size="[pixel width]">**[url to a small image file]**\</podcast:imageSmall>**
|
||||
|
||||
Channel or Item
|
||||
|
||||
(optional | single)
|
||||
|
||||
This is assumed to point to an image that is 299px or less in size.
|
||||
The image must be square (1:1 ratio). The image content may differ from other images specified in the feed where appropriate.
|
||||
|
||||
All attributes are required.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:funding platform="[service slug]" title="[user provided note (string)]">**[url for the show at the platform]**\</podcast:funding>**
|
||||
- **\<podcast:funding url="[url for the show at the platform] platform="[service slug]">**[user provided content to link]**\</podcast:funding>**
|
||||
|
||||
Channel or Item
|
||||
|
||||
(optional | multiple)
|
||||
|
||||
This element lists multiple possible donation/funding links for the podcast. The node value should contain the full url of the donation page.
|
||||
This element lists multiple possible donation/funding links for the podcast.
|
||||
|
||||
Attributes:
|
||||
|
||||
- `url` (required) Full url to the specific show on the funding platform.
|
||||
- `platform` (required) Identifies a payment or funding platform for the podcast. Service slugs should be recorded here in the repository.
|
||||
- `title` (optional) Used as free form string from the podcast owner to show to the listeners. Ex. "Support us on Patreon!"
|
||||
- `node value` (required) Used as free form string from the podcast owner to show to the listeners. Ex. "Support us on Patreon!"
|
||||
|
||||
The maximum recommended string length of the node value is 128 characters.
|
||||
|
||||
|
||||
<br><br>
|
||||
|
@ -236,6 +233,8 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
|
|||
|
||||
This element lists social media accounts for this podcast. The service slugs should be community written into the accompanying serviceslugs.txt file.
|
||||
|
||||
The maximum recommended string length of the node value is 128 characters.
|
||||
|
||||
<br>
|
||||
|
||||
- **\<podcast:category>**[category Name]**\</podcast:category>**
|
||||
|
@ -317,12 +316,4 @@ representing the platform, directory, host, app or service. The slugs will look
|
|||
- anchor
|
||||
- overcast
|
||||
|
||||
More should be added by the community as needed. This is just a starter list.
|
||||
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
## Example feed
|
||||
|
||||
There is an example feed (example.xml) in this repository showing the podcastindex namespace side by side with the Apple itunes namespace.
|
||||
More should be added by the community as needed. This is just a starter list. The full list is [here](serviceslugs.txt).
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"version": "1.0.0",
|
||||
"chapters":
|
||||
[
|
||||
{
|
||||
"startTime": 0,
|
||||
"title": "Intro"
|
||||
},
|
||||
{
|
||||
"startTime": 168,
|
||||
"title": "Hearing Aids"
|
||||
},
|
||||
{
|
||||
"startTime": 260,
|
||||
"title": "Progress Report"
|
||||
},
|
||||
{
|
||||
"startTime": 410,
|
||||
"title": "Namespace",
|
||||
"img": "https://noagendaassets.com/enc/1602976942.638_pc20feedss.jpg",
|
||||
"url": "https://github.com/Podcastindex-org/podcast-namespace"
|
||||
},
|
||||
{
|
||||
"startTime": 3990,
|
||||
"title": "Just Break Up",
|
||||
"img": "https://noagendaassets.com/enc/1602977264.567_80ad58e16124df27.png",
|
||||
"url": "https://twitter.com/justbreakuppod"
|
||||
},
|
||||
{
|
||||
"startTime": 5510,
|
||||
"title": "The Big Players"
|
||||
},
|
||||
{
|
||||
"startTime": 5854,
|
||||
"title": "Spread the Word"
|
||||
},
|
||||
{
|
||||
"startTime": 6089,
|
||||
"title": "Outro"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
This is the initial spec for a json chapter format that can be referenced in an RSS feed using the "podcast" namespace.
|
||||
|
||||
The "chapters" property is an array of "chapter" objects taking this form:
|
||||
|
||||
```
|
||||
{
|
||||
"startTime": 94,
|
||||
"title": "Donation Segment",
|
||||
"img": "http://example.com/podcast/episode/chapter_art2.jpg",
|
||||
"url": "http://example.com/link/to/funding_platform"
|
||||
}
|
||||
```
|
||||
|
||||
Attributes:
|
||||
|
||||
- `startTime` (required - float) The time, expressed in seconds with float precision for fractions of a second.
|
||||
- `title` (required - string) The title of this chapter.
|
||||
- `img` (optional - string) The url of an image to use as chapter art.
|
||||
- `url` (optional - string) The url of a web page or supporting document that's related to the topic of this chapter.
|
|
@ -10,5 +10,8 @@ Todd Cochrane
|
|||
@PhoneBoy
|
||||
Ben Slinger
|
||||
Martin Mouritzen
|
||||
Andy Beard
|
||||
|
||||
|
||||
|
||||
... add your name as you contribute!
|
|
@ -1,7 +1,9 @@
|
|||
# RSS Namespace Extension for Podcast (xmlns:podcast DTD)
|
||||
|
||||
# RSS Namespace Extension for Podcast
|
||||
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](http://scripting.com/2017/05/09/rulesForStandardsmakers.html).
|
||||
|
||||
A wholistic RSS namespace for podcasting that is meant to synthesize the fragmented world of podcast namespaces. The broad goal is to create one namespace to rule them all, that is easily extensible, community controlled/authored and addresses the needs of the independent podcast industry now and in the future. The large podcast platforms have shown virtually no interest in extending their namespaces for new functionality in many years. Our hope is that this namespace will become the framework that the independent podcast community needs to deliver new functionality to apps and aggregators.
|
||||
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.
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Application Support by Element
|
||||
|
||||
For elements that are included in the official [DTD](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md), we will highlight applications offering production support.
|
||||
|
||||
# Elements
|
||||
|
||||
## Transcript `<podcast:transcript>`
|
||||
1. [Buzzsprout](https://www.buzzsprout.com/blog/transcription-tools)
|
||||
2. [Podcast Addict](https://podcastaddict.com/changelog/2020_14#section1)
|
||||
3. [Podfriend](https://twitter.com/GoPodfriend/status/1316847938828742656)
|
||||
4. [Podnews](https://podnews.net/rss)
|
||||
|
||||
## Locked `<podcast:locked>`
|
||||
1. [Buzzsprout](https://www.buzzsprout.com/)
|
||||
2. [Podnews](https://podnews.net/rss)
|
55
example.xml
55
example.xml
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rss xmlns:podcast="https://github.com/Podcastindex-org/podcastindex-namespace" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
|
||||
<rss xmlns:podcast="https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
|
||||
<channel>
|
||||
<title>Podcast Feed Template</title>
|
||||
<description>This is a fake show that exists only as an example of the "podcastindex" namespace.</description>
|
||||
<description>This is a fake show that exists only as an example of the "podcast" namespace.</description>
|
||||
<link>http://podcastindex.org</link>
|
||||
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
|
||||
<language>en-US</language>
|
||||
|
@ -12,19 +12,23 @@
|
|||
<managingEditor>dave@podcastindex.org (Dave Jones)</managingEditor>
|
||||
<webMaster>support@podcastindex.org (Tech Support)</webMaster>
|
||||
<image>
|
||||
<url>https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg</url>
|
||||
<url>https://example.com/images/pci_avatar-massive.jpg</url>
|
||||
<title>Podcast Feed Template</title>
|
||||
<link>https://podcastindex.org</link>
|
||||
</image>
|
||||
|
||||
<podcast:locked owner="podcastowner@domain.com">yes</podcast:locked>
|
||||
<podcast:location latlon="39.9622,83.0007" osmid="R182706">US|Columbus, OH</podcast:location>
|
||||
|
||||
<itunes:author>Dave Jones</itunes:author>
|
||||
<itunes:explicit>no</itunes:explicit>
|
||||
<itunes:type>episodic</itunes:type>
|
||||
<podcast:location latlon="39.9622,83.0007" osmid="R182706">US|Columbus, OH</podcast:location>
|
||||
|
||||
<itunes:image>https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg</itunes:image>
|
||||
<podcast:imageLarge>https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg</podcast:imageLarge>
|
||||
<podcast:imageMedium>https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg</podcast:imageMedium>
|
||||
<podcast:imageSmall>https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg</podcast:imageSmall>
|
||||
<itunes:image>https://example.com/images/pci_avatar-massive.jpg</itunes:image>
|
||||
<podcast:images srcset="https://example.com/images/pci_avatar-massive.jpg 1500w,
|
||||
https://example.com/images/pci_avatar-middle.jpg 600w,
|
||||
https://example.com/images/pci_avatar-small.jpg 300w,
|
||||
https://example.com/images/pci_avatar-tiny.jpg 150w" />
|
||||
|
||||
<podcast:category>News</podcast:category>
|
||||
<podcast:category>Commentary</podcast:category>
|
||||
|
@ -42,9 +46,9 @@
|
|||
|
||||
<podcast:previousUrl>https://yeoldhostingprovider.com/podcast479923</podcast:previousUrl>
|
||||
<podcast:previousUrl>https://myveryfirstpodcasthost.com/show251.xml</podcast:previousUrl>
|
||||
<podcast:id>1348299</podcast:id>
|
||||
<podcast:id platform="itunes">39423340445</podcast:id>
|
||||
<podcast:id platform="blubrry">83043423</podcast:id>
|
||||
|
||||
<podcast:id platform="podcastindex" id="920666" />
|
||||
<podcast:id platform="apple" id="23409402344" url="https://podcasts.apple.com/us/shows/id23409402344" />
|
||||
<podcast:alternateEnclosure type="video/mp4" length="11540076" bitrate="512" title="Trailer">https://example.com/pc20trailer.mp4</podcast:alternateEnclosure>
|
||||
|
||||
<item>
|
||||
|
@ -55,16 +59,18 @@
|
|||
<pubDate>Fri, 09 Oct 2020 04:30:38 GMT</pubDate>
|
||||
<author>adam@podcastindex.org (Adam Curry)</author>
|
||||
<itunes:image>https://podcastindex.org/ep0003/artMd.jpg</itunes:image>
|
||||
<podcast:imageLarge>https://podcastindex.org/ep0003/artLg.jpg</podcast:imageLarge>
|
||||
<podcast:imageMedium>https://podcastindex.org/ep0003/artMd.jpg</podcast:imageMedium>
|
||||
<podcast:imageSmall>https://podcastindex.org/ep0003/artSm.jpg</podcast:imageSmall>
|
||||
<podcast:images srcset="https://example.com/images/ep3/pci_avatar-massive.jpg 1500w,
|
||||
https://example.com/images/ep3/pci_avatar-middle.jpg 600w,
|
||||
https://example.com/images/ep3/pci_avatar-small.jpg 300w,
|
||||
https://example.com/images/ep3/pci_avatar-tiny.jpg 150w" />
|
||||
<itunes:explicit>no</itunes:explicit>
|
||||
<podcast:transcript type="text/plain">https://podcastindex.org/ep0003/transcript.txt</podcast:transcript>
|
||||
<podcast:transcript url="https://example.com/ep3/transcript.txt" type="text/plain" />
|
||||
<podcast:host href="http://example.com/adamcurry" img="http://example.com/images/adamcurry.jpg">Adam Curry</podcast:host>
|
||||
<podcast:guest href="http://example.com/davejones" img="http://example.com/images/davejones.jpg">Dave Jones</podcast:guest>
|
||||
<enclosure url="https://mp3s.nashownotes.com/PC20-03-2020-09-18-Final.mp3" length="62407829" type="audio/mpeg"/>
|
||||
<podcast:alternateEnclosure type="audio/x-m4a" length="1540076" bitrate="80" title="Audio - low bitrate">https://podcastindex.org/ep0003/audio/podnews201009.m4a</podcast:alternateEnclosure>
|
||||
<podcast:alternateEnclosure type="audio/mpeg" length="2534548" bitrate="160" title="Audio - high bitrate">https://podcastindex.org/ep0003/audio/podnews201009.mp3</podcast:alternateEnclosure>
|
||||
<podcast:chapters url="https://example.com/ep3_chapters.json" type="application/json"/>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
|
@ -75,9 +81,10 @@
|
|||
<pubDate>Thu, 08 Oct 2020 04:30:38 GMT</pubDate>
|
||||
<author>adam@podcastindex.org (Adam Curry)</author>
|
||||
<itunes:image>https://podcastindex.org/ep0002/artMd.jpg</itunes:image>
|
||||
<podcast:imageLarge>https://podcastindex.org/ep0002/artLg.jpg</podcast:imageLarge>
|
||||
<podcast:imageMedium>https://podcastindex.org/ep0002/artMd.jpg</podcast:imageMedium>
|
||||
<podcast:imageSmall>https://podcastindex.org/ep0002/artSm.jpg</podcast:imageSmall>
|
||||
<podcast:images srcset="https://example.com/images/ep2/pci_avatar-massive.jpg 1500w,
|
||||
https://example.com/images/ep2/pci_avatar-middle.jpg 600w,
|
||||
https://example.com/images/ep2/pci_avatar-small.jpg 300w,
|
||||
https://example.com/images/ep2/pci_avatar-tiny.jpg 150w" />
|
||||
<itunes:explicit>no</itunes:explicit>
|
||||
<podcast:transcript type="application/json" language="es" rel="captions">https://podcastindex.org/ep0002/transcript_es.json</podcast:transcript>
|
||||
<podcast:transcript type="application/srt">https://podcastindex.org/ep0002/transcript.srt</podcast:transcript>
|
||||
|
@ -86,6 +93,7 @@
|
|||
<enclosure url="https://mp3s.nashownotes.com/PC20-02-2020-09-11-Final.mp3" length="59902895" type="audio/mpeg"/>
|
||||
<podcast:alternateEnclosure type="audio/x-m4a" length="1540076" bitrate="80" title="Audio - low bitrate">https://podcastindex.org/ep0002/audio/podnews201009.m4a</podcast:alternateEnclosure>
|
||||
<podcast:alternateEnclosure type="audio/mpeg" length="2534548" bitrate="160" title="Audio - high bitrate">https://podcastindex.org/ep0002/audio/podnews201009.mp3</podcast:alternateEnclosure>
|
||||
<podcast:chapters url="https://example.com/ep2_chapters.json" type="application/json"/>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
|
@ -96,16 +104,19 @@
|
|||
<pubDate>Wed, 07 Nov 2020 04:29:49 GMT</pubDate>
|
||||
<author>adam@podcastindex.org (Adam Curry)</author>
|
||||
<itunes:image>https://podcastindex.org/ep0001/artMd.jpg</itunes:image>
|
||||
<podcast:imageLarge>https://podcastindex.org/ep0001/artLg.jpg</podcast:imageLarge>
|
||||
<podcast:imageMedium>https://podcastindex.org/ep0001/artMd.jpg</podcast:imageMedium>
|
||||
<podcast:imageSmall>https://podcastindex.org/ep0001/artSm.jpg</podcast:imageSmall>
|
||||
<podcast:images srcset="https://example.com/images/ep2/pci_avatar-massive.jpg 1500w,
|
||||
https://example.com/images/ep2/pci_avatar-middle.jpg 600w,
|
||||
https://example.com/images/ep2/pci_avatar-small.jpg 300w,
|
||||
https://example.com/images/ep2/pci_avatar-tiny.jpg 150w" />
|
||||
<itunes:explicit>no</itunes:explicit>
|
||||
<podcast:transcript type="text/html">https://podcastindex.org/ep0001/transcript.html</podcast:transcript>
|
||||
<podcast:transcript url="https://example.com/ep1/transcript.html" type="text/html" />
|
||||
<podcast:transcript url="https://example.com/ep1/transcript_es.html" type="text/html" language="es" />
|
||||
<podcast:host href="http://example.com/adamcurry" img="http://example.com/images/adamcurry.jpg">Adam Curry</podcast:host>
|
||||
<podcast:guest href="http://example.com/davejones" img="http://example.com/images/davejones.jpg">Dave Jones</podcast:guest>
|
||||
<enclosure url="https://mp3s.nashownotes.com/PC20-01-2020-08-28-Final.mp3" length="61222288" type="audio/mpeg"/>
|
||||
<podcast:alternateEnclosure type="audio/x-m4a" length="1540076" bitrate="80" title="Audio - low bitrate">https://podcastindex.org/ep0001/audio/podnews201009.m4a</podcast:alternateEnclosure>
|
||||
<podcast:alternateEnclosure type="audio/mpeg" length="2534548" bitrate="160" title="Audio - high bitrate">https://podcastindex.org/ep0001/audio/podnews201009.mp3</podcast:alternateEnclosure>
|
||||
<podcast:chapters url="https://example.com/ep1_chapters.json" type="application/json"/>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
@ -1,48 +1,48 @@
|
|||
podcastindex
|
||||
blubrry
|
||||
captivate
|
||||
rss.com
|
||||
fireside
|
||||
transistor
|
||||
libsyn
|
||||
overcast
|
||||
podcastaddict
|
||||
hypercatcher
|
||||
acast
|
||||
amazon
|
||||
anchor
|
||||
apple
|
||||
google
|
||||
podverse
|
||||
podfriend
|
||||
spotify
|
||||
amazon
|
||||
bitcoin
|
||||
paypal
|
||||
twitter
|
||||
mastodon
|
||||
slack
|
||||
relayfm
|
||||
buzzsprout
|
||||
castos
|
||||
podbean
|
||||
simplecast
|
||||
resonate
|
||||
soundcloud
|
||||
spreaker
|
||||
podserve
|
||||
podiant
|
||||
backtracks
|
||||
audioboom
|
||||
megaphone
|
||||
whooshkaa
|
||||
acast
|
||||
redcircle
|
||||
podcasts.com
|
||||
omnystudio
|
||||
podigee
|
||||
shoutengine
|
||||
pinecast
|
||||
podomatic
|
||||
zencast
|
||||
podchaser
|
||||
podiant
|
||||
backtracks
|
||||
bitcoin
|
||||
blubrry
|
||||
buzzsprout
|
||||
captivate
|
||||
castos
|
||||
fireside
|
||||
google
|
||||
hypercatcher
|
||||
libsyn
|
||||
mastodon
|
||||
megafono
|
||||
megaphone
|
||||
omnystudio
|
||||
overcast
|
||||
paypal
|
||||
pinecast
|
||||
podbean
|
||||
podcastaddict
|
||||
podcastindex
|
||||
podcasts.com
|
||||
podchaser
|
||||
podfriend
|
||||
podiant
|
||||
podigee
|
||||
podnews
|
||||
podomatic
|
||||
podserve
|
||||
podverse
|
||||
redcircle
|
||||
relayfm
|
||||
resonate
|
||||
rss.com
|
||||
shoutengine
|
||||
simplecast
|
||||
slack
|
||||
soundcloud
|
||||
spotify
|
||||
spreaker
|
||||
transistor
|
||||
twitter
|
||||
whooshkaa
|
||||
zencast
|
||||
|
|
Ładowanie…
Reference in New Issue