Wyślij nagranie jednym requestem
Dodaj nagranie w polu file. Opcjonalnie podaj language, diarize, source lub webhook_url. Sprawdź przykład multipart. Jeśli chcesz dostać powiadomienie po przetworzeniu, dodaj webhook.
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 -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected] \
-F language=autoZarezerwuj 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.
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.
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.
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.
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, a o pracy z wypowiedziami uczestników w poradniku transkrypcji wywiadów.