{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/hubris-pw/json-schema/hubris-pw-video-transcription-schema.json",
  "title": "VideoTranscription",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/hubris-pw-openapi.json#/components/schemas/VideoTranscription",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "object": {
      "type": "string",
      "enum": [
        "video.transcription"
      ]
    },
    "created": {
      "type": "integer",
      "description": "Unix-секунды."
    },
    "model": {
      "type": "string",
      "description": "Модель, которая смотрела ролик."
    },
    "video": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "ID ролика на YouTube."
        },
        "title": {
          "type": "string"
        },
        "duration_sec": {
          "type": "integer"
        }
      },
      "required": [
        "id",
        "title",
        "duration_sec"
      ]
    },
    "mode": {
      "type": "string",
      "enum": [
        "exact",
        "fast"
      ]
    },
    "diarize": {
      "type": "boolean",
      "description": "В режиме `fast` всегда `false`."
    },
    "text": {
      "type": "string",
      "description": "Расшифровка или пересказ."
    },
    "truncated": {
      "type": "boolean",
      "description": "`true` — текст оборвался по лимиту длины ответа даже после продолжений, или продолжение не удалось и отдано собранное."
    },
    "usage": {
      "type": "object",
      "properties": {
        "prompt_tokens": {
          "type": "integer"
        },
        "completion_tokens": {
          "type": "integer"
        },
        "total_tokens": {
          "type": "integer"
        },
        "cost": {
          "type": "integer",
          "description": "Списано с баланса за все запросы к модели, копейки."
        },
        "requests": {
          "type": "integer",
          "description": "Сколько запросов к модели понадобилось."
        }
      },
      "required": [
        "prompt_tokens",
        "completion_tokens",
        "total_tokens",
        "cost",
        "requests"
      ]
    }
  },
  "required": [
    "id",
    "object",
    "created",
    "model",
    "video",
    "mode",
    "diarize",
    "text",
    "truncated",
    "usage"
  ]
}