Taddy API · Schema

Podcast Episode

A single podcast episode from the Taddy API

AudioComicsGraphQLMediaPodcastsTranscriptsWebhooks

Properties

Name Type Description
uuid string Taddy unique identifier (UUID)
guid string Episode unique identifier from the RSS feed
name string Episode title
description string Episode description or show notes
subtitle string Shortened episode description
audioUrl string Audio file URL
videoUrl string Video file URL
imageUrl string Episode cover art URL
websiteUrl string Episode web page URL
datePublished integer Publication date as Unix epoch timestamp in seconds
duration integer Episode length in seconds
fileLength integer Audio/video file size in bytes
fileType string MIME type of the audio/video file
seasonNumber integer Season number
episodeNumber integer Episode number within the season
episodeType string Episode classification type
isExplicitContent boolean Whether the episode contains explicit content
isRemoved boolean Whether the episode was removed from the RSS feed
isBlocked boolean Whether the episode is blocked for a policy violation
transcript array Episode transcript as parsed text paragraphs
transcriptUrls array Download links for transcript files
taddyTranscribeStatus string Transcription processing status
chapters array Episode chapter markers
persons array Hosts, guests, and contributors on this episode
hash string Hash for change detection
View JSON Schema on GitHub

JSON Schema

taddy-podcast-episode-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://taddy.org/schemas/podcast-episode",
  "title": "Podcast Episode",
  "description": "A single podcast episode from the Taddy API",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Taddy unique identifier (UUID)"
    },
    "guid": {
      "type": "string",
      "description": "Episode unique identifier from the RSS feed"
    },
    "name": {
      "type": "string",
      "description": "Episode title"
    },
    "description": {
      "type": "string",
      "description": "Episode description or show notes"
    },
    "subtitle": {
      "type": "string",
      "maxLength": 255,
      "description": "Shortened episode description"
    },
    "audioUrl": {
      "type": "string",
      "format": "uri",
      "description": "Audio file URL"
    },
    "videoUrl": {
      "type": "string",
      "format": "uri",
      "description": "Video file URL"
    },
    "imageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Episode cover art URL"
    },
    "websiteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Episode web page URL"
    },
    "datePublished": {
      "type": "integer",
      "description": "Publication date as Unix epoch timestamp in seconds"
    },
    "duration": {
      "type": "integer",
      "minimum": 0,
      "description": "Episode length in seconds"
    },
    "fileLength": {
      "type": "integer",
      "minimum": 0,
      "description": "Audio/video file size in bytes"
    },
    "fileType": {
      "type": "string",
      "description": "MIME type of the audio/video file"
    },
    "seasonNumber": {
      "type": "integer",
      "minimum": 0,
      "description": "Season number"
    },
    "episodeNumber": {
      "type": "integer",
      "minimum": 0,
      "description": "Episode number within the season"
    },
    "episodeType": {
      "type": "string",
      "enum": ["FULL", "TRAILER", "BONUS"],
      "description": "Episode classification type"
    },
    "isExplicitContent": {
      "type": "boolean",
      "description": "Whether the episode contains explicit content"
    },
    "isRemoved": {
      "type": "boolean",
      "description": "Whether the episode was removed from the RSS feed"
    },
    "isBlocked": {
      "type": "boolean",
      "description": "Whether the episode is blocked for a policy violation"
    },
    "transcript": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Episode transcript as parsed text paragraphs"
    },
    "transcriptUrls": {
      "type": "array",
      "items": { "type": "string", "format": "uri" },
      "description": "Download links for transcript files"
    },
    "taddyTranscribeStatus": {
      "type": "string",
      "description": "Transcription processing status"
    },
    "chapters": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "startTime": { "type": "number" },
          "endTime": { "type": "number" },
          "imageUrl": { "type": "string", "format": "uri" },
          "url": { "type": "string", "format": "uri" }
        }
      },
      "description": "Episode chapter markers"
    },
    "persons": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uuid": { "type": "string" },
          "name": { "type": "string" },
          "role": { "type": "string" },
          "imageUrl": { "type": "string", "format": "uri" },
          "href": { "type": "string", "format": "uri" }
        }
      },
      "description": "Hosts, guests, and contributors on this episode"
    },
    "hash": {
      "type": "string",
      "description": "Hash for change detection"
    }
  },
  "required": ["uuid", "name"]
}