From 283e6ff3addfc91437c0cb5045a070a011ad8bf7 Mon Sep 17 00:00:00 2001 From: snookfin Date: Thu, 15 Oct 2020 11:20:30 -0400 Subject: [PATCH 01/23] Clarifying the purpose of this specific document --- docs/1.0.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/1.0.md b/docs/1.0.md index f80cdbc..9ab790e 100644 --- a/docs/1.0.md +++ b/docs/1.0.md @@ -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. +`` # Podcast Tags Each tag below exists in the podcast namespace within the specified parent. All attributes are required unless explicitly specified as optional. From 9d3b8e613f2bf1fc8bc6676b8276bdb7df0d76f8 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 15 Oct 2020 10:56:01 -0500 Subject: [PATCH 02/23] location tag is "optional" - closes #5 --- README.md | 6 +++--- example.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 63aae95..363c7e0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # 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. +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. 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. @@ -103,7 +103,7 @@ Our guiding principles for development of this namespace are the "[Rules for Sta - **\**[CountryCode(|Locality)]**\** - Channel (required | single) + Channel (optional | single) Item (optional | multiple) diff --git a/example.xml b/example.xml index eef0381..7719abf 100644 --- a/example.xml +++ b/example.xml @@ -1,5 +1,5 @@ - + Podcast Feed Template This is a fake show that exists only as an example of the "podcastindex" namespace. From 4fe2d7d87df3a8d88d1b1666a48d9bf1d2826ec3 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 15 Oct 2020 11:10:57 -0500 Subject: [PATCH 03/23] optional url in id tag - closes #38 --- README.md | 6 ++-- contributors.txt | 5 ++- example.xml | 4 +-- serviceslugs.txt | 88 ++++++++++++++++++++++++------------------------ 4 files changed, 54 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 363c7e0..539dd13 100644 --- a/README.md +++ b/README.md @@ -158,7 +158,7 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\**[the id string]**\** +- **\** Channel @@ -166,7 +166,9 @@ 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.
diff --git a/contributors.txt b/contributors.txt index a1ad1f7..470e02c 100644 --- a/contributors.txt +++ b/contributors.txt @@ -10,5 +10,8 @@ Todd Cochrane @PhoneBoy Ben Slinger Martin Mouritzen +Andy Beard -... add your name as you contribute! + + +... add your name as you contribute! \ No newline at end of file diff --git a/example.xml b/example.xml index 7719abf..e6ec34f 100644 --- a/example.xml +++ b/example.xml @@ -40,8 +40,8 @@ https://yeoldhostingprovider.com/podcast479923 https://myveryfirstpodcasthost.com/show251.xml 1348299 - 39423340445 - 83043423 + + https://example.com/pc20trailer.mp4 diff --git a/serviceslugs.txt b/serviceslugs.txt index 3f733e2..4b8a6d8 100644 --- a/serviceslugs.txt +++ b/serviceslugs.txt @@ -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 +podiant +podigee +podomatic +podserve +podverse +redcircle +relayfm +resonate +rss.com +shoutengine +simplecast +slack +soundcloud +spotify +spreaker +transistor +twitter +whooshkaa +zencast From 4ac2d1e59e4753b9a5bcb8e8da3b73387979d368 Mon Sep 17 00:00:00 2001 From: snookfin Date: Thu, 15 Oct 2020 13:01:49 -0400 Subject: [PATCH 04/23] Highlighting apps that have implemented elements --- docs/element-support.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/element-support.md diff --git a/docs/element-support.md b/docs/element-support.md new file mode 100644 index 0000000..ab0c950 --- /dev/null +++ b/docs/element-support.md @@ -0,0 +1,13 @@ +# 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 `` +1. [Buzzsprout](https://www.buzzsprout.com/blog/transcription-tools) +2. [Podcast Addict](https://podcastaddict.com/changelog/2020_14#section1) +3. + +## Locked `` +1. From e0fbbbb4811a7ab3fbdb7847403f9c4247b78064 Mon Sep 17 00:00:00 2001 From: snookfin Date: Thu, 15 Oct 2020 16:58:00 -0400 Subject: [PATCH 05/23] Syntax updates as requested As discussed here: https://github.com/Podcastindex-org/podcast-namespace/issues/40#issuecomment-709557157 url="" is used everywhere except for image which use href="". This is consistent with existing standards (iTunes namespace). --- README.md | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 539dd13..8e5bc99 100644 --- a/README.md +++ b/README.md @@ -84,20 +84,13 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\** +- **\** 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 **(sample needed)** containing chapter data for the episode. The mime type of the file should be given - JSON prefered, `application/json`.
@@ -118,7 +111,7 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\** +- **\**[name of person]**** Channel or Item (optional | multiple) @@ -143,18 +136,20 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\**[uri of media asset]**\** +- **\** 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. - - 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. + 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. + + - `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.
@@ -172,20 +167,19 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\**[url to a large image file]**\** +- **\** 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 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. All attributes are required.
-- **\**[url to a medium image file]**\** +- **\** Channel or Item @@ -198,7 +192,7 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\**[url to a small image file]**\** +- **\** Channel or Item @@ -211,18 +205,19 @@ Our guiding principles for development of this namespace are the "[Rules for Sta
-- **\**[url for the show at the platform]**\** +- **\**[user provided content to link]**\** 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!"

From b29455f228b33196a4dfd91be0811275f1e178ce Mon Sep 17 00:00:00 2001 From: James Cridland Date: Fri, 16 Oct 2020 14:32:17 +1000 Subject: [PATCH 06/23] Update serviceslugs.txt Removed a double-Podiant Added a Podnews, since this list may also be used for `` element --- serviceslugs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serviceslugs.txt b/serviceslugs.txt index 4b8a6d8..d3774eb 100644 --- a/serviceslugs.txt +++ b/serviceslugs.txt @@ -27,8 +27,8 @@ podcasts.com podchaser podfriend podiant -podiant podigee +podnews podomatic podserve podverse From 4d157aa131867da790bb7c12205f649f1bd4dafc Mon Sep 17 00:00:00 2001 From: Tom Rossi Date: Fri, 16 Oct 2020 10:00:33 -0400 Subject: [PATCH 07/23] Adding Podfriend to the list of apps supporting the Transcript tag --- docs/element-support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/element-support.md b/docs/element-support.md index ab0c950..14f3800 100644 --- a/docs/element-support.md +++ b/docs/element-support.md @@ -7,7 +7,7 @@ For elements that are included in the official [DTD](https://github.com/Podcasti ## Transcript `` 1. [Buzzsprout](https://www.buzzsprout.com/blog/transcription-tools) 2. [Podcast Addict](https://podcastaddict.com/changelog/2020_14#section1) -3. +3. [Podfriend](https://www.podfriend.com/) ## Locked `` 1. From f039ad34214bc69f0fe7320b55b295ba09047919 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Oct 2020 09:30:34 -0500 Subject: [PATCH 08/23] Initial commit of json chapter spec - #47 --- chapters/example.json.js | 23 +++++++++++++++++++++++ chapters/jsonChapters.md | 15 +++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 chapters/example.json.js create mode 100644 chapters/jsonChapters.md diff --git a/chapters/example.json.js b/chapters/example.json.js new file mode 100644 index 0000000..5bca6e3 --- /dev/null +++ b/chapters/example.json.js @@ -0,0 +1,23 @@ +{ + "version": "1.0.0", + "chapters": + [ + { + "marker": 0, + "title": "Intro", + "img": "http://example.com/podcast/episode/chapter_art1.jpg" + }, + { + "marker": 94, + "title": "Donation Segment", + "img": "http://example.com/podcast/episode/chapter_art2.jpg", + "url": "http://example.com/link/to/funding_platform" + }, + { + "marker": 203, + "title": "News Discussion", + "img": "http://example.com/podcast/episode/chapter_art3.jpg", + "url": "http://example.com/link/to/article_that_was_discussed" + } + ] +} \ No newline at end of file diff --git a/chapters/jsonChapters.md b/chapters/jsonChapters.md new file mode 100644 index 0000000..a0b0225 --- /dev/null +++ b/chapters/jsonChapters.md @@ -0,0 +1,15 @@ +This is the initial spec for a json chapter format that can be referenced in an RSS feed using the "podcast" namespace.namespace + +The "chapters" property is an array of "chapter" objects taking this form: + +``` +{ + "marker": 94, + "title": "Donation Segment", + "img": "http://example.com/podcast/episode/chapter_art2.jpg", + "url": "http://example.com/link/to/funding_platform" +} +``` + +Where "marker" (int - required) is the time in seconds, "title" (string - optional) is the chapter title, "img" (string - optional) is a link to an image to use as chapter art and "url" (string - optional) is a link to a +supporting document like would be in shownotes. \ No newline at end of file From 30b0f66b68e5977ff4a8f42e0dd226107c8a2321 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Oct 2020 09:35:22 -0500 Subject: [PATCH 09/23] typo --- chapters/jsonChapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/jsonChapters.md b/chapters/jsonChapters.md index a0b0225..2eba5dd 100644 --- a/chapters/jsonChapters.md +++ b/chapters/jsonChapters.md @@ -1,4 +1,4 @@ -This is the initial spec for a json chapter format that can be referenced in an RSS feed using the "podcast" namespace.namespace +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: From 4be05e41e297bb595ee295949d90ab6122663355 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Oct 2020 09:36:33 -0500 Subject: [PATCH 10/23] rename --- chapters/{example.json.js => example.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename chapters/{example.json.js => example.json} (100%) diff --git a/chapters/example.json.js b/chapters/example.json similarity index 100% rename from chapters/example.json.js rename to chapters/example.json From 8466eb314bdac4fe3b02856faa39a3c5e24caead Mon Sep 17 00:00:00 2001 From: snookfin Date: Fri, 16 Oct 2020 12:01:33 -0400 Subject: [PATCH 11/23] Links should point to public announcement --- docs/element-support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/element-support.md b/docs/element-support.md index 14f3800..37c83ee 100644 --- a/docs/element-support.md +++ b/docs/element-support.md @@ -7,7 +7,7 @@ For elements that are included in the official [DTD](https://github.com/Podcasti ## Transcript `` 1. [Buzzsprout](https://www.buzzsprout.com/blog/transcription-tools) 2. [Podcast Addict](https://podcastaddict.com/changelog/2020_14#section1) -3. [Podfriend](https://www.podfriend.com/) +3. [Podfriend](https://twitter.com/GoPodfriend/status/1316847938828742656) ## Locked `` 1. From bfbafcad23f8e7e1f4aa8680c60b2d79c477fc23 Mon Sep 17 00:00:00 2001 From: Tom Rossi Date: Fri, 16 Oct 2020 15:46:02 -0400 Subject: [PATCH 12/23] Another element supported! --- docs/element-support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/element-support.md b/docs/element-support.md index 14f3800..37ba36d 100644 --- a/docs/element-support.md +++ b/docs/element-support.md @@ -10,4 +10,4 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 3. [Podfriend](https://www.podfriend.com/) ## Locked `` -1. +1. [Buzzsprout](https://www.buzzsprout.com/) From 614494445a31c590a7be57c99dd56780652f7c6d Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Oct 2020 14:53:23 -0500 Subject: [PATCH 13/23] remove goal 2 - #40 --- README.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8e5bc99..51532eb 100644 --- a/README.md +++ b/README.md @@ -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 **\**, we would use **\**. 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 **\** 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,8 @@ 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.

From ea23041b6a610315f82b0cc9571b6c5e656dee01 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Oct 2020 15:12:59 -0500 Subject: [PATCH 14/23] images srcset - #43 --- README.md | 36 ++++++++---------------------------- example.xml | 21 ++++++++++++--------- 2 files changed, 20 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 51532eb..4d325ab 100644 --- a/README.md +++ b/README.md @@ -161,39 +161,19 @@ Please read it before contributing if you aren't familiar with it.
-- **\** +- **\** 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. - - All attributes are required. - -
- -- **\** - - 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. - -
- -- **\** - - 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. + 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. diff --git a/example.xml b/example.xml index e6ec34f..56e071d 100644 --- a/example.xml +++ b/example.xml @@ -2,7 +2,7 @@ Podcast Feed Template - This is a fake show that exists only as an example of the "podcastindex" namespace. + This is a fake show that exists only as an example of the "podcast" namespace. http://podcastindex.org http://blogs.law.harvard.edu/tech/rss en-US @@ -12,19 +12,23 @@ dave@podcastindex.org (Dave Jones) support@podcastindex.org (Tech Support) - https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg + https://example.com/images/pci_avatar-massive.jpg Podcast Feed Template https://podcastindex.org + + yes + US|Columbus, OH + Dave Jones no episodic - US|Columbus, OH - https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg - https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg - https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg - https://raw.githubusercontent.com/Podcastindex-org/art-graphics-logos/master/pci_avatar.jpg + https://example.com/images/pci_avatar-massive.jpg + News Commentary @@ -36,10 +40,9 @@ adbuy@podcastindex.org abuse@podcastindex.org - yes https://yeoldhostingprovider.com/podcast479923 https://myveryfirstpodcasthost.com/show251.xml - 1348299 + https://example.com/pc20trailer.mp4 From d3c8feabba393655d9cea79e02e278a614a920f6 Mon Sep 17 00:00:00 2001 From: James Cridland Date: Sat, 17 Oct 2020 22:23:43 +1000 Subject: [PATCH 15/23] Update element-support.md Added Podnews - both tags are now present in our RSS feed. --- docs/element-support.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/element-support.md b/docs/element-support.md index 1676afc..8fceea8 100644 --- a/docs/element-support.md +++ b/docs/element-support.md @@ -8,6 +8,8 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 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 `` 1. [Buzzsprout](https://www.buzzsprout.com/) +2. [Podnews](https://podnews.net/rss) From 68cc25e1f174664dcd929a50d9b9e4c75358cf99 Mon Sep 17 00:00:00 2001 From: James Cridland Date: Sat, 17 Oct 2020 22:25:03 +1000 Subject: [PATCH 16/23] Update README.md Removing combative language. We don't need to shame anyone into making changes - we need to enthuse and excite them... --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d325ab..bd45716 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 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. -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 +Our hope is that this namespace will become the framework that the independent podcast community needs to deliver new functionality to apps and aggregators. From a08d5ba0e7ccb8e7a0430775d5d623c84cf860f8 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sat, 17 Oct 2020 10:53:05 -0500 Subject: [PATCH 17/23] typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bd45716..4b4332a 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ Please read it before contributing if you aren't familiar with it.
-- **\**[name of person]**** +- **\**[name of person]**** Channel or Item (optional | multiple) From 6c7310fb212c7c4ba2b173f1fddc47c21a681cd6 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Oct 2020 01:32:56 -0500 Subject: [PATCH 18/23] chapters tag/format work - #47 --- README.md | 4 ++-- chapters/example.json | 41 +++++++++++++++++++++++++++++----------- chapters/jsonChapters.md | 10 +++++++--- 3 files changed, 39 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 4b4332a..a83d23e 100644 --- a/README.md +++ b/README.md @@ -78,13 +78,13 @@ Please read it before contributing if you aren't familiar with it.
-- **\** +- **\** Item (optional) - Links to an external file **(sample needed)** containing chapter data for the episode. The mime type of the file should be given - JSON prefered, `application/json`. + 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`.
diff --git a/chapters/example.json b/chapters/example.json index 5bca6e3..edb8c39 100644 --- a/chapters/example.json +++ b/chapters/example.json @@ -3,21 +3,40 @@ "chapters": [ { - "marker": 0, - "title": "Intro", - "img": "http://example.com/podcast/episode/chapter_art1.jpg" + "startTime": 0, + "title": "Intro" }, { - "marker": 94, - "title": "Donation Segment", - "img": "http://example.com/podcast/episode/chapter_art2.jpg", - "url": "http://example.com/link/to/funding_platform" + "startTime": 168, + "title": "Hearing Aids" }, { - "marker": 203, - "title": "News Discussion", - "img": "http://example.com/podcast/episode/chapter_art3.jpg", - "url": "http://example.com/link/to/article_that_was_discussed" + "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" } ] } \ No newline at end of file diff --git a/chapters/jsonChapters.md b/chapters/jsonChapters.md index 2eba5dd..4319720 100644 --- a/chapters/jsonChapters.md +++ b/chapters/jsonChapters.md @@ -4,12 +4,16 @@ The "chapters" property is an array of "chapter" objects taking this form: ``` { - "marker": 94, + "startTime": 94, "title": "Donation Segment", "img": "http://example.com/podcast/episode/chapter_art2.jpg", "url": "http://example.com/link/to/funding_platform" } ``` -Where "marker" (int - required) is the time in seconds, "title" (string - optional) is the chapter title, "img" (string - optional) is a link to an image to use as chapter art and "url" (string - optional) is a link to a -supporting document like would be in shownotes. \ No newline at end of file +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. From b12ff3286d1b5d211058654dad0c1117dc9b9503 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Oct 2020 01:41:55 -0500 Subject: [PATCH 19/23] update example xml file --- example.xml | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/example.xml b/example.xml index 56e071d..8b93360 100644 --- a/example.xml +++ b/example.xml @@ -55,16 +55,18 @@ Fri, 09 Oct 2020 04:30:38 GMT adam@podcastindex.org (Adam Curry) https://podcastindex.org/ep0003/artMd.jpg - https://podcastindex.org/ep0003/artLg.jpg - https://podcastindex.org/ep0003/artMd.jpg - https://podcastindex.org/ep0003/artSm.jpg + no - https://podcastindex.org/ep0003/transcript.txt + Adam Curry Dave Jones https://podcastindex.org/ep0003/audio/podnews201009.m4a https://podcastindex.org/ep0003/audio/podnews201009.mp3 +
@@ -75,9 +77,10 @@ Thu, 08 Oct 2020 04:30:38 GMT adam@podcastindex.org (Adam Curry) https://podcastindex.org/ep0002/artMd.jpg - https://podcastindex.org/ep0002/artLg.jpg - https://podcastindex.org/ep0002/artMd.jpg - https://podcastindex.org/ep0002/artSm.jpg + no https://podcastindex.org/ep0002/transcript_es.json https://podcastindex.org/ep0002/transcript.srt @@ -86,6 +89,7 @@ https://podcastindex.org/ep0002/audio/podnews201009.m4a https://podcastindex.org/ep0002/audio/podnews201009.mp3 + @@ -96,16 +100,19 @@ Wed, 07 Nov 2020 04:29:49 GMT adam@podcastindex.org (Adam Curry) https://podcastindex.org/ep0001/artMd.jpg - https://podcastindex.org/ep0001/artLg.jpg - https://podcastindex.org/ep0001/artMd.jpg - https://podcastindex.org/ep0001/artSm.jpg + no - https://podcastindex.org/ep0001/transcript.html + + Adam Curry Dave Jones https://podcastindex.org/ep0001/audio/podnews201009.m4a https://podcastindex.org/ep0001/audio/podnews201009.mp3 +
From 3738953120953d7690cfbbfd9df43364a3df6686 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Oct 2020 21:00:45 -0500 Subject: [PATCH 20/23] links --- README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a83d23e..18635cd 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,14 @@ this larger namespace. But, we don't want to be so general that the spec become 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, see the official definition file [here](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](element-support.md). +

