place.pod.episode

pod.place

Documentation

A single podcast episode.

main record

A single podcast episode.

Record Key tid Timestamp-based ID

Properties

alternateEnclosures array of string Optional

Optional Podcasting 2.0 alternate media files with technical metadata.

audioMimeType string Required

MIME type for the RSS enclosure, such as audio/mpeg or audio/mp4.

maxLength: 100 bytes
audioSizeBytes integer Required

Audio file size in bytes for the RSS enclosure length attribute.

minimum: 0
audioUrl string uri Required

Direct URL to the audio file. Must be publicly accessible and use HTTPS.

maxLength: 2048 bytes
chaptersMimeType string Optional

MIME type for chaptersUrl; required when exporting podcast:chapters.

maxLength: 100 bytes
chaptersUrl string uri Optional

URL to a chapters file.

maxLength: 2048 bytes
createdAt string datetime Required

ISO 8601 timestamp of when the episode record was created.

description string Optional

Summary or show notes for the episode. May contain basic formatting.

maxGraphemes: 4000 graphemes
durationSeconds integer Optional

Length of the episode in whole seconds. Strongly recommended for player UX.

minimum: 0
episodeNumber integer Optional

Episode number within the season or series.

episodeType string Optional

Apple episode type. Full is the default when omitted.

maxLength: 20 bytes
Known values: full, trailer, bonus
explicit boolean Optional

Whether this specific episode contains explicit content.

guid string Required

Globally unique, immutable episode identifier required by Apple and PSP.

maxLength: 255 bytes
imageUrl string uri Optional

Episode-specific artwork URL. Falls back to show cover if omitted.

maxLength: 2048 bytes
people array of string Optional

Structured episode credits such as hosts, guests, and producers.

publishedAt string datetime Optional

ISO 8601 timestamp when the episode was published. May differ from createdAt.

seasonNumber integer Optional

Season number the episode belongs to.

showUri string uri Required

AT Protocol URI of the parent place.pod.show record.

soundbites array of string Optional

Optional Podcasting 2.0 highlights with start times and durations.

title string Required

Title of the episode.

maxLength: 200 bytes
transcriptMimeType string Optional

MIME type for transcriptUrl; required when exporting podcast:transcript.

maxLength: 100 bytes
transcriptUrl string uri Optional

URL to a transcript file.

maxLength: 2048 bytes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "showUri",
      "title",
      "audioUrl",
      "createdAt",
      "guid",
      "audioMimeType",
      "audioSizeBytes"
    ],
    "properties": {
      "guid": {
        "type": "string",
        "maxLength": 255,
        "description": "Globally unique, immutable episode identifier required by Apple and PSP."
      },
      "link": {
        "type": "string",
        "format": "uri",
        "maxLength": 2048,
        "description": "Public webpage for the episode, corresponding to the RSS item link."
      },
      "title": {
        "type": "string",
        "maxLength": 200,
        "description": "Title of the episode."
      },
      "people": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 100
        },
        "description": "Structured episode credits such as hosts, guests, and producers."
      },
      "showUri": {
        "type": "string",
        "format": "uri",
        "description": "AT Protocol URI of the parent place.pod.show record."
      },
      "audioUrl": {
        "type": "string",
        "format": "uri",
        "maxLength": 2048,
        "description": "Direct URL to the audio file. Must be publicly accessible and use HTTPS."
      },
      "explicit": {
        "type": "boolean",
        "description": "Whether this specific episode contains explicit content."
      },
      "imageUrl": {
        "type": "string",
        "format": "uri",
        "maxLength": 2048,
        "description": "Episode-specific artwork URL. Falls back to show cover if omitted."
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "ISO 8601 timestamp of when the episode record was created."
      },
      "soundbites": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 255
        },
        "description": "Optional Podcasting 2.0 highlights with start times and durations."
      },
      "chaptersUrl": {
        "type": "string",
        "format": "uri",
        "maxLength": 2048,
        "description": "URL to a chapters file."
      },
      "description": {
        "type": "string",
        "description": "Summary or show notes for the episode. May contain basic formatting.",
        "maxGraphemes": 4000
      },
      "episodeType": {
        "type": "string",
        "maxLength": 20,
        "description": "Apple episode type. Full is the default when omitted.",
        "knownValues": [
          "full",
          "trailer",
          "bonus"
        ]
      },
      "publishedAt": {
        "type": "string",
        "format": "datetime",
        "description": "ISO 8601 timestamp when the episode was published. May differ from createdAt."
      },
      "seasonNumber": {
        "type": "integer",
        "description": "Season number the episode belongs to."
      },
      "audioMimeType": {
        "type": "string",
        "maxLength": 100,
        "description": "MIME type for the RSS enclosure, such as audio/mpeg or audio/mp4."
      },
      "episodeNumber": {
        "type": "integer",
        "description": "Episode number within the season or series."
      },
      "transcriptUrl": {
        "type": "string",
        "format": "uri",
        "maxLength": 2048,
        "description": "URL to a transcript file."
      },
      "audioSizeBytes": {
        "type": "integer",
        "minimum": 0,
        "description": "Audio file size in bytes for the RSS enclosure length attribute."
      },
      "durationSeconds": {
        "type": "integer",
        "minimum": 0,
        "description": "Length of the episode in whole seconds. Strongly recommended for player UX."
      },
      "chaptersMimeType": {
        "type": "string",
        "maxLength": 100,
        "description": "MIME type for chaptersUrl; required when exporting podcast:chapters."
      },
      "transcriptMimeType": {
        "type": "string",
        "maxLength": 100,
        "description": "MIME type for transcriptUrl; required when exporting podcast:transcript."
      },
      "alternateEnclosures": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 2048
        },
        "description": "Optional Podcasting 2.0 alternate media files with technical metadata."
      }
    }
  },
  "description": "A single podcast episode."
}

Lexicon Garden

@