{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/flashdata-dev/json-schema/flashdata-dev-async-query-youtube-transcript-schema.json",
  "title": "AsyncQuery_youtube_transcript",
  "description": "YouTube Transcript. Supported modes: realtime, async, batch. Provider-specific storage requirements and conditional media options are validated by the server; see the source reference.",
  "x-generated": "2026-11-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/flashdata-dev-openapi.json#/components/schemas/AsyncQuery_youtube_transcript",
  "type": "object",
  "required": [
    "source",
    "video_id"
  ],
  "properties": {
    "source": {
      "type": "string",
      "const": "youtube_transcript"
    },
    "video_id": {
      "type": "string",
      "minLength": 11,
      "maxLength": 11,
      "pattern": "^[A-Za-z0-9_-]{11}$"
    },
    "params": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "language": {
          "oneOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 35,
              "pattern": "^[A-Za-z0-9-]+$"
            },
            {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 35,
                "pattern": "^[A-Za-z0-9-]+$"
              },
              "minItems": 1,
              "maxItems": 10,
              "uniqueItems": true
            }
          ],
          "description": "Omit to prefer en-orig and fall back to en, returning one track. With auto=true, each code tries its -orig track first, then the requested code; explicit -orig codes and auto=false stay exact. Arrays of 1–10 distinct codes try every requested language and return tracks and per-language errors in request order. languageCode identifies the selected track; requestedLanguageCode is included when it differs from the requested code."
        },
        "auto": {
          "type": "boolean",
          "default": true,
          "description": "true selects automatically generated captions; false selects manually provided captions. Does not fall back between the two."
        }
      }
    },
    "callback_url": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 2048,
      "description": "Async and batch only. Public HTTPS URL on port 443 without credentials or a fragment. Omit, null or empty string disables callbacks. Server validates public reachability."
    }
  }
}