{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://socialcrawl.dev/schemas/transcript.json",
  "title": "SocialCrawl Transcript",
  "description": "Canonical unified video or audio transcript object returned by every SocialCrawl endpoint with the Transcript archetype. Nullability is expressed via JSON Schema 2020-12 type arrays. Generated from the Zod schema in packages/social-api/src/schemas/canonical.ts.",
  "type": "object",
  "properties": {
    "transcript": {
      "type": [
        "string",
        "null"
      ],
      "description": "Full transcript text. Plain string for TikTok/Facebook/Twitter; see `transcripts` for Instagram and the segmented YouTube shape."
    },
    "transcript_format": {
      "type": "string",
      "enum": [
        "webvtt",
        "text"
      ],
      "description": "TikTok only: the form of the `transcript` string. `webvtt` is WebVTT cues with timestamps (a caption track, or AI transcription of a longer video); `text` is plain text (AI transcription of a shorter video, which also returns `duration_seconds` and `duration_minutes`). Absent on other platforms and when there is no transcript."
    },
    "transcripts": {
      "type": [
        "array",
        "null"
      ],
      "description": "Instagram transcript entries. Each item has a `text` field with the full transcript for that track.",
      "items": {
        "type": "object",
        "description": "Transcript track",
        "properties": {
          "text": {
            "type": "string",
            "description": "Transcript text"
          }
        }
      }
    }
  },
  "additionalProperties": true
}
