podcast-namespace/README.md

243 wiersze
8.7 KiB
Markdown

# The "podcast" Namespace
2020-10-09 16:24:50 +00:00
2023-06-10 23:29:40 +00:00
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
2023-06-10 23:27:45 +00:00
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.
2020-10-09 16:24:50 +00:00
2023-06-10 23:27:45 +00:00
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.
2021-05-30 16:57:19 +00:00
2023-06-10 23:27:45 +00:00
The podcast namespace is part of the larger "Podcasting 2.0" project which exists to bring control of podcasting's
protocols back into the hands of the open podcasting community. A good overview can be found here:
[Podcasting 2.0](podcasting2.0.md)
2021-05-30 16:57:19 +00:00
* [Official XMLNS Definition](docs/1.0.md) the official definition of all formalized tags.
2023-06-10 23:27:45 +00:00
* List of platforms and apps that currently implement some or all of these
tags: [Supporting Platforms and Apps](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. * [Other recommendations](docs/other-recommendations.md)
when creating RSS podcast feeds.
2021-05-30 16:57:19 +00:00
2022-10-14 14:20:14 +00:00
2020-10-14 17:36:59 +00:00
<br><br>
2020-10-22 15:51:23 +00:00
## Current Roadmap
2023-06-10 23:37:25 +00:00
**Phase 1** - [Closed] Comment period closed on `11/15/2020` and [5 tags](#phase-1-closed-on-111520) were
**formalized**.
2020-10-22 15:51:23 +00:00
2023-06-10 23:37:25 +00:00
**Phase 2** - [Closed] Comment period closed on `1/31/2021` and [4 tags](#phase-2-closed-on-13121) were **formalized**.
2020-10-22 15:51:23 +00:00
2023-06-10 23:37:25 +00:00
**Phase 3** - [Closed] Comment period closed on `6/1/2021` and [5 tags](#phase-3-closed-on-6121) were **formalized**.
2021-06-09 19:08:57 +00:00
2023-06-10 23:37:25 +00:00
**Phase 4** - [Closed] Comment period closed on `12/1/2021` and [3 tags](#phase-4-closed-on-1212021) were
**formalized**.
2022-03-02 17:51:41 +00:00
2023-06-10 23:37:25 +00:00
**Phase 5** - [Closed] Comment period closed on `7/15/2022` and [2 tags](#phase-5-closed-as-of-7152022) were
**formalized**.
2020-10-22 15:51:23 +00:00
2023-06-10 23:37:25 +00:00
**Phase 6** - [Closed] Comment period closed on `6/1/2023` and [6 tags](#phase-6-closed-as-of-612023) were
**formalized**.
2022-09-29 02:57:54 +00:00
2020-10-22 15:51:23 +00:00
<br><br>
2020-12-21 20:05:49 +00:00
## Legend
2023-06-10 23:27:45 +00:00
**Formalized** - This tag is frozen and listed in the XMLNS document. Any future changes to it's definition must
maintain backwards compatibility.
2020-12-21 20:05:49 +00:00
2023-06-10 23:27:45 +00:00
**Finalized** - The tag is structurally stable and implementation testing should be considered safe. Any breaking
changes will be widely communicated.
2020-12-21 20:05:49 +00:00
**Open** - The tag/phase is open for discussion and collaboration.
2020-12-23 21:17:03 +00:00
**Required** - This tag or attribute must be present.
**Optional** - This tag or attribute may be left out.
2023-06-10 23:27:45 +00:00
**Recommended** - This tag or attribute is technically optional, but is strongly recommended to be present for the
tag to function as fully intended.
2020-12-21 22:24:03 +00:00
2020-12-21 20:05:49 +00:00
<br><br>
2020-10-22 15:51:23 +00:00
## Tag Adoption Process
2023-06-10 23:27:45 +00:00
To be adopted as an official part of the namespace, there must be consensus around a tag's usefulness and either
commitment to adoption by at least 1 host and 1 app, or a recognition that the tag is already being used in the wild.
2020-10-22 15:51:23 +00:00
2023-06-10 23:27:45 +00:00
It is ALWAYS ok to delay a tag to a future Phase if there is any concern about it. That is to be expected and
encouraged.
2020-10-22 15:51:23 +00:00
2023-06-10 23:27:45 +00:00
When a Phase comes to a close, there will be a full review of any tags currently open for comment and questions will
be asked to gather consensus before final adoption. No tags will be adopted by fiat, or if there are unresolved
questions. They will just be moved to the next Phase for further comment and refinement.
2020-10-22 15:51:23 +00:00
2023-06-10 23:27:45 +00:00
Tags that are proposals or rough ideas should be expected to have syntax problems or typos. Those should be refined
away as they are worked on. If they are not, that is a good idea that the tag in question isn't being seen as
useful and should be considered for dropping.
2020-10-22 15:51:23 +00:00
2023-06-10 23:27:45 +00:00
We are not a "standards body". It is a community driven project where all stake holders are encouraged to
participate, so that many voices are heard. This is an open-source project to be built fully in the open.
Discussions also take place on [podcastindex.social](https://podcastindex.social) where anyone is free to register
and participate.
2020-10-22 16:00:35 +00:00
2020-10-22 15:51:23 +00:00
<br><br>
2021-05-30 16:57:33 +00:00
### Goal #1 - Eliminate Redundancy
2020-10-09 16:24:50 +00:00
2023-06-10 23:27:45 +00:00
There is significant overlap amongst the many existing podcast namespaces. Each platform and publisher has created
their own namespace to give their respective system and audience the metadata they need in the way they want it
delivered.
2020-10-09 16:24:50 +00:00
2021-05-30 16:57:33 +00:00
### Goal #2 - Keep "required" tags and attributes minimal
2020-10-09 16:24:50 +00:00
2023-06-10 23:27:45 +00:00
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.
2020-10-09 16:24:50 +00:00
2021-05-30 16:57:33 +00:00
### Goal #3 - Keep Exisiting Conventions
2020-10-09 16:24:50 +00:00
2023-06-10 23:27:45 +00:00
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
2020-10-09 16:24:50 +00:00
sit alongside at least one other namespace, it makes sense to keep existing conventions in place.
2021-05-30 16:57:33 +00:00
### Goal #4 - Be General... to a point
2020-10-09 16:24:50 +00:00
2023-06-10 23:27:45 +00:00
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 this larger namespace. But, we don't want to be so general that the spec becomes overly complicated. A
beautiful, "perfect" spec is not important. Solving real problems is.
2020-10-09 16:24:50 +00:00
<br><br>
2020-10-14 15:51:21 +00:00
2022-10-14 14:24:13 +00:00
Stop incorrectly calling CC0 a license CC0 is a public domain dedication, not a license [1]. In the world of FOSS, the term “license” is primarily used to refer to a “copyright license [2]”. You can’t offer a copyright license for something that isn’t copyrighted, and the goal of CC0 is to stop things from being copyrighted. Additionally, saying that a work is available under “a CC0 v1.0 license” can potentially change the (perceived) legal effect of CC0. While CC0 tries to make works no longer copyrighted, some jurisdictions don’t allow copyright owners to do so [3]. As a result, CC0 contains (in section 3) a fallback license. If a work remains copyrighted after CC0’s attempt to waive copyright, then the fallback license takes effect. I’m aware of at least one situation where someone wrote “licensed under CC0” and meant “available under the fallback license” rather than “dedicated to the public domain” [4]. The filename “COPYING.txt” was used because that’s the filename that Creative Commons recommends when using CC0 on software [5]. [1]: <https://creativecommons.org/faq/#how-do-cc-licenses-operate> [2]: <https://www.legalzoom.com/articles/what-is-a-copyright-license> [3]: <https://wiki.creativecommons.org/images/6/69/CC0_Jurisdiction_Survey.pdf> [4]: <https://comment.ctrl.blog/discussion/creative-commons-unicode-fallback-font> [5]: <https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F>
2022-11-01 19:41:24 +00:00
## Copying information
2022-10-14 14:24:13 +00:00
2023-06-10 23:27:45 +00:00
The "podcast" namespace is [dedicated to the public domain using CC0 v1.0](COPYING.txt) so as to remove all barriers
to adoption, development and contribution.
2022-10-14 14:24:13 +00:00
<br><br>
2020-10-11 01:34:17 +00:00
## Element List
2020-11-15 22:50:27 +00:00
### <u>Phase 1 (Closed on 11/15/20)</u>
2020-10-14 17:36:12 +00:00
<br>
2020-10-12 06:36:43 +00:00
2023-06-10 23:27:45 +00:00
The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document
located [here](docs/1.0.md). Please see that file for full implementation details.
2020-11-15 22:58:33 +00:00
- **\<podcast:locked>** <br>
- **\<podcast:transcript>** <br>
- **\<podcast:funding>** <br>
- **\<podcast:chapters>** <br>
- **\<podcast:soundbite>** <br>
2020-10-12 06:05:59 +00:00
2021-04-01 16:56:55 +00:00
<br>
2021-02-04 16:00:43 +00:00
2021-02-04 15:58:31 +00:00
### <u>Phase 2 (Closed on 1/31/21)</u>
2020-10-14 17:30:13 +00:00
2021-02-04 15:58:31 +00:00
<br>
2020-10-09 16:24:50 +00:00
2023-06-10 23:27:45 +00:00
The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document
located [here](docs/1.0.md). Please see that file for full implementation details.
2020-10-12 05:49:54 +00:00
2021-02-04 15:55:53 +00:00
- **\<podcast:person>** <br>
- **\<podcast:location>** <br>
- **\<podcast:season>** <br>
- **\<podcast:episode>** <br>
2020-12-21 20:20:27 +00:00
2021-04-01 16:56:55 +00:00
<br>
2020-12-21 20:20:27 +00:00
2021-01-24 02:52:24 +00:00
2021-06-01 11:59:55 +00:00
### <u>Phase 3 (Closed on 6/1/21)</u>
2021-01-24 02:52:24 +00:00
2021-04-14 21:53:20 +00:00
<br>
2023-06-10 23:27:45 +00:00
The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document
located [here](docs/1.0.md). Please see that file for full implementation details.
2021-04-14 21:53:20 +00:00
2021-06-08 16:25:15 +00:00
- **\<podcast:trailer>** <br>
- **\<podcast:license>** <br>
- **\<podcast:alternateEnclosure>** <br>
2021-06-09 19:10:24 +00:00
- **\<podcast:source>** <br>
- **\<podcast:integrity>** <br>
2021-06-12 17:34:43 +00:00
- **\<podcast:guid>** <br>
2021-06-08 16:25:15 +00:00
<br>
2020-11-08 03:59:49 +00:00
2021-12-06 20:48:43 +00:00
## <u>Phase 4 (Closed on 12/1/2021)</u>
2021-05-27 21:04:28 +00:00
2021-12-10 17:08:40 +00:00
<br>
2023-06-10 23:27:45 +00:00
The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document
located [here](docs/1.0.md). Please see that file for full implementation details.
2021-12-10 17:08:40 +00:00
- **\<podcast:medium>** <br>
- **\<podcast:images>** <br>
2022-01-09 02:08:13 +00:00
- **\<podcast:liveItem>** <br>
2021-12-10 17:08:40 +00:00
<br>
2022-03-02 17:51:41 +00:00
2022-07-15 11:43:19 +00:00
## <u>Phase 5 (Closed as of 7/15/2022)</u>
2022-03-24 22:38:59 +00:00
2022-07-15 11:48:38 +00:00
<br>
2023-06-10 23:27:45 +00:00
The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document
located [here](docs/1.0.md). Please see that file for full implementation details.
2022-07-15 11:48:38 +00:00
- **\<podcast:socialInteract>** <br>
2022-08-04 19:03:34 +00:00
- **\<podcast:block>** <br>
2022-07-15 11:48:38 +00:00
2022-07-15 11:49:23 +00:00
<br>
2023-06-10 23:27:45 +00:00
## <u>Phase 6 (Closed as of 6/1/2023)</u>
2022-03-14 21:15:35 +00:00
2023-06-10 23:27:45 +00:00
The following tags have been formally adopted into the namespace. They are fully documented in the XMLNS document
located [here](docs/1.0.md). Please see that file for full implementation details.
2022-10-31 03:51:01 +00:00
- **\<podcast:txt>** <br>
2023-06-10 23:27:45 +00:00
- **\<podcast:remoteItem>** <br>
- **\<podcast:podroll>** <br>
- **\<podcast:updateFrequency>** <br>
- **\<podcast:podping>** <br>
- **\<podcast:valueTimeSplit>** <br>
2021-09-01 16:54:32 +00:00
<br>
2021-04-01 17:16:16 +00:00
## Other Proposals
2020-11-08 03:59:49 +00:00
2023-06-10 23:27:45 +00:00
A list of the current proposed tags can be found in the issues
section [here](https://github.com/Podcastindex-org/podcast-namespace/labels/proposal).
2020-10-14 17:36:12 +00:00
2021-04-01 16:59:35 +00:00
<br><br>
2020-10-09 16:24:50 +00:00
## Branding
2021-02-26 16:43:59 +00:00
[Podcasting2.org](https://podcasting2.org)
[Podcasting 2.0 Brand Guide](https://live.standards.site/podcasting20/)
<img src="images/pc20badgered.svg" height="50" alt="Podcasting 2.0 Badge (red)" />