place.pod.episode
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A single podcast episode.",
"key": "tid",
"record": {
"properties": {
"alternateEnclosures": {
"description": "Optional Podcasting 2.0 alternate media files with technical metadata.",
"items": {
"maxLength": 2048,
"type": "string"
},
"type": "array"
},
"audioMimeType": {
"description": "MIME type for the RSS enclosure, such as audio/mpeg or audio/mp4.",
"maxLength": 100,
"type": "string"
},
"audioSizeBytes": {
"description": "Audio file size in bytes for the RSS enclosure length attribute.",
"minimum": 0,
"type": "integer"
},
"audioUrl": {
"description": "Direct URL to the audio file. Must be publicly accessible and use HTTPS.",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"chaptersMimeType": {
"description": "MIME type for chaptersUrl; required when exporting podcast:chapters.",
"maxLength": 100,
"type": "string"
},
"chaptersUrl": {
"description": "URL to a chapters file.",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"createdAt": {
"description": "ISO 8601 timestamp of when the episode record was created.",
"format": "datetime",
"type": "string"
},
"description": {
"description": "Summary or show notes for the episode. May contain basic formatting.",
"maxGraphemes": 4000,
"type": "string"
},
"durationSeconds": {
"description": "Length of the episode in whole seconds. Strongly recommended for player UX.",
"minimum": 0,
"type": "integer"
},
"episodeNumber": {
"description": "Episode number within the season or series.",
"type": "integer"
},
"episodeType": {
"description": "Apple episode type. Full is the default when omitted.",
"knownValues": [
"full",
"trailer",
"bonus"
],
"maxLength": 20,
"type": "string"
},
"explicit": {
"description": "Whether this specific episode contains explicit content.",
"type": "boolean"
},
"guid": {
"description": "Globally unique, immutable episode identifier required by Apple and PSP.",
"maxLength": 255,
"type": "string"
},
"imageUrl": {
"description": "Episode-specific artwork URL. Falls back to show cover if omitted.",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"link": {
"description": "Public webpage for the episode, corresponding to the RSS item link.",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"people": {
"description": "Structured episode credits such as hosts, guests, and producers.",
"items": {
"maxLength": 100,
"type": "string"
},
"type": "array"
},
"publishedAt": {
"description": "ISO 8601 timestamp when the episode was published. May differ from createdAt.",
"format": "datetime",
"type": "string"
},
"seasonNumber": {
"description": "Season number the episode belongs to.",
"type": "integer"
},
"showUri": {
"description": "AT Protocol URI of the parent place.pod.show record.",
"format": "uri",
"type": "string"
},
"soundbites": {
"description": "Optional Podcasting 2.0 highlights with start times and durations.",
"items": {
"maxLength": 255,
"type": "string"
},
"type": "array"
},
"title": {
"description": "Title of the episode.",
"maxLength": 200,
"type": "string"
},
"transcriptMimeType": {
"description": "MIME type for transcriptUrl; required when exporting podcast:transcript.",
"maxLength": 100,
"type": "string"
},
"transcriptUrl": {
"description": "URL to a transcript file.",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"showUri",
"title",
"audioUrl",
"createdAt",
"guid",
"audioMimeType",
"audioSizeBytes"
],
"type": "object"
},
"type": "record"
}
},
"description": "A single podcast episode.",
"id": "place.pod.episode",
"lexicon": 1
}
Metadata
- DID
-
did:plc:djyfh7w2dpxt7w7cpagfeyie - CID
-
bafyreibrghevgz2cce46kncbaax2qpgjqiizevycepsqu5th4yenxur26q - Indexed At
- 2026-07-26 16:24 UTC
- AT-URI
-
at://did:plc:djyfh7w2dpxt7w7cpagfeyie/com.atproto.lexicon.schema/place.pod.episode
Version History (2 versions)
- 2026-07-26 16:24 UTC (current)
- 2026-06-21 18:48 UTC diff
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
org.atpodcasting.episode record
A podcast episode. Record key is a UUIDv5 derived from the podcast GUID (as namespace) and the episode's feedItemGuid (as name), enabling deterministic lookup from RSS feed metadata.
-
live.voxport.podcast.episode record
A podcast episode belonging to a series
-
pink.vase.pod.episode record
A podcast episode belonging to a show.
-
A podcast episode (often derived from a voice space recording), mirrored to AT Protocol as a real org.swappulse.podcastEpisode record so episodes are portable and playable across instances.
-
place.pod.show record
A podcast show or channel.