DokumentacjaSzybki start
Szybki start
Utwórz klucz API, wyślij link do nagrania lub plik i pobierz transkrypcję. Przykłady w cURL, Pythonie i Node.js.
API działa pod adresem https://api.transcript1.com. Do każdego requestu dodaj klucz API w nagłówku Authorization. Zacznij od utworzenia klucza, potem wyślij nagranie i pobierz gotowy tekst.
1. Załóż konto i wygeneruj klucz API
Załóż konto przez e-mail, Google lub Microsoft. Po potwierdzeniu e-maila dostajesz jednorazowo 60 minut za darmo. Jeśli rejestrujesz się przez Google lub Microsoft, masz je od razu. Nie musisz podawać karty.
Otwórz „API keys” w panelu pod adresem /dashboard/account/tokens i wygeneruj klucz. Rozpoznasz go po prefiksie t1_. Klucz zobaczysz tylko raz, więc od razu go skopiuj i ustaw zmienną środowiskową TRANSCRIPT1_API_KEY:
export TRANSCRIPT1_API_KEY="t1_..."2. Wyślij link do nagrania
Możesz wkleić link do nagrania z YouTube, X, TikToka, Instagrama, Facebooka, Bluesky, Twitcha, Dailymotion, Pinteresta, LinkedIn i Snapchata. W dokumentacji linków i ustawień sprawdzisz, jakie publiczne nagrania przyjmujemy i jakie są ograniczenia. Nie musisz podawać pola platform, bo API rozpoznaje platformę z linku. Poniżej użyjemy nagrania z YouTube.
Wyślij link przez POST /v1/transcriptions. Z parametrem query wait=60 serwer poczeka do 60 sekund, zanim odpowie. Ta odpowiedź nie zawiera jeszcze tekstu transkrypcji. W przykładzie w Pythonie pobierasz go osobnym requestem do GET /v1/transcriptions/:id?wait=60. SDK dla Node.js pobiera klucz z TRANSCRIPT1_API_KEY i samo obsługuje oczekiwanie.
cURL
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"}'Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['TRANSCRIPT1_API_KEY']}"}
response = requests.post(
"https://api.transcript1.com/v1/transcriptions?wait=60",
headers=headers,
json={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
response.raise_for_status()
transcription = response.json()
while True:
transcription = requests.get(
f"https://api.transcript1.com/v1/transcriptions/{transcription['id']}?wait=60",
headers=headers,
).json()
if transcription["status"] in ("completed", "failed", "canceled"):
break
if transcription["status"] == "completed":
print(transcription["transcript"]["text"])
else:
print(transcription["status"], transcription["error"])Node.js
Zapisz kod w pliku index.mjs. Jeśli wybierzesz plik .js, dodaj "type": "module" w package.json. Przykład uruchom poleceniem node index.mjs.
// npm i @transcript1/sdk
import { Transcript1 } from '@transcript1/sdk';
const t1 = new Transcript1();
const transcription = await t1.transcribe('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
console.log(transcription.transcript.text);Domyślnie najpierw sprawdzamy napisy w języku nagrania na YouTube, X, TikToku, Bluesky, Dailymotion i LinkedIn. Jeśli ich nie ma lub nie da się z nich skorzystać, AI przepisuje dźwięk. Na YouTube i X obsługa napisów działa tak jak dotychczas. Pozostałe platformy z napisami podają czasy całych segmentów, bez czasów pojedynczych słów. Nie każde nagranie ma napisy, których można użyć.
Jeśli ustawisz source=stt albo włączysz podział na rozmówców, od razu korzystasz z audio. Tryb captions (tylko napisy) nie pobiera dźwięku i nie uruchamia STT. Szczegóły znajdziesz w ustawieniach źródła transkrypcji.
3. Sprawdź status i pobierz tekst
Zacznij od kodu HTTP w odpowiedzi:
200: transkrypcja zakończyła się w czasie oczekiwania. Sprawdź, czy ma statuscompleted,failedczycanceled.202: transkrypcja jeszcze trwa. WywołujGET /v1/transcriptions/:id?wait=60, aż polestatuswskaże zakończenie. Każdy taki request czeka na odpowiedź do 60 sekund.
Po ukończeniu transkrypcji dostaniesz taki JSON. Tutaj pokazujemy go w skrócie:
{
"id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
"object": "transcription",
"status": "completed",
"transcript_source": "youtube_captions",
"language": "en",
"billed_minutes": 4,
"transcript": {
"text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
"speakers": [],
"segments": [
{ "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." },
{ "start": 4.2, "end": 9.8, "speaker": null, "language": "en", "text": "Today we are looking at how transcripts are made." }
]
}
}Cały tekst znajdziesz w transcript.text. W transcript.segments masz go podzielonego na segmenty. Każdy zawiera start i end, czyli czas początku i końca w sekundach.
Do pobrania zwykłego tekstu wybierz format text, a do napisów srt lub vtt:
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Endpoint GET /v1/transcriptions/:id?format=srt zwraca napisy dopiero przy statusie completed. Tak samo działają pozostałe formaty tekstowe. Zanim transkrypcja się skończy, dostaniesz JSON z jej aktualnym statusem.
4. Wyślij plik z dysku
Plik audio lub wideo do 95 MB wyślij jednym requestem jako multipart/form-data:
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected]Większe pliki, do 2 GB, wysyłaj w częściach. Jeśli upload się przerwie, możesz go wznowić. Instrukcję znajdziesz w dokumentacji wysyłania plików.
Co dalej
- Linki i ustawienia: wybierz napisy lub AI, język i podział na rozmówców.
- Wysyłanie plików: wrzuć plik jednym requestem lub podziel go na części.
- Webhooki: odbierz podpisany request po zakończeniu transkrypcji.
- Serwer MCP: podłącz transcript1 do Claude, ChatGPT, Cursor, VS Code lub Claude Code.
- Dokumentacja API: sprawdź wszystkie endpointy i parametry.
Ostatnia aktualizacja 14 października 2026