---
title: "Расшифровать ролик YouTube по ссылке"
method: POST
path: "/v1/video/transcriptions"
tags: ["Videos"]
---

# Расшифровать ролик YouTube по ссылке

`POST /v1/video/transcriptions`

## Request

- Base URL: `https://api.hubris.pw`
- URL: `https://api.hubris.pw/v1/video/transcriptions`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.hubris.pw/oauth/authorize`, token URL `https://api.hubris.pw/oauth/token`, scopes: `chat:write`)

Дословная расшифровка с таймкодами (`exact`) или пересказ (`fast`) публичного ролика YouTube. Ролик по ссылке смотрит модель `google/gemini-3.8-flash`, скачивать видео не нужно. Не путать с `/v1/videos` — там генерация.

До запроса к модели ролик проверяется: удалённый, приватный, открытый только по ссылке, прямой эфир и ролик длиннее 4 часов отклоняются без списания.

Оплата по токенам, как у запроса к модели: `usage.cost` — сумма в копейках. Если ответ в режиме `exact` упирается в лимит длины, Hubris сам запрашивает продолжение и склеивает куски — до 5 запросов к модели (`usage.requests`). Стрима нет, ответ приходит целиком.

Ошибки самого запроса к модели (402, 429, 5xx) приходят в том же виде, что у `/v1/chat/completions`.

## Request body

- VideoTranscriptionRequest
  - `url` string, required: Ссылка на ролик YouTube: `youtube.com/watch?v=…`, `youtu.be/…`, `youtube.com/shorts/…`, `youtube.com/live/…`.
  - `mode` 'exact' | 'fast': `exact` — дословная расшифровка, каждая реплика с новой строки и таймкодом `[HH:MM:SS]`. `fast` — пересказ и ключевые мысли с таймкодами: быстрее и дешевле на длинном ролике, таймкоды приблизительные.
  - `diarize` boolean: Только для `exact`: помечать реплики говорящими («Говорящий 1:» или имя, если оно звучит в ролике).

## Response `200`

Расшифровка или пересказ.

- VideoTranscription
  - `id` string, required
  - `object` 'video.transcription', required
  - `created` integer, required: Unix-секунды.
  - `model` string, required: Модель, которая смотрела ролик.
  - `video` object, required
    - `id` string, required: ID ролика на YouTube.
    - `title` string, required
    - `duration_sec` integer, required
  - `mode` 'exact' | 'fast', required
  - `diarize` boolean, required: В режиме `fast` всегда `false`.
  - `text` string, required: Расшифровка или пересказ.
  - `truncated` boolean, required: `true` — текст оборвался по лимиту длины ответа даже после продолжений, или продолжение не удалось и отдано собранное.
  - `usage` object, required
    - `prompt_tokens` integer, required
    - `completion_tokens` integer, required
    - `total_tokens` integer, required
    - `cost` integer, required: Списано с баланса за все запросы к модели, копейки.
    - `requests` integer, required: Сколько запросов к модели понадобилось.

## Other responses

- `400`: Невалидный JSON (`invalid_json`) или параметр (`invalid_parameter`), ссылка не на ролик YouTube (`invalid_video_url`), прямой эфир или премьера (`video_is_live`), ролик длиннее 4 часов (`video_too_long`).
- `401`: Ключ не передан, невалиден, отозван или заморожен (`invalid_api_key`, `key_frozen_spike`).
- `402`: Недостаточно средств на балансе (`insufficient_balance`).
- `403`: Нет права `chat:write`: ключ только для чтения (`key_read_only`) или OAuth-токен без него (`insufficient_scope`). Ещё причины: management-ключ (`inference_key_required`), запрос не с адреса, к которому привязан ключ (`key_ip_not_allowed`), или заблокированный аккаунт (`account_blocked`).
- `404`: Ролик удалён, приватный или открыт только по ссылке (`video_unavailable`).
- `413`: Тело запроса больше 64 КБ (`request_too_large`).
- `429`: Исчерпан лимит расхода ключа (`daily_limit_exceeded`, `key_limit_exceeded`) или провайдер временно ограничил запросы. Пауза — в `Retry-After`.
- `502`: Сбой модели (`upstream_error`).
- `503`: Проверка ролика временно недоступна (`video_lookup_unavailable`) или курс ЦБ РФ недоступен.

---

[API](https://skmtc.dev/hubris/apis/hubris-api.md) · [All operations](https://skmtc.dev/hubris/apis/hubris-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hubris/apis/hubris-api/revisions/79ea91ed8f10?raw)
