place.pod.episode

pod.place

{
  "$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
}

Validate Record

Validate a record against place.pod.episode

Validation Options
Treat any remaining unresolved references as valid

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.

  • 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.

  • A podcast episode belonging to a series

  • A podcast episode belonging to a show.

  • org.swappulse.podcastEpisode recordnot from the namespace authority

    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.

  • A podcast show or channel.

Lexicon Garden

@