DocumentatieJe eerste transcriptie
Je eerste transcriptie
Van API-sleutel tot transcript. Transcribeer een videolink of bestand met cURL, Python of Node.js.
Met een API-sleutel kun je meteen aan de slag. Je stuurt requests naar https://api.transcript1.com en geeft je sleutel mee in de Authorization-header. Hieronder maak je een sleutel aan, start je een transcriptie en haal je de tekst op.
1. Maak je account en API-sleutel aan
Maak een account aan met je e-mailadres, Google of Microsoft. Na bevestiging van je e-mailadres krijg je eenmalig 60 gratis minuten. Bij registratie via Google of Microsoft staan die meteen klaar. Je hoeft geen creditcard op te geven.
Open “API keys” in het dashboard op /dashboard/account/tokens en maak een API-sleutel aan. Die begint met t1_. Kopieer de sleutel meteen: je krijgt hem maar één keer te zien. Stel daarna TRANSCRIPT1_API_KEY in:
export TRANSCRIPT1_API_KEY="t1_..."2. Stuur een videolink
Je kunt links gebruiken van YouTube, X, TikTok, Instagram, Facebook, Bluesky, Twitch, Dailymotion, Pinterest, LinkedIn en Snapchat. In Bronnen en instellingen staat welke openbare opnames je kunt transcriberen en wat de beperkingen zijn. Je hoeft platform niet mee te sturen: de API herkent het platform aan de link. Hieronder gebruiken we een YouTube-video.
Start de transcriptie met POST /v1/transcriptions. Met de queryparameter wait=60 blijft de verbinding maximaal 60 seconden open. Deze response bevat nog geen transcript. Het Python-voorbeeld haalt de tekst apart op via GET /v1/transcriptions/:id?wait=60. Met de Node.js-SDK hoef je dat niet zelf te regelen: de SDK leest TRANSCRIPT1_API_KEY en wacht op de tekst.
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
Sla het voorbeeld op als index.mjs en start het met node index.mjs. Wil je een .js-bestand gebruiken, zet dan "type": "module" in package.json.
// 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);Voor YouTube, X, TikTok, Bluesky, Dailymotion en LinkedIn kijkt transcript1 eerst of er bruikbare ondertitels in de oorspronkelijke taal zijn. Zo niet, dan transcriberen we de audio met AI. De bestaande ondertitelverwerking voor YouTube en X blijft daarbij gelijk. Buiten YouTube krijg je bij ondertitels alleen tijdstempels per segment, niet per woord. Niet elke video heeft ondertitels die je kunt gebruiken.
Met source=stt of sprekerherkenning kies je direct voor audio. De optie captions (alleen ondertitels) haalt juist nooit audio op en gebruikt geen STT. Bekijk Bronnen en instellingen om je keuze te bepalen.
3. Haal het transcript op
De HTTP-status vertelt je of je nog moet wachten:
200: de transcriptie is binnen de wachttijd afgerond metcompleted,failedofcanceled.202: de transcriptie loopt nog. RoepGET /v1/transcriptions/:id?wait=60aan. Ook dat request wacht maximaal 60 seconden. Herhaal dit totdatstatuseen eindstatus heeft.
Bij een geslaagde transcriptie krijg je dit object terug. Voor de leesbaarheid is het ingekort:
{
"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." }
]
}
}De volledige tekst staat in transcript.text. In transcript.segments vind je de tekst per segment, met start en end in seconden.
Wil je tekst of een ondertitelbestand downloaden? Kies text, srt of vtt:
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=srt" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Met GET /v1/transcriptions/:id?format=srt haal je bijvoorbeeld SRT op. Die bestandsformaten zijn pas beschikbaar bij completed. Zolang de transcriptie niet klaar is, krijg je een JSON-object met de status.
4. Probeer een eigen bestand
Een audio- of videobestand op je computer stuur je als multipart/form-data. Tot 95 MB kan dat met één request:
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected]Is het bestand groter? Tot 2 GB kun je het in chunks uploaden. Als de verbinding wegvalt, stuur je daarna alleen de ontbrekende delen. Lees verder bij Bestanden uploaden.
Verder met je integratie
- Bronnen en instellingen: kies ondertitels of AI-transcriptie en stel sprekerherkenning en taal in.
- Bestanden uploaden: stuur een bestand in één keer of in chunks.
- Webhooks: laat je server een ondertekend request ontvangen zodra een transcriptie is afgerond.
- MCP-server koppelen: transcribeer vanuit Claude, ChatGPT, Cursor, VS Code of Claude Code.
- API-referentie: zoek een endpoint of parameter op.
Laatst bijgewerkt 14 oktober 2026