# Terjemahan

> Terjemahkan transkrip ke bahasa lain saat transkripsi atau sesudahnya, lalu baca teks, SRT, dan VTT dua bahasa atau hanya terjemahan.

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

transcript1 mentranskripsi media lebih dulu, lalu menerjemahkan teks transkrip ke bahasa pilihan Anda. Terjemahan diselaraskan per segmen dan mempertahankan stempel waktu serta pembicara asli. Ini hanya terjemahan teks: tidak ada dubbing dan tidak ada audio terjemahan.

Terjemahan gratis. Terjemahan memakai 0 menit dan tampil di riwayat penggunaan Anda sebagai entri gratis "Translation". Menit transkripsi berlaku seperti biasa, dan terjemahan yang gagal tidak pernah menggagalkan atau mengembalikan transkrip.

## Terjemahkan saat transkripsi

Tambahkan `translate_to` pada permintaan yang membuat transkripsi. Nilainya kode ISO 639-1 dua huruf kecil, misalnya `es` atau `en`. Ini berfungsi dengan tautan video di body JSON `POST /v1/transcriptions`, dengan reservasi unggahan bertahap, dan dengan unggahan multipart satu langkah.

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

Untuk unggahan file, kirim `translate_to` sebagai kolom formulir:

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

Alat MCP `transcribe` juga menerima `translate_to`. Satu bahasa tujuan per permintaan.

## Terjemahkan transkrip yang sudah ada

Minta terjemahan untuk transkripsi yang sudah selesai:

```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 menjawab `202`:

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

| Status | Arti |
|---|---|
| `404` | Transkripsi tidak ditemukan. |
| `409 transcript_not_ready` | Transkripsi belum berstatus `completed`. |
| `422` | Bahasa bukan kode dua huruf yang valid. |

Panggilan ini idempoten. Terjemahan berstatus `processing` atau `completed` dikembalikan apa adanya, dan yang `failed` dicoba lagi. Alat MCP `translate_transcription` menerima `id` dan `language`.

## Baca terjemahan

`GET /v1/transcriptions/:id` dan unduhan teks, SRT, dan VTT menerima `translation`:

| `translation` | Hasil |
|---|---|
| `both` (bawaan) | Segmen JSON mendapat kolom `translation`. Teks menaruh baris terjemahan di bawah baris asli. Blok SRT dan VTT berisi dua baris: teks asli, lalu terjemahan. |
| `only` | Teks terjemahan menggantikan `text`. Stempel waktu dan pembicara tetap sama. |
| `none` | Hanya transkrip asli. |

Respons memuat objek `translation`, atau `null` jika tidak ada terjemahan yang diminta:

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

`status` bernilai `processing`, `completed`, atau `failed`. Terjemahan yang gagal juga memuat pesan `error`. `wait` turut menunggu terjemahan yang diminta; jika waktu habis, statusnya `processing`. Alat MCP `get_transcription` memiliki parameter `translation` dengan nilai yang sama.

## Webhook

Dua event melaporkan hasil terjemahan, selain `transcription.completed` dan `transcription.failed` yang tidak berubah:

| `type` | Dikirim saat |
|---|---|
| `transcription.translation.completed` | Terjemahan yang diminta mencapai `completed`. |
| `transcription.translation.failed` | Terjemahan yang diminta mencapai `failed`. |

`data` adalah objek transkripsi ditambah `translation: { language, status, error }`. Lihat [Webhooks](https://transcript1.com/id/docs/webhooks) untuk tanda tangan dan aturan pengiriman.
