# Tradução

> Traduza uma transcrição para outro idioma ao transcrever ou depois, e leia texto, SRT e VTT bilíngues ou só traduzidos.

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

O transcript1 transcreve a mídia primeiro e depois traduz o texto da transcrição para um idioma à sua escolha. A tradução é alinhada por segmento e mantém os tempos e os falantes originais. É apenas tradução de texto: não há dublagem nem áudio traduzido.

A tradução é gratuita. Ela usa 0 minutos e aparece no seu histórico de uso como uma entrada gratuita "Translation". Os minutos de transcrição valem como sempre, e uma tradução com falha nunca faz a transcrição falhar nem a reembolsa.

## Traduzir ao transcrever

Adicione `translate_to` à requisição que cria a transcrição. É um código ISO 639-1 de duas letras minúsculas, como `es` ou `en`. Funciona com um link de vídeo no corpo JSON de `POST /v1/transcriptions`, na reserva de um upload em partes e em um upload multipart de uma só requisição.

```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"}'
```

Em um upload de arquivo, envie `translate_to` como campo de formulário:

```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
```

A ferramenta MCP `transcribe` também aceita `translate_to`. Um idioma de destino por requisição.

## Traduzir uma transcrição que já existe

Peça a tradução de uma transcrição concluída:

```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"}'
```

A API responde `202`:

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

| Status | Significado |
|---|---|
| `404` | A transcrição não foi encontrada. |
| `409 transcript_not_ready` | A transcrição ainda não está `completed`. |
| `422` | O idioma não é um código válido de duas letras. |

A chamada é idempotente. Uma tradução `processing` ou `completed` é devolvida como está, e uma `failed` é tentada de novo. A ferramenta MCP `translate_transcription` recebe `id` e `language`.

## Ler a tradução

`GET /v1/transcriptions/:id` e os downloads em texto, SRT e VTT aceitam `translation`:

| `translation` | Resultado |
|---|---|
| `both` (padrão) | Os segmentos JSON ganham um campo `translation`. O texto coloca a linha traduzida abaixo da original. Os blocos SRT e VTT têm duas linhas: a original e depois a tradução. |
| `only` | O texto traduzido substitui `text`. Os tempos e os falantes continuam iguais. |
| `none` | Somente a transcrição original. |

A resposta tem um objeto `translation`, ou `null` quando nenhuma tradução foi pedida:

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

`status` é `processing`, `completed` ou `failed`. Uma tradução com falha também traz uma mensagem `error`. O `wait` também espera pela tradução pedida; se o tempo acabar, o status é `processing`. A ferramenta MCP `get_transcription` tem um parâmetro `translation` com os mesmos valores.

## Webhooks

Dois eventos informam o resultado da tradução, além de `transcription.completed` e `transcription.failed`, que não mudam:

| `type` | Enviado quando |
|---|---|
| `transcription.translation.completed` | Uma tradução pedida chegou a `completed`. |
| `transcription.translation.failed` | Uma tradução pedida chegou a `failed`. |

`data` é o objeto da transcrição mais `translation: { language, status, error }`. Veja [Webhooks](https://transcript1.com/pt/docs/webhooks) para assinaturas e regras de entrega.
