Расшифровывает аудио и видео в текст, чтобы можно было читать, искать по словам и быстро находить нужные моменты. Цена - 0,01 ₽ за секунду записи.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Расшифровка аудио и видео превращает речь из аудио- или видеофайла в текст. API подходит для расшифровки встреч, интервью, лекций, звонков, подкастов и видео. Можно передать внешний URL файла или ссылку на YouTube-видео.
Результат можно получить как текст, а также в файле .txt, .docx, .pdf или .srt. Каждый запуск создаёт асинхронную операцию: API сразу вернёт её id и стартовый статус, а готовый результат нужно получить отдельной проверкой.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус.У инструмента два сценария:
source_type = "file" - расшифровка аудио- или видеофайла по внешнему URL;source_type = "youtube" - расшифровка YouTube-видео по ссылке.{
"tool": "audio-video-transcription",
"input": {
"source_type": "file",
"media_url": "https://cdn.example.com/meeting-recording-1.mp3",
"language": "ru",
"delivery_format": "text",
"text_format": "paragraphs"
}
}
tool - slug нейросети, всегда "audio-video-transcription".input - параметры конкретного запуска.source_type и выбранного формата выдачи.input, без дополнительного вложенного объекта input.input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
source_type | enum | Да | Источник записи. Варианты: file - аудио- или видеофайл по URL, youtube - ссылка на YouTube-видео. |
media_url | string (url) | Да, только для source_type = "file" | Внешний http/https URL одного аудио- или видеофайла. Поддерживаются: .mp4, .mov, .webm, .flv, .m4v, .mxf, .mts, .m2ts, .ts, .mp3, .aac, .flac, .wav, .ogg, .m4a, .wma, .alac, .aiff, .ape, .amr, .m4b, .m4p, .m4r, .mp2, .mpga, .3ga, .8svx, .ac3, .aif, .au, .dss, .mogg, .oga, .opus, .qcp, .tta, .voc, .wv. Размер внешнего файла - до 128 МиБ. |
youtube_url | string (url) | Да, только для source_type = "youtube" | Ссылка на YouTube-видео: обычная, короткая youtu.be, embed или Shorts. |
language | enum | Да | Язык речи. Варианты: auto - определить автоматически, ru - русский, en - английский, de - немецкий, fr - французский, es - испанский. Для auto лучше использовать запись минимум с 15 секундами речи. |
delivery_format | enum | Да | Как получить готовую расшифровку. Варианты: text - текст в result, txt - файл TXT, docx - файл DOCX, pdf - файл PDF, srt - файл субтитров SRT. |
text_format | enum | Да, кроме delivery_format = "srt" | Структура текста. Варианты: plain - сплошной текст, paragraphs - абзацы, sentences - предложения, paragraphs_timestamps - абзацы с таймкодами, speakers - разделение на спикеров, speakers_timestamps - разделение на спикеров с таймкодами. Для srt не передавайте это поле. |
show_advanced_settings | boolean | Нет | Установите true, если передаёте дополнительные настройки: keep_disfluencies, expected_speakers или custom_spelling. |
keep_disfluencies | boolean | Нет, только при show_advanced_settings = true | Сохраняет в расшифровке слова-паразиты и паузы речи, например «ээ» и «мм». |
expected_speakers | number | Нет, только при show_advanced_settings = true и text_format = "speakers" или "speakers_timestamps" | Ожидаемое число спикеров от 1 до 10. Помогает разделить речь по участникам. Для srt не передавайте это поле. |
custom_spelling | object[] | Нет, только при show_advanced_settings = true | Словарь исправлений для имён, брендов и терминов. До 20 правил. В каждом правиле обязательны from_words - массив вариантов произношения, и to - правильное написание. |
Пример custom_spelling:
{
"show_advanced_settings": true,
"custom_spelling": [
{
"from_words": ["декарло", "decarlo"],
"to": "Decarlo"
}
]
}
duration_seconds передавать не нужно. Для файла длительность определяет сервер до создания операции и расчёта цены. Для YouTube сервер проверяет ссылку и определяет длительность видео сам.
Используйте этот сценарий для записи встречи, интервью, лекции или видео, которое доступно по внешней ссылке.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "audio-video-transcription",
"input": {
"source_type": "file",
"media_url": "https://cdn.example.com/meeting-recording-1.mp3",
"language": "ru",
"delivery_format": "text",
"text_format": "paragraphs"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'audio-video-transcription',
input: {
source_type: 'file',
media_url: 'https://cdn.example.com/meeting-recording-1.mp3',
language: 'ru',
delivery_format: 'text',
text_format: 'paragraphs',
},
}),
})
const operation = await response.json()
console.log(operation.id)
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'audio-video-transcription',
'input': {
'source_type': 'file',
'media_url': 'https://cdn.example.com/meeting-recording-1.mp3',
'language': 'ru',
'delivery_format': 'text',
'text_format': 'paragraphs',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Используйте этот сценарий, когда исходное видео уже опубликовано на YouTube. Для формата srt не передавайте text_format.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "audio-video-transcription",
"input": {
"source_type": "youtube",
"youtube_url": "https://www.youtube.com/watch?v=M7lc1UVf-VE",
"language": "auto",
"delivery_format": "srt"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'audio-video-transcription',
input: {
source_type: 'youtube',
youtube_url: 'https://www.youtube.com/watch?v=M7lc1UVf-VE',
language: 'auto',
delivery_format: 'srt',
},
}),
})
const operation = await response.json()
console.log(operation.id)
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'audio-video-transcription',
'input': {
'source_type': 'youtube',
'youtube_url': 'https://www.youtube.com/watch?v=M7lc1UVf-VE',
'language': 'auto',
'delivery_format': 'srt',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "d9c43f6a-8588-4fd1-9ac3-45c58997fb8a",
"status": "queued",
"tool": "audio-video-transcription",
"cost": 12.5,
"balance_after": 487.5,
"created_at": "2026-09-07T09:30:00Z"
}
cost рассчитывается после определения длительности сервером. В этом примере запись длится 1250 секунд, поэтому стоимость составляет 1250 × 0,01 ₽ = 12,50 ₽.
Для delivery_format = "text" готовая расшифровка возвращается в result.text:
{
"id": "d9c43f6a-8588-4fd1-9ac3-45c58997fb8a",
"status": "completed",
"tool": "audio-video-transcription",
"cost": 12.5,
"created_at": "2026-09-07T09:30:00Z",
"completed_at": "2026-09-07T09:32:14Z",
"result": {
"type": "text",
"text": "Добрый день. Начинаем встречу по итогам недели."
},
"error_message": null
}
{
"id": "d9c43f6a-8588-4fd1-9ac3-45c58997fb8a",
"status": "failed",
"tool": "audio-video-transcription",
"cost": 12.5,
"created_at": "2026-09-07T09:30:00Z",
"completed_at": "2026-09-07T09:31:03Z",
"result": null,
"error_message": "Не удалось выполнить расшифровку"
}
Сохраните id, который вернулся после создания операции, и используйте его для проверки статуса.
GET /api/v1/operations/{id}curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/d9c43f6a-8588-4fd1-9ac3-45c58997fb8a
const operationId = 'd9c43f6a-8588-4fd1-9ac3-45c58997fb8a'
const response = await fetch(
`https://bratuha.ru/api/v1/operations/${operationId}`,
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
},
)
const operation = await response.json()
console.log(operation.status, operation.result)
Формат result зависит от delivery_format.
При delivery_format = "text":
{
"type": "text",
"text": "Готовая расшифровка записи"
}
При delivery_format = "txt", "docx", "pdf" или "srt":
{
"type": "file",
"files": [
{
"url": "https://storage.bratuha.ru/results/audio-video-transcription/transcription.srt"
}
]
}
type - тип результата: text или file.text - готовая расшифровка, если выбран текстовый формат.files - массив файлов для скачивания, если выбран файл. Даже если сейчас возвращается один файл, обрабатывайте это поле как массив.Цена зависит только от длительности исходной записи:
0,01 ₽ за секунду;Примеры расчёта:
61 × 0,01 ₽ = 0,61 ₽;1250 × 0,01 ₽ = 12,50 ₽;ceil(10,2) × 0,01 ₽ = 0,11 ₽.Язык, формат текста, словарь исправлений и формат выдачи на цену не влияют.
POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и повторно списывает стоимость.id из первого ответа и проверяйте статус отдельным запросом.media_url используйте только внешние http/https URL. localhost, loopback, private IP и внутренние адреса не принимаются.delivery_format = "srt" не передавайте text_format и expected_speakers.show_advanced_settings в true.