kopia lustrzana https://github.com/Podcastindex-org/podcast-namespace
liveItem refactor
rodzic
24300f2470
commit
dbd95dc01f
91
docs/1.0.md
91
docs/1.0.md
|
@ -756,8 +756,16 @@ Example of specifying four different image sizes:
|
|||
<br><br><br><br><!-- Tag block -->
|
||||
## Live Item
|
||||
`<podcast:liveItem>`<br><br>
|
||||
The `liveItem` tag is used for a feed to deliver a live stream to podcast apps. It takes the same format as a standard `<item>` episode tag, and all tags that are allowed inside of
|
||||
a normal `<item>` tag are also allowed as children of `<podcast:liveItem>`. Podcast apps should support both `<enclosure>` and `<podcast:alternateEnclosure>` for greatest compatibility.
|
||||
The `liveItem` tag is used for a feed to deliver a live audio or video stream to podcast apps. It takes the same format as a standard `<item>` episode tag, and all tags that are
|
||||
allowed inside of a normal `<item>` tag are also allowed as children of `<podcast:liveItem>`.
|
||||
|
||||
The [`<podcast:alternateEnclosure>`](#alternate-enclosure) tag is highly encouraged over the use of `<enclosure>` since it gives the broadest coverage of possible stream types and is
|
||||
much more explicit in it's definition of what transport protocol and media codecs are being used. If `<podcast:alternateEnclosure>` cannot be used, `<enclosure>` can be used as a fallback,
|
||||
however feed owners must limit the stream to using only the two most widely supported protocols (mp3 and mp4/h.264) to ensure compatibility with the broadest number of apps on various
|
||||
platforms. Choosing a streaming format for `<enclosure>` outside of this narrow list will exclude many apps from playing your content.
|
||||
|
||||
The `<podcast:contentLink>` tag is also highly encouraged to ensure that listeners have a fallback option in case their chosen app cannot play the given content stream directly. Podcasters
|
||||
who live stream to multiple platforms at once can also use the `<podcast:contentLink>` tag to provide links to those various platforms.
|
||||
|
||||
The `start` and `end` attributes denote when the live stream "should" start and end. But, real life dictates that those times might not be adhered to. Apps are therefore encouraged
|
||||
not to rely solely on those times as anything more than an approximation. The canonical way to know if a stream has started is with the `status` attribute. If `status` is "live" then
|
||||
|
@ -766,6 +774,9 @@ the stream has started.
|
|||
This tag will also make use of the [podping](https://podping.cloud) notification network. A podping notification SHOULD be sent out by the host when the live stream starts, to let
|
||||
apps know.
|
||||
|
||||
The function of `<guid>` within a live item tag is the same as it is within a regular item. If the `<guid>` of a `<podcast:liveItem>` changes, it MUST be considered a new stream by
|
||||
podcast apps.
|
||||
|
||||
### Parent
|
||||
`<channel>`
|
||||
|
||||
|
@ -774,7 +785,8 @@ apps know.
|
|||
|
||||
### Node Value
|
||||
All tags that are valid inside of a standard `<item>` tag are also valid here. The [`alternateEnclosure`](#alternate-enclosure) tag has robust support for specifying streaming content
|
||||
in a myriad of ways and is encouraged over `<enclosure>` where possible.
|
||||
in a myriad of ways and is highly encouraged over the use of `<enclosure>` where possible. A `<podcast:contentLink>` tag is also highly encouraged as a fallback for apps to display when
|
||||
they cannot play the content directly.
|
||||
|
||||
### Attributes
|
||||
- **status** (required) A string that must be one of `pending`, `live` or `ended`.
|
||||
|
@ -782,32 +794,18 @@ in a myriad of ways and is encouraged over `<enclosure>` where possible.
|
|||
- **end** (required) A string representing an ISO8601 timestamp that denotes the time when the stream is intended to end.
|
||||
|
||||
### Examples
|
||||
A very simple example:
|
||||
A complete example:
|
||||
```xml
|
||||
<podcast:liveItem status="live" start="2021-09-26T07:30:00.000-0600" end="2021-09-26T09:30:00.000-0600">
|
||||
<title>Podcasting 2.0 Live Show</title>
|
||||
<guid>e32b4890-983b-4ce5-8b46-f2d6bc1d8819</guid>
|
||||
<author>John Doe (john@example.com)</author>
|
||||
<enclosure url="https://example.com/pc20/livestream" type="audio/mpeg" length="312" />
|
||||
</podcast:liveItem>
|
||||
```
|
||||
|
||||
A more complex example:
|
||||
```xml
|
||||
<podcast:liveItem
|
||||
status="live"
|
||||
start="2021-09-26T07:30:00.000-0600"
|
||||
end="2021-09-26T09:30:00.000-0600"
|
||||
>
|
||||
<title>Podcasting 2.0 Live Show</title>
|
||||
<description>A look into the future of podcasting and how we get to Podcasting 2.0!</description>
|
||||
<link>https://example.com/podcast/live</link>
|
||||
<guid isPermaLink="true">https://example.com/live</guid>
|
||||
<author>John Doe (john@example.com)</author>
|
||||
<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"
|
||||
<podcast:images srcset="https://example.com/images/live/pci_avatar-massive.jpg 1500w,
|
||||
https://example.com/images/live/pci_avatar-middle.jpg 600w,
|
||||
https://example.com/images/live/pci_avatar-small.jpg 300w,
|
||||
https://example.com/images/live/pci_avatar-tiny.jpg 150w"
|
||||
/>
|
||||
<podcast:person href="https://www.podchaser.com/creators/adam-curry-107ZzmWE5f" img="https://example.com/images/adamcurry.jpg">Adam Curry</podcast:person>
|
||||
<podcast:person role="guest" href="https://github.com/daveajones/" img="https://example.com/images/davejones.jpg">Dave Jones</podcast:person>
|
||||
|
@ -815,5 +813,54 @@ A more complex example:
|
|||
<podcast:alternateEnclosure type="audio/mpeg" length="312" default="true">
|
||||
<podcast:source uri="https://example.com/pc20/livestream" />
|
||||
</podcast:alternateEnclosure>
|
||||
<enclosure url="https://example.com/pc20/livestream?format=.mp3" type="audio/mpeg" length="312" />
|
||||
<podcast:contentLink href="https://youtube.com/pc20/livestream">YouTube!</podcast:contentLink>
|
||||
<podcast:contentLink href="https://twitch.com/pc20/livestream">Twitch!</podcast:contentLink>
|
||||
<podcast:contentLink href="https://example.com/html/livestream">Listen Live!</podcast:contentLink>
|
||||
</podcast:liveItem>
|
||||
```
|
||||
|
||||
A bare bones example:
|
||||
```xml
|
||||
<podcast:liveItem status="live" start="2021-09-26T07:30:00.000-0600" end="2021-09-26T09:30:00.000-0600">
|
||||
<title>Podcasting 2.0 Live Stream</title>
|
||||
<guid>e32b4890-983b-4ce5-8b46-f2d6bc1d8819</guid>
|
||||
<enclosure url="https://example.com/pc20/livestream?format=.mp3" type="audio/mpeg" length="312" />
|
||||
<podcast:contentLink href="https://example.com/html/livestream">Listen Live!</podcast:contentLink>
|
||||
</podcast:liveItem>
|
||||
```
|
||||
|
||||
|
||||
|
||||
<br><br><br><br><!-- Tag block -->
|
||||
## Content Link
|
||||
`<podcast:contentLink>`<br><br>
|
||||
The `contentLink` tag is used in multiple tags to indicate that the content begin delivered by the parent element can be found at an external location
|
||||
instead of, or in addition to, being delivered directly to the tag itself within an app. In most instances it is used as a fallback link for the user
|
||||
to use when the app itself can't handle a certain content delivery directly.
|
||||
|
||||
For instance, perhaps a podcast feed specifies a `<podcast:liveItem>` to deliver a live stream to apps. The feed may also give a `<podcast:contentLink>`
|
||||
pointing to YouTube and Twitch versions of the live stream as well, just in case the listener uses an app that doesn't fully support live streaming content.
|
||||
|
||||
Currently this tag is only indicated for use in the `<podcast:liveItem>` tag. In the future, its use will be expanded.
|
||||
|
||||
### Parent
|
||||
`<podcast:liveItem>`
|
||||
|
||||
### Count
|
||||
Multiple
|
||||
|
||||
### Node Value
|
||||
The node value is a free form string meant to explain to the user where this content link points and/or the nature of it's purpose.
|
||||
|
||||
### Attributes
|
||||
- **href** (required) A string that is the uri pointing to content outside of the application.
|
||||
|
||||
### Examples
|
||||
```xml
|
||||
<podcast:contentLink href="https://youtube.com/blahblah/livestream">Live on YouTube!</podcast:contentLink>
|
||||
```
|
||||
|
||||
```xml
|
||||
<podcast:contentLink href="https://twitter.com/statuses/somepost">Chat on Twitter!</podcast:contentLink>
|
||||
```
|
Ładowanie…
Reference in New Issue