# Speech to text API do twoich plików audio i wideo

> Speech to text API przyjmuje pliki do 95 MB, w częściach do 2 GB. Tekst z czasami i opcjonalnym podziałem na rozmówców. 1 kredyt za minutę.

Canonical: https://transcript1.com/pl/features/speech-to-text-api
Language: pl
Last updated: 2026-10-19

Speech to text API zamienia plik audio lub wideo w tekst ze znacznikami czasu i językiem każdego fragmentu. Możesz też włączyć podział na rozmówców. Do 95 MB wyślesz jednym requestem. Większe pliki, do 2 GB, wrzucisz w częściach, a jeśli upload się przerwie, wznowisz go od miejsca, w którym stanął.

- Do 95 MB jednym requestem
- Do 2 GB w częściach, z możliwością wznowienia
- Usuwamy nagranie 24 godziny po zakończeniu transkrypcji

## Najpierw sprawdź rozmiar i długość pliku

### Audio lub wideo w jednym API

Przyjmujemy MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM i MKV. Plik musi zawierać ścieżkę audio.

### Mały plik wyślesz od razu

Do 95 MB użyj multipart/form-data na POST /v1/transcriptions. Nie musisz wcześniej rezerwować uploadu.

### Duży plik wrzucisz w częściach

Zarezerwuj upload, wyślij części po około 8 MiB i potwierdź zakończenie. Jeśli stracisz połączenie, doślesz brakujące części bez wysyłania całego pliku od nowa.

### Nagranie może trwać do 5 godzin

Rozmiar pliku i czas trwania sprawdzamy osobno. Dłuższe nagranie zwróci media_too_long. Jeśli transkrypcja się nie uda, nic nie płacisz.

### Zachowaj własną kopię nagrania

Usuwamy plik 24 godziny po tym, jak transkrypcja osiągnie końcowy status. Gotowy tekst zostaje, dopóki sam go nie usuniesz.

## Wyślij nagranie jednym requestem

