# Traduzione

> Traduci una trascrizione in un'altra lingua durante la trascrizione o dopo e leggi testo, SRT e VTT bilingue o solo tradotti.

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

transcript1 trascrive prima il contenuto e poi traduce il testo della trascrizione in una lingua a tua scelta. La traduzione è allineata per segmento e mantiene i tempi e i parlanti originali. È solo traduzione di testo: niente doppiaggio né audio tradotto.

La traduzione è gratuita. Usa 0 minuti e compare nello storico di utilizzo come voce gratuita "Translation". I minuti di trascrizione valgono come sempre e una traduzione fallita non fa mai fallire né rimborsa la trascrizione.

## Tradurre durante la trascrizione

Aggiungi `translate_to` alla richiesta che crea la trascrizione. È un codice ISO 639-1 di due lettere minuscole, ad esempio `es` o `en`. Funziona con un link video nel corpo JSON di `POST /v1/transcriptions`, con la prenotazione di un caricamento a blocchi e con un caricamento multipart in un solo passaggio.

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

Per un caricamento di file, invia `translate_to` come campo del modulo:

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

Anche lo strumento MCP `transcribe` accetta `translate_to`. Una lingua di destinazione per richiesta.

## Tradurre una trascrizione esistente

Richiedi la traduzione di una trascrizione completata:

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

L'API risponde `202`:

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

| Stato | Significato |
|---|---|
| `404` | La trascrizione non è stata trovata. |
| `409 transcript_not_ready` | La trascrizione non è ancora `completed`. |
| `422` | La lingua non è un codice valido di due lettere. |

La chiamata è idempotente. Una traduzione `processing` o `completed` viene restituita così com'è, una `failed` viene ritentata. Lo strumento MCP `translate_transcription` accetta `id` e `language`.

## Leggere la traduzione

`GET /v1/transcriptions/:id` e i download in testo, SRT e VTT accettano `translation`:

| `translation` | Risultato |
|---|---|
| `both` (predefinito) | I segmenti JSON ottengono un campo `translation`. Il testo mette la riga tradotta sotto l'originale. I blocchi SRT e VTT hanno due righe: l'originale e poi la traduzione. |
| `only` | Il testo tradotto sostituisce `text`. Tempi e parlanti restano uguali. |
| `none` | Solo la trascrizione originale. |

La risposta contiene un oggetto `translation`, oppure `null` se non è stata richiesta alcuna traduzione:

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

`status` è `processing`, `completed` o `failed`. Una traduzione fallita ha anche un messaggio `error`. `wait` attende anche la traduzione richiesta; se il tempo scade, lo stato è `processing`. Lo strumento MCP `get_transcription` ha un parametro `translation` con gli stessi valori.

## Webhook

Due eventi comunicano l'esito della traduzione, oltre a `transcription.completed` e `transcription.failed`, che non cambiano:

| `type` | Inviato quando |
|---|---|
| `transcription.translation.completed` | Una traduzione richiesta ha raggiunto `completed`. |
| `transcription.translation.failed` | Una traduzione richiesta ha raggiunto `failed`. |

`data` è l'oggetto trascrizione più `translation: { language, status, error }`. Per firme e regole di consegna vedi [Webhooks](https://transcript1.com/it/docs/webhooks).