## Element List @@ -48,7 +56,7 @@ Please read it before contributing if you aren't familiar with it.
-- **\**[yes or no]**\** +- **\**[yes or no]**\** (formalized) Channel @@ -65,7 +73,7 @@ Please read it before contributing if you aren't familiar with it.
-- **\** +- **\** (formalized) Item @@ -84,7 +92,8 @@ Please read it before contributing if you aren't familiar with it. (optional) - 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`. + 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](jsonChapters.md) file for a description of the chapter file syntax. And, see the [example.json](example.json) example file for a real world example.
From ce85ad3216c39cb29f877eed70a6526366af4407 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Oct 2020 21:02:26 -0500 Subject: [PATCH 21/23] fix links --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 18635cd..f079da6 100644 --- a/README.md +++ b/README.md @@ -42,11 +42,11 @@ Please read it before contributing if you aren't familiar with it. ## Official XMLNS definition -To see the formalized tags, see the official definition file [here](1.0.md). +To see the formalized tags, see the official definition file [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](element-support.md). +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).

@@ -93,7 +93,8 @@ To see a list of platforms and apps that currently implement some or all of thes (optional) 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](jsonChapters.md) file for a description of the chapter file syntax. And, see the [example.json](example.json) example file for a real world example. + 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.
From e82bf7eeb91baf07674ef6e9973a2aabb31df9cc Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Oct 2020 22:10:20 -0500 Subject: [PATCH 22/23] links and max strings --- README.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f079da6..02bd1fd 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,24 @@ this larger namespace. But, we don't want to be so general that the spec become 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, see the official definition file [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). +