Dodaj nagranie w polu file. Opcjonalnie podaj language, diarize, source lub webhook_url. [Sprawdź przykład multipart](https://transcript1.com/pl/docs/uploads#one-shot-upload). Jeśli chcesz dostać powiadomienie po przetworzeniu, dodaj [webhook](https://transcript1.com/pl/features/webhook-transkrypcja).

To dobry początek, jeśli twój serwer ma już niewielki plik na dysku. Wyślij bajty nagrania, nie tekst ze ścieżką do pliku w JSON. Zostaw ustawienie multipart boundary klientowi HTTP.

Sprawdź rozszerzenie i upewnij się, że plik nie jest pusty. Błędu walidacji nie naprawisz kolejnymi próbami wysłania tego samego pliku.

Skompresowane nagranie może mieścić się w 95 MB, ale przekraczać 5 godzin. Krótkie wideo w wysokiej rozdzielczości może być z kolei za duże na jeden request. Sposób uploadu wybieraj według rozmiaru, a długość sprawdzaj niezależnie.

### cURL

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

## Zarezerwuj upload większego pliku

Podaj nazwę i rozmiar pliku. Dostaniesz plan wysyłania części oraz X-Upload-Token do tego uploadu. [Pełną kolejność requestów znajdziesz w dokumentacji](https://transcript1.com/pl/docs/uploads#chunked-upload).

Korzystaj z planu zwróconego przez API. Dla każdej części dostaniesz indeks, początek w bajtach i rozmiar. Odczytaj dokładnie ten zakres pliku. Ostatnia część może być krótsza.

Binarne requesty PUT autoryzujesz tokenem uploadu, nie zwykłym kluczem API. Token działa przez 1 godzinę i tylko dla tego pliku.

Przy rezerwacji ustaw stały Idempotency-Key. Jeśli token wygaśnie, ponów rezerwację z tym samym kluczem i parametrami. Dostaniesz nowy token do istniejącego uploadu. Nowa rezerwacja po każdej przerwie tylko mnoży otwarte transkrypcje i utrudnia ustalenie postępu.

### Rezerwacja uploadu

```
curl -X POST "https://api.transcript1.com/v1/transcriptions" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Idempotency-Key: interview-2026-10-13" \
  -H "Content-Type: application/json" \
  -d '{"upload":{"filename":"interview.m4a","size":48210334,"mime_type":"audio/mp4"}}'
```

## Wyślij części i potwierdź, że plik jest kompletny

Każdą część wyślij requestem PUT pod jej adres, z tokenem uploadu. Potem potwierdź zakończenie. Sprawdzimy kompletność pliku i dopiero wtedy dodamy transkrypcję do kolejki. [Sprawdź endpointy uploadu](https://transcript1.com/pl/docs/api-reference#uploads).

Po przerwie wywołaj GET /v1/transcriptions/:id/upload. Porównaj received_chunks z planem i doślij tylko to, czego brakuje. Ponowne wysłanie części zastępuje poprzednią, ale nadal musi mieć zaplanowany rozmiar.

Kod 401 przy wysyłaniu części może oznaczać, że wygasł token. Nie musisz przez to ponownie przygotowywać nagrania. Kod 409 upload_incomplete przy potwierdzaniu wskaże indeksy części, których jeszcze brakuje.

Po dodaniu transkrypcji do kolejki sprawdzaj jej status lub czekaj na webhook. W interfejsie rozdziel postęp uploadu od postępu przepisywania nagrania.

### Wysłanie części i potwierdzenie uploadu

```
curl -X PUT "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/chunks/0" \
  -H "X-Upload-Token: t1u_..." \
  -H "Content-Type: application/octet-stream" \
  --data-binary @chunk-0.bin

curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/complete" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"
```

## Plik wysłany nie znaczy jeszcze, że transkrypcja trwa

Status awaiting_upload oznacza rezerwację, nie przetwarzanie nagrania. Najpierw wysyłasz bajty, potem potwierdzasz kompletność, a dopiero później rusza transkrypcja. Jeśli stracisz połączenie po potwierdzeniu, odczytaj status, zanim wyślesz kolejny request.

Zespół może mieć do 20 otwartych rezerwacji uploadu. Po 24 godzinach anulujemy te, których nie dokończysz, i usuwamy ich części. Gdy transkrypcja osiągnie końcowy status, przechowujemy nagranie jeszcze przez 24 godziny.

Transkrypcja zostaje, dopóki jej nie usuniesz. Jeśli twoja aplikacja ma później odtwarzać audio, przechowuj własny plik. O przygotowaniu nagrań i sprawdzaniu tekstu przeczytasz w poradniku [audio na tekst](https://transcript1.com/pl/features/audio-na-tekst), a o pracy z wypowiedziami uczestników w poradniku [transkrypcji wywiadów](https://transcript1.com/pl/use-cases/transkrypcja-wywiadu).

## Najczęstsze pytania

### Jakie pliki mogę wysłać przez API?

MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM i MKV. Plik musi mieć ścieżkę audio. Inne rozszerzenie zwróci 422 unsupported_media.

### Jaki jest limit rozmiaru pliku?

Do 95 MB jednym requestem lub do 2 GB w częściach. Twój plan może mieć niższy limit. Plik ponad limit zwróci 413 media_too_large.

### Jak długo trzymacie moje nagranie?

Usuwamy je 24 godziny po osiągnięciu końcowego statusu transkrypcji. Jeśli nie dokończysz uploadu w ciągu 24 godzin, anulujemy rezerwację i usuniemy części. Gotowy tekst zostaje, dopóki go nie usuniesz.

### Mogę dostać tekst z podziałem na rozmówców?

Tak. Ustaw diarize=true, a dostaniesz etykiety Speaker 1, Speaker 2 itd. Pliki zawsze przepisujemy z audio za pomocą AI.

## Sprawdź też

- [Podział na rozmówców](https://transcript1.com/pl/features/transkrypcja-z-podzialem-na-rozmowcow)
- [Audio na tekst](https://transcript1.com/pl/features/audio-na-tekst)
- [Wysyłanie plików (dokumentacja)](https://transcript1.com/pl/docs/uploads)
- [Transkrypcja wideo](https://transcript1.com/pl/features/transkrypcja-wideo)
