place.pod.episode
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A single podcast episode.",
"key": "tid",
"record": {
"properties": {
"audioMimeType": {
"description": "MIME type of the audio file. Common values: audio/mpeg, audio/wav, audio/aac.",
"maxLength": 100,
"type": "string"
},
"audioSizeBytes": {
"description": "File size of the audio asset in bytes. Useful for download progress indicators.",
"type": "integer"
},
"audioUrl": {
"description": "Direct URL to the audio file. Must be publicly accessible and use HTTPS.",
"format": "uri",
"type": "string"
},
"chaptersUrl": {
"description": "URL to a chapters file. Accepts JSON or WebVTT formats.",
"format": "uri",
"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.",
"type": "integer"
},
"episodeNumber": {
"description": "Episode number within the season or series.",
"type": "integer"
},
"explicit": {
"description": "Whether this specific episode contains explicit content. Defaults to false if omitted.",
"type": "boolean"
},
"imageUrl": {
"description": "Episode-specific artwork URL. Falls back to show cover if omitted.",
"format": "uri",
"type": "string"
},
"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"
},
"title": {
"description": "Title of the episode.",
"maxLength": 200,
"type": "string"
},
"transcriptUrl": {
"description": "URL to a transcript file. Improves accessibility and searchability.",
"format": "uri",
"type": "string"
}
},
"required": [
"showUri",
"title",
"description",
"audioUrl",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"description": "A single podcast episode.",
"id": "place.pod.episode",
"lexicon": 1
}
Metadata
- DID
-
did:plc:djyfh7w2dpxt7w7cpagfeyie - CID
-
bafyreiheuj63zwh42442nkaqrxprm4oo3ilrsotgnjapzn5gepbqn4valq - Indexed At
- 2026-06-21 18:48 UTC
- AT-URI
-
at://did:plc:djyfh7w2dpxt7w7cpagfeyie/com.atproto.lexicon.schema/place.pod.episode
Version History (2 versions)
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.