diff --git a/contributors.txt b/contributors.txt index c0dd4ec..9fd3cd0 100644 --- a/contributors.txt +++ b/contributors.txt @@ -33,4 +33,6 @@ Dave Keeshan Steven Bell @dergigi CTHTC +@kenCode +@Agorise ... add your name as you contribute! diff --git a/docs/1.0.md b/docs/1.0.md index 679d51c..a590fd0 100644 --- a/docs/1.0.md +++ b/docs/1.0.md @@ -173,10 +173,8 @@ link. Please do not exceed `128 characters` for the node value or it may be tru



## Chapters ``

-Links to an external file (see example file) containing chapter data for the episode. See the [jsonChapters.md] -(https://github.com/Podcastindex-org/podcast-namespace/blob/main/chapters/jsonChapters.md) file for a description of -the chapter file syntax. And, see the [example.json](https://github. -com/Podcastindex-org/podcast-namespace/blob/main/chapters/example.json) example file for a real world example. +Links to an external file (see example file) containing chapter data for the episode. See the [jsonChapters.md](https://github.com/Podcastindex-org/podcast-namespace/blob/main/chapters/jsonChapters.md) file for a description of +the chapter file syntax. And, see the [example.json](https://github.com/Podcastindex-org/podcast-namespace/blob/main/chapters/example.json) example file for a real world example. Benefits with this approach are that chapters do not require altering audio files, and the chapters can be edited after publishing, since they are a separate file that can be requested on playback (or cached with download). JSON @@ -207,8 +205,7 @@ requiring no additional work for the publisher. ``

Points to one or more soundbites within a podcast episode. The intended use includes episodes previews, discoverability, audiogram generation, episode highlights, etc. It should be assumed that the audio/video source of -the soundbite is the audio/video given in the item's [``](https://cyber.harvard.edu/rss/rss. -html#ltenclosuregtSubelementOfLtitemgt) element. +the soundbite is the audio/video given in the item's [``](https://cyber.harvard.edu/rss/rss.html#ltenclosuregtSubelementOfLtitemgt) element. ### Parent   `` @@ -292,8 +289,7 @@ characters` for the node value or it may be truncated by aggregators. If `group` is not present, then "cast" is assumed. - **img:** (optional) This is the url of a picture or avatar of the person. - **href:** (optional) The url to a relevant resource of information about the person, such as a homepage or - third-party profile platform. Please see the [example feed](https://github. - com/Podcastindex-org/podcast-namespace/blob/main/example.xml) for possible choices of what to use here. + third-party profile platform. Please see the [example feed](https://github.com/Podcastindex-org/podcast-namespace/blob/main/example.xml) for possible choices of what to use here. The `role` and `group` attributes are case-insensitive. So, "Host" is the same as "host", and "Cover Art Designer" is the same as "cover art designer". @@ -363,7 +359,7 @@ verbiage (i.e. "Austin, TX"), but it shouldn't be depended on to be parseable in cannot be blank. Please do not exceed `128 characters` for the node value or it may be truncated by aggregators. ### Attributes - - **geo:** (recommended) This is a latitude and longitude given in "geo" notation (i.e. "geo:30.2672,97.7431"). + - **geo:** (recommended) This is a latitude and longitude given in ["geo" notation](https://github.com/Podcastindex-org/podcast-namespace/blob/main/location/location.md#geo-recommended) (i.e. "geo:30.2672,97.7431"). - **osm:** (recommended) The Open Street Map identifier of this place, given using the OSM notation (i.e. "R113314") ### Examples @@ -531,8 +527,7 @@ later be matched up with a `4` tag when it is pu ``

This element defines a license that is applied to the audio/video content of a single episode, or the audio/video of the podcast as a whole. Custom licenses must always include a url attribute. Implementors are encouraged to read -the license tag companion [document](https://github. -com/Podcastindex-org/podcast-namespace/blob/main/proposal-docs/license/license.md) for a more complete picture of +the license tag companion [document](https://github.com/Podcastindex-org/podcast-namespace/blob/main/proposal-docs/license/license.md) for a more complete picture of what this tag is intended to accomplish. ### Parent @@ -542,8 +537,7 @@ what this tag is intended to accomplish.   Single ### Node Value -  The node value must be a lower-cased reference to a license "identifier" defined in the [SPDX License List] -(https://spdx.org/licenses/) file if the license being used is a well-known, public license. Or, if it is a custom +  The node value must be a lower-cased reference to a license "identifier" defined in the [SPDX License List](https://spdx.org/licenses/) file if the license being used is a well-known, public license. Or, if it is a custom license, it must be a free form abbreviation of the name of the license as you reference it publicly. Please do not exceed `128 characters` for the node value or it may be truncated by aggregators. @@ -565,14 +559,12 @@ exceed `128 characters` for the node value or it may be truncated by aggregators



## Alternate Enclosure ``

-This element is meant to provide different versions of, or companion media to the main [``](https://cyber. -harvard.edu/rss/rss.html#ltenclosuregtSubelementOfLtitemgt) file. This could be an audio only version of a video +This element is meant to provide different versions of, or companion media to the main [``](https://cyber.harvard.edu/rss/rss.html#ltenclosuregtSubelementOfLtitemgt) file. This could be an audio only version of a video podcast to allow apps to switch back and forth between audio/video, lower (or higher) bitrate versions for bandwidth constrained areas, alternative codecs for different device platforms, alternate URI schemes and download types such as IPFS or WebTorrent, commentary tracks or supporting source clips, etc. -This is a complex tag, so implementors are highly encouraged to read the companion [document](https://github. -com/Podcastindex-org/podcast-namespace/blob/main/proposal-docs/alternateEnclosure/alternateEnclosure.md) for a +This is a complex tag, so implementors are highly encouraged to read the companion [document](https://github.com/Podcastindex-org/podcast-namespace/blob/main/proposal-docs/alternateEnclosure/alternateEnclosure.md) for a fuller understanding of how this tag works and what it is capable of. ### Parent @@ -681,8 +673,7 @@ every `` element.



## Integrity ``

-This element defines a method of verifying integrity of the media given either an [SRI-compliant integrity string] -(https://www.w3.org/TR/SRI/) (preferred) or a base64 encoded PGP signature. This element is optional within a +This element defines a method of verifying integrity of the media given either an [SRI-compliant integrity string](https://www.w3.org/TR/SRI/) (preferred) or a base64 encoded PGP signature. This element is optional within a `` element. It allows to ensure that the file has not been tampered with. ### Parent @@ -711,10 +702,7 @@ This element defines a method of verifying integrity of the media given either a ``

This element is used to declare a unique, global identifier for a podcast. The value is a UUIDv5, and is easily generated from the RSS feed url, with the **protocol scheme and trailing slashes stripped off**, combined with a -unique "podcast" namespace which has a UUID of `ead4c236-bf58-58c6-a2c6-a6b28d128cb6`. Tools like [this one] -(https://www.uuidtools.com/v5) can help generate these values by hand. Or, language libraries like [this one] -(https://github.com/sporkmonger/uuidtools) in Ruby are widely available. Specifically for podcasts, [this tool from -RSS Blue](https://tools.rssblue.com/podcast-guid) can help generate a GUID by hand. +unique "podcast" namespace which has a UUID of `ead4c236-bf58-58c6-a2c6-a6b28d128cb6`. Tools like [this one](https://www.uuidtools.com/v5) can help generate these values by hand. Or, language libraries like [this one](https://github.com/sporkmonger/uuidtools) in Ruby are widely available. Specifically for podcasts, [this tool from RSS Blue](https://tools.rssblue.com/podcast-guid) can help generate a GUID by hand. A podcast gets assigned a podcast:guid once in its lifetime using its current feed url (at the time of assignment) as the seed value. That GUID is then meant to follow the podcast from then on, for the duration of its life, even if @@ -764,8 +752,7 @@ different platforms.   `type` is currently `podcast`, but may be extended in future. -  A working example is https://podnews.net/podcast/i8xe9/listen#fastfollow-podcast:9b024349-ccf0-5f69-a609 --6b82873eab3c or the QR code given below. +  A working example is https://podnews.net/podcast/i8xe9/listen#fastfollow-podcast:9b024349-ccf0-5f69-a609-6b82873eab3c or the QR code given below.   ![podnews-qr](https://user-images.githubusercontent.com/231941/127796108-d819de43-6c0e-4c7b-9579-ed1f19989443.png) @@ -788,8 +775,7 @@ the payments, and a suggested amount denominated in the given cryptocurrency. This element can exist at either the `` or `` level. When it exists at the `` level, it should be treated as an "override" of whatever is defined at the `` level. -This is a complex tag, so implementors are HIGHLY encouraged to read the companion [document](https://github. -com/Podcastindex-org/podcast-namespace/blob/main/value/value.md) for a complete understanding of how +This is a complex tag, so implementors are HIGHLY encouraged to read the companion [document](https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/value.md) for a complete understanding of how this tag works and what it is capable of. ### Parent @@ -828,8 +814,7 @@ This element may only exist within a parent `` element. There is no limit on how many `valueRecipient` elements can be present in a given `` element. -This is a complex tag, so implementors are HIGHLY encouraged to read the companion [document](https://github. -com/Podcastindex-org/podcast-namespace/blob/main/value/value.md) for a complete understanding of how this tag works +This is a complex tag, so implementors are HIGHLY encouraged to read the companion [document](https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/value.md) for a complete understanding of how this tag works and what it is capable of. ### Parent @@ -1000,8 +985,7 @@ Example use for a "music" playlist feed: ## Images ``

This tag, when present, allows for specifying many different image sizes in a compact way at either the episode or -channel level. The syntax is borrowed from the HTML5 [srcset](https://html.spec.whatwg.org/multipage/images. -html#srcset-attributes) syntax. It allows for describing multiple image sources with width and pixel hints directly +channel level. The syntax is borrowed from the HTML5 [srcset](https://html.spec.whatwg.org/multipage/images.html#srcset-attributes) syntax. It allows for describing multiple image sources with width and pixel hints directly in the attribute. Although the HTML5 `srcset` attribute allows relative urls, absolute urls are required in this tag - since the feed url may not represent an appropriate base url for relativization. @@ -1052,8 +1036,7 @@ All tags that are valid as children of a standard `` tag are also valid as When specifying the audio/video source, the [``](#alternate-enclosure) tag is highly encouraged since it gives the broadest coverage of possible stream types and is explicit in it's communication of -what transport protocol and media codecs are being used. In addition to [``] -(#alternate-enclosure), a standard [``](https://cyber.harvard.edu/rss/rss. +what transport protocol and media codecs are being used. In addition to [``](#alternate-enclosure), a standard [``](https://cyber.harvard.edu/rss/rss. html#ltenclosuregtSubelementOfLtitemgt) should also be given as a fallback to support podcast apps that don't yet implement [``](#alternate-enclosure). @@ -1072,8 +1055,7 @@ a page provided by their hosting company or a third party platform they have cho stream to multiple platforms at once can also use the [``](#content-link) tag to provide links to those other platforms. -A robust, well-written `` tag will include all three of: [``] -(#alternate-enclosure), [``](https://cyber.harvard.edu/rss/rss.html#ltenclosuregtSubelementOfLtitemgt) +A robust, well-written `` tag will include all three of: [``](#alternate-enclosure), [``](https://cyber.harvard.edu/rss/rss.html#ltenclosuregtSubelementOfLtitemgt) and [``](#content-link) to ensure the broadest interopability with podcast apps. The function of `` within a live item tag is the same as it is within a regular item. If the `` of a @@ -1442,12 +1424,10 @@ do not exceed `128 characters` for the node value or it may be truncated by aggr ### Attributes * **complete (optional):** Boolean specifying if the podcast has no intention to release further episodes. If not set, this should be assumed to be false. -* **dtstart (optional):** The `date` or `datetime` the recurrence rule begins as an [ISO8601-fornmatted] - (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) string. If the +* **dtstart (optional):** The `date` or `datetime` the recurrence rule begins as an [ISO8601-fornmatted](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) string. If the `rrule` contains a value for `COUNT`, then this attribute is required. If the `rrule` contains a value for `UNTIL`, then the value of this attribute must be formatted to the same date/datetime standard. -* **rrule (recommended):** A recurrence rule as defined in [iCalendar RFC 5545 Section 3.3.10](https://www. - rfc-editor.org/rfc/rfc5545#section-3.3.10). +* **rrule (recommended):** A recurrence rule as defined in [iCalendar RFC 5545 Section 3.3.10](https://www.rfc-editor.org/rfc/rfc5545#section-3.3.10). ### Examples Recreating most of Apple Podcasts Connect’s “Update Frequency” values is easily achieved: diff --git a/docs/element-support.md b/docs/element-support.md index aff7749..8028c1d 100644 --- a/docs/element-support.md +++ b/docs/element-support.md @@ -21,6 +21,7 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 14. [Caproni](https://caproni.fm/en) 15. [RSS Blue](https://rssblue.com/help/episode-metadata#transcript) 16. [RedCircle](https://redcircle.com) +17. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## Locked `` 1. [Buzzsprout](https://www.buzzsprout.com/blog/podcast-locking) @@ -36,6 +37,7 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 11. [Castos](https://castos.com/introducing-podcast-2-0-support/) 12. [RSS Blue](https://rssblue.com/help/podcast-metadata#locked) 13. [RedCircle](https://redcircle.com) +14. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## Funding `` 1. [Buzzsprout](https://www.buzzsprout.com/) @@ -57,6 +59,7 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 17. [Castos](https://castos.com/introducing-podcast-2-0-support/) 18. [RSS Blue](https://rssblue.com/help/podcast-metadata#funding-url) 19. [RedCircle](https://redcircle.com) +20. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## Chapters `` 1. [Podcast Chapters](https://chaptersapp.com/faq/jsonExport.html) @@ -87,17 +90,20 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 3. [Podfriend](https://twitter.com/adamcurry/status/1357003546709938181) 4. [Caproni](https://caproni.fm/en) 5. [RSS Blue](https://rssblue.com/help/podcast-metadata#location) +6. [RSS.com](https://rss.com) ## Person `` 1. [Castopod](https://podlibre.org/castopod-supports-the-person-tag/) 2. [Podfriend](https://podcastindex.social/@martin/105466202975036473) 3. [Podlove Podcast Publisher](https://github.com/podlove/podlove-publisher/commit/08d52424b359569d795d318163b0c697ef623199) +4. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## GUID `` 1. [Buzzsprout](https://www.buzzsprout.com) 2. [Castos](https://castos.com/introducing-podcast-2-0-support/) 3. [RSS Blue](https://rssblue.com/help/podcasting-2.0#progress-2) 4. [RedCircle](https://redcircle.com) +5. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## Value `` 1. [Castos](https://castos.com/earn-bitcoin-from-your-listeners/) @@ -105,9 +111,11 @@ For elements that are included in the official [DTD](https://github.com/Podcasti 3. [RSS Blue](https://rssblue.com/help/podcast-metadata#lightning-node) 4. [Alby](https://getalby.com/podcast-wallet) 5. [RSS.com](https://rss.com/blog/rss-com-enables-value-4-value-bitcoin-payments/) +6. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## Medium `` 1. [RSS Blue](https://rssblue.com/help/podcast-metadata#medium) +2. [CastGarden](https://cast.garden/feeds/podcast/videos.xml?videoChannelId=37) ## Txt `` 1. [Transistor](https://transistor.fm/changelog/verification-code) diff --git a/docs/schema/podcast-schema.md b/docs/schema/podcast-schema.md index 6e63c32..46e7a02 100644 --- a/docs/schema/podcast-schema.md +++ b/docs/schema/podcast-schema.md @@ -94,7 +94,7 @@ This is, in fact, how the RSS feed works. To add our Podcast namespace to this f Austin, TX John Doe - no + false episodic diff --git a/letters/letter-to-apple.md b/letters/letter-to-apple.md index 0c68810..a01a6f1 100644 --- a/letters/letter-to-apple.md +++ b/letters/letter-to-apple.md @@ -64,6 +64,7 @@ Podping is currently being used by the following podcast hosts and the *podpings - rss.com - Captivate.fm - podserve.fm +- Cast.Garden - 3speak.tv - podnews.net @@ -75,4 +76,4 @@ With Apple on board and using Podping to provide much faster and more energy eff PodcastIndex has been working for over a year now and been at the center of developing many new initiatives around what we've called Podcasting 2.0. Those innovations we've mentioned in this letter are just the tip of an iceberg. -We know Apple has been passionate about Podcasting for almost as long as we have, we would love to collaborate further and see Apple adopt some of the innovations our teams come up with! Please get in touch with Adam directly and lets work together on making Podcasting even better. \ No newline at end of file +We know Apple has been passionate about Podcasting for almost as long as we have, we would love to collaborate further and see Apple adopt some of the innovations our teams come up with! Please get in touch with Adam directly and lets work together on making Podcasting even better. diff --git a/proposal-docs/social/platforms.md b/proposal-docs/social/platforms.md index e1c0d2c..48e8ffa 100644 --- a/proposal-docs/social/platforms.md +++ b/proposal-docs/social/platforms.md @@ -20,6 +20,7 @@ The and elements both contain a platform and protocol | instagram | instagram | | slack | slack | | discord | discord | +| castgarden | hive | | 3speak | hive | | peakd | hive | | fountain | lightningcomments | @@ -34,6 +35,7 @@ The and elements both contain a platform and protocol - instagram - slack - discord + - cast.garden - 3speak - peakd.com - fountain diff --git a/proposal-docs/social/social.md b/proposal-docs/social/social.md index 7ce20b3..85d7687 100644 --- a/proposal-docs/social/social.md +++ b/proposal-docs/social/social.md @@ -56,6 +56,7 @@ There are three elements: - instagram - slack - discord + - cast.garden - 3speak - peakd.com - … @@ -112,6 +113,7 @@ There are three elements: - instagram - slack - discord + - cast.garden - 3speak - peakd - fountain diff --git a/taxonomy-de.json b/taxonomy-de.json index a83e1b2..5df3d00 100644 --- a/taxonomy-de.json +++ b/taxonomy-de.json @@ -206,7 +206,7 @@ "key":"Writing\/Translator", "group":" Schreiben", "role":"Übersetzer", - "description":"Der Übersetzer konvertiert Inhalte für den Podcast von einer Sprache in eine andere. Dies können Interviews, Dialoge, Textdokumente und mehr sein. Die Arbeit des Übersetzers kann on-air oder hinter den Kulissen während der Produktion verwendet werden \ / Forschungsprozess.", + "description":"Der Übersetzer konvertiert Inhalte für den Podcast von einer Sprache in eine andere. Dies können Interviews, Dialoge, Textdokumente und mehr sein. Die Arbeit des Übersetzers kann on-air oder hinter den Kulissen während der Produktion verwendet werden \/ Forschungsprozess.", "example":"" }, {