# Tłumaczenie

> Przetłumacz transkrypcję na inny język podczas transkrypcji lub później i pobierz dwujęzyczny albo przetłumaczony tekst, SRT i VTT.

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

transcript1 najpierw transkrybuje nagranie, a potem tłumaczy tekst transkrypcji na wybrany język. Tłumaczenie jest dopasowane do segmentów i zachowuje oryginalne czasy oraz rozmówców. To wyłącznie tłumaczenie tekstu: bez dubbingu i bez przetłumaczonego dźwięku.

Tłumaczenie jest bezpłatne. Zużywa 0 minut i pojawia się w historii użycia jako bezpłatny wpis „Translation”. Minuty transkrypcji liczą się jak zwykle, a nieudane tłumaczenie nigdy nie psuje transkrypcji ani nie powoduje jej zwrotu.

## Tłumaczenie podczas transkrypcji

Dodaj `translate_to` do żądania tworzącego transkrypcję. To dwuliterowy kod ISO 639-1 małymi literami, na przykład `es` lub `en`. Działa z linkiem do filmu w ciele JSON `POST /v1/transcriptions`, z rezerwacją przesyłania w częściach i z jednorazowym przesyłaniem 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"}'
```

Przy przesyłaniu pliku wyślij `translate_to` jako pole formularza:

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

Narzędzie MCP `transcribe` także przyjmuje `translate_to`. Jeden język docelowy na żądanie.

## Tłumaczenie istniejącej transkrypcji

Zamów tłumaczenie ukończonej transkrypcji:

```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 odpowiada kodem `202`:

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

| Status | Znaczenie |
|---|---|
| `404` | Nie znaleziono transkrypcji. |
| `409 transcript_not_ready` | Transkrypcja nie ma jeszcze statusu `completed`. |
| `422` | Język nie jest poprawnym dwuliterowym kodem. |

Wywołanie jest idempotentne. Tłumaczenie `processing` lub `completed` zostaje zwrócone bez zmian, a `failed` jest ponawiane. Narzędzie MCP `translate_transcription` przyjmuje `id` i `language`.

## Odczyt tłumaczenia

`GET /v1/transcriptions/:id` oraz pobieranie tekstu, SRT i VTT przyjmują parametr `translation`:

| `translation` | Wynik |
|---|---|
| `both` (domyślnie) | Segmenty JSON dostają pole `translation`. Tekst umieszcza przetłumaczoną linię pod oryginałem. Bloki SRT i VTT mają dwie linie: oryginał, potem tłumaczenie. |
| `only` | Przetłumaczony tekst zastępuje `text`. Czasy i rozmówcy zostają bez zmian. |
| `none` | Tylko oryginalna transkrypcja. |

Odpowiedź zawiera obiekt `translation` albo `null`, gdy nie zamówiono tłumaczenia:

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

`status` to `processing`, `completed` lub `failed`. Nieudane tłumaczenie ma też komunikat `error`. `wait` czeka także na zamówione tłumaczenie; po przekroczeniu czasu status to `processing`. Narzędzie MCP `get_transcription` ma parametr `translation` z tymi samymi wartościami.

## Webhooki

Dwa zdarzenia informują o wyniku tłumaczenia, oprócz `transcription.completed` i `transcription.failed`, które się nie zmieniają:

| `type` | Wysyłane, gdy |
|---|---|
| `transcription.translation.completed` | Zamówione tłumaczenie osiągnęło `completed`. |
| `transcription.translation.failed` | Zamówione tłumaczenie osiągnęło `failed`. |

`data` to obiekt transkrypcji plus `translation: { language, status, error }`. Podpisy i zasady dostarczania opisują [Webhooki](https://transcript1.com/pl/docs/webhooks).
