A single podcast episode.
tid
Timestamp-based ID
Properties
audioMimeType
string
Optional
MIME type of the audio file. Common values: audio/mpeg, audio/wav, audio/aac.
maxLength: 100 bytesaudioSizeBytes
integer
Optional
File size of the audio asset in bytes. Useful for download progress indicators.
audioUrl
string
uri
Required
Direct URL to the audio file. Must be publicly accessible and use HTTPS.
chaptersUrl
string
uri
Optional
URL to a chapters file. Accepts JSON or WebVTT formats.
createdAt
string
datetime
Required
ISO 8601 timestamp of when the episode record was created.
description
string
Required
Summary or show notes for the episode. May contain basic formatting.
maxGraphemes: 4000 graphemesdurationSeconds
integer
Optional
Length of the episode in whole seconds. Strongly recommended for player UX.
episodeNumber
integer
Optional
Episode number within the season or series.
explicit
boolean
Optional
Whether this specific episode contains explicit content. Defaults to false if omitted.
imageUrl
string
uri
Optional
Episode-specific artwork URL. Falls back to show cover if omitted.
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.
title
string
Required
Title of the episode.
maxLength: 200 bytestranscriptUrl
string
uri
Optional
URL to a transcript file. Improves accessibility and searchability.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"showUri",
"title",
"description",
"audioUrl",
"createdAt"
],
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"description": "Title of the episode."
},
"showUri": {
"type": "string",
"format": "uri",
"description": "AT Protocol URI of the parent place.pod.show record."
},
"audioUrl": {
"type": "string",
"format": "uri",
"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. Defaults to false if omitted."
},
"imageUrl": {
"type": "string",
"format": "uri",
"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."
},
"chaptersUrl": {
"type": "string",
"format": "uri",
"description": "URL to a chapters file. Accepts JSON or WebVTT formats."
},
"description": {
"type": "string",
"description": "Summary or show notes for the episode. May contain basic formatting.",
"maxGraphemes": 4000
},
"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 of the audio file. Common values: audio/mpeg, audio/wav, audio/aac."
},
"episodeNumber": {
"type": "integer",
"description": "Episode number within the season or series."
},
"transcriptUrl": {
"type": "string",
"format": "uri",
"description": "URL to a transcript file. Improves accessibility and searchability."
},
"audioSizeBytes": {
"type": "integer",
"description": "File size of the audio asset in bytes. Useful for download progress indicators."
},
"durationSeconds": {
"type": "integer",
"description": "Length of the episode in whole seconds. Strongly recommended for player UX."
}
}
},
"description": "A single podcast episode."
}