Profile: podcast-channel

Profile Schema

A podcast-channel represents a single podcast channel or show. A channel document is associated with its episodes via collection links.

The podcast-channel profile is intended to be used as a “type” profile.

Structure

The podcast-channel profile requires that the document also list the aggregation profile in its profile list; the aggregation profile provides further validation constraints.

The profile specifies the following attributes:

Name Type Required? Explanation
itunes object Yes A JSON object representing iTunes-specific information. See the “iTunes” section for more information.
channelType string Yes serial or episodic; see the “Channel Type” section below
copyright string No The copyright policy applied to this podcast channel
language string No A BCP 47 or RFC 1766 language code indiciating the primary language for this channel
rssFeeds Link[] No A list of links to RSS feeds where this channel is represented. See “RSS Feeds” below.
allowedCountries string[] No A list of ISO 3166 country codes that this channel should be restricted to (if absent, there are no assumed restrictions)
feedEpisodeCount integer No Used by CDS clients to limit how many episodes are displayed in a podcast feed. If this field is not present on a document (ie. a null value), it is understood that ALL episodes should be displayed.

iTunes

The itunes block specifies the following attributes:

  • block (required) - Boolean flag indicating if this channel should be blocked from iTunes. If not present, considered false
  • owner - A JSON object with the following required attributes:
    • name - The name of the organization responsible for this podcast
    • email - An email address associated with this podcast’s owner

Channel Type

CDS currently supports two channel types:

  • serial - Episodes are to be presented in published order; the first published episodes should be listened to first.
  • episodic - Episodes are to be presented with the most recent episodes first.

RSS Feeds

If present, the rssFeeds list must have one or more link entries. The link must start with http or https, and cannot have rels.

Example podcast-channel document

{
  "id": "12345",
  "profiles": [
    {
      "href": "/v1/profiles/podcast-channel",
      "rels": [
        "type"
      ]
    },
    {
      "href": "/v1/profiles/aggregation"
    },
    {
      "href": "/v1/profiles/document"
    }
  ],

  "copyright": "Copyright 2021 NPR",
  "language": "en-US",
  "channelType": "episodic",
  "rssFeeds": [
    {
      "href": "https://npr-rss-host.org/feeds/podcast12345.xml"
    }
  ],
  "allowedCountries": [
    "us"
  ],
  "feedEpisodeCount": 10,
  "itunes": {
    "block": false,
    "owner": {
      "name": "NPR",
      "email": "the-podcast-people@npr.org"
    }
  },
  "items": []
}

© 2024 npr