# Перевод

> Переводите транскрипт на другой язык при расшифровке или позже и получайте двуязычный или переведённый текст, SRT и VTT.

Canonical: https://transcript1.com/ru/docs/translation
Language: ru
Last updated: 2026-10-31

transcript1 сначала расшифровывает запись, а затем переводит текст транскрипта на выбранный вами язык. Перевод выравнивается по сегментам и сохраняет исходные таймкоды и говорящих. Это только перевод текста: без дубляжа и переведённого звука.

Перевод бесплатный. Он расходует 0 минут и отображается в истории использования как бесплатная запись «Translation». Минуты расшифровки списываются как обычно, а неудачный перевод никогда не приводит к ошибке транскрипта и не возвращает минуты.

## Перевод сразу при расшифровке

Добавьте `translate_to` в запрос, который создаёт расшифровку. Это двухбуквенный код ISO 639-1 в нижнем регистре, например `es` или `en`. Он работает со ссылкой на видео в JSON-теле `POST /v1/transcriptions`, с резервированием поэтапной загрузки и с одношаговой multipart-загрузкой.

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "translate_to": "es"}'
```

При загрузке файла передайте `translate_to` как поле формы:

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F file=@interview.m4a \
  -F translate_to=en
```

Инструмент MCP `transcribe` тоже принимает `translate_to`. Один целевой язык на запрос.

## Перевод уже готового транскрипта

Закажите перевод завершённой расшифровки:

```bash
curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/translations" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"language": "en"}'
```

API отвечает кодом `202`:

```json
{
  "transcription_id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
  "language": "en",
  "status": "processing"
}
```

| Статус | Значение |
|---|---|
| `404` | Расшифровка не найдена. |
| `409 transcript_not_ready` | Расшифровка ещё не в статусе `completed`. |
| `422` | Язык не является допустимым двухбуквенным кодом. |

Вызов идемпотентен. Перевод в статусе `processing` или `completed` возвращается как есть, а `failed` запускается повторно. Инструмент MCP `translate_transcription` принимает `id` и `language`.

## Чтение перевода

`GET /v1/transcriptions/:id` и скачивание текста, SRT и VTT принимают `translation`:

| `translation` | Результат |
|---|---|
| `both` (по умолчанию) | Сегменты JSON получают поле `translation`. В тексте переведённая строка идёт под оригиналом. Блоки SRT и VTT состоят из двух строк: оригинал, затем перевод. |
| `only` | Перевод заменяет `text`. Таймкоды и говорящие остаются прежними. |
| `none` | Только исходный транскрипт. |

В ответе есть объект `translation`, а если перевод не заказывали, то `null`:

```json
{
  "translation": { "language": "es", "status": "completed" }
}
```

`status` равен `processing`, `completed` или `failed`. У неудачного перевода есть также сообщение `error`. `wait` дожидается и заказанного перевода; если время ожидания истекло, статус `processing`. У инструмента MCP `get_transcription` есть параметр `translation` с теми же значениями.

## Вебхуки

Два события сообщают о результате перевода, помимо неизменных `transcription.completed` и `transcription.failed`:

| `type` | Отправляется, когда |
|---|---|
| `transcription.translation.completed` | Заказанный перевод достиг статуса `completed`. |
| `transcription.translation.failed` | Заказанный перевод достиг статуса `failed`. |

`data` — это объект расшифровки плюс `translation: { language, status, error }`. Подписи и правила доставки описаны в разделе [Webhooks](https://transcript1.com/ru/docs/webhooks).