## Element List @@ -113,6 +123,8 @@ To see a list of platforms and apps that currently implement some or all of thes - 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. +
- **\**[name of person]**** @@ -126,6 +138,8 @@ To see a list of platforms and apps that currently implement some or all of thes - `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. +
- **\**[email address or url]**\** @@ -203,6 +217,8 @@ To see a list of platforms and apps that currently implement some or all of thes - `platform` (required) Identifies a payment or funding platform for the podcast. Service slugs should be recorded here in the repository. - `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. +

@@ -217,6 +233,8 @@ To see a list of platforms and apps that currently implement some or all of thes 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. +
- **\**[category Name]**\** @@ -298,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. - - -

- - -## 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). From 83e68803fbebf9ec9df304f49e8c08290f9dcf4b Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Oct 2020 22:13:23 -0500 Subject: [PATCH 23/23] typos --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 02bd1fd..f31e1cc 100644 --- a/README.md +++ b/README.md @@ -41,17 +41,17 @@ Our guiding principles for development of this namespace are the "[Rules for Sta Please read it before contributing if you aren't familiar with it. -## Official XMLNS definition +## Official XMLNS Definition -To see the formalized tags, see the official definition file [here](docs/1.0.md). +To see the formalized tags, the official definition file is [here](docs/1.0.md). -## Supporting platforms and apps +## 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 +## 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.