---
title: "Transcript API voor video en audio"
description: "Zet links van YouTube, TikTok, Instagram, LinkedIn en Twitter/X om in transcripts met tijdstempels via één REST API — eerst ondertitels, AI als die ontbreken."
canonical: "https://transcript.im/nl/api"
markdown: "https://transcript.im/nl/api.md"
---

# Transcript API voor video en audio

Zet links van YouTube, TikTok, Instagram, LinkedIn en Twitter/X om in transcripts met tijdstempels via één REST API — eerst ondertitels, AI als die ontbreken.

## Links

- [Canonieke HTML](https://transcript.im/nl/api)
- [Markdown](https://transcript.im/nl/api.md)


transcript.im biedt dezelfde extractiepijplijn die het product aandrijft aan als een transcript API met versiebeheer. Stuur een video- of audio-URL en ontvang tekst met tijdstempels terug, in JSON of platte tekst, waarbij het platform voor je wordt gedetecteerd. Bestaande ondertitels worden eerst gebruikt; heeft een video die niet, dan transcribeert AI de audio en wordt het resultaat asynchroon geleverd.

- Eén `url` accepteert een volledige of verkorte link en detecteert YouTube, TikTok, Instagram, LinkedIn en Twitter/X; voor YouTube wordt ook een kaal video-id herkend, en `platform` plus `externalId` dekken een bron die je al kent.
- Ondertitels worden eerst gebruikt; AI transcribeert de gesproken audio wanneer een video die niet heeft, en een upload van een lokaal bestand gaat altijd naar spraakherkenning.
- `format=json` geeft segmenten met tijdstempels terug, terwijl `format=text` platte tekst teruggeeft die klaar is om te plakken.
- Batch-extractie dekt URL-lijsten, playlists en kanalen.
- Batch-exports dekken txt, csv, json, srt, vtt en zip; een opgeslagen transcript download je als txt, srt, vtt, json of md.
- Opgeslagen transcripts staan in de Library van je account, en YouTube-discovery dekt zoeken, video's, kanalen, uploads, playlists en ondertitels.
- Het volledige contract is gepubliceerd als een OpenAPI-document.

## Wat de transcript.im API doet

De transcript.im API verandert een openbare video- of audiolink in een transcript met tijdstempels dat je product kan lezen, opslaan, doorzoeken of aan een model kan voeren. Je stuurt een URL; de API bepaalt het platform, zoekt naar de bestaande ondertiteltrack van de maker en geeft de geschreven tekst terug met een tijdstempel op elke regel. Heeft een video helemaal geen ondertitels, dan stopt de API niet bij een fout — hij valt terug op AI-transcriptie van de gesproken audio, zodat hetzelfde verzoek alsnog tekst oplevert.

Dat ene gedrag is precies het punt van een transcript-extractie-API: je hebt geen aparte downloader, caption scraper en spraak-naar-tekst-dienst nodig die aan elkaar zijn geknoopt. De API kiest de goedkoopste bron die voor elke link werkt, houdt de tijdstempels in lijn met wat er daadwerkelijk is gezegd en meldt in welke taal het resultaat terugkomt. Een transcript dat al bestaat, komt direct terug; een video die spraakherkenning nodig heeft, wordt als taak doorgegeven, zodat een lange opname je verzoek nooit openhoudt.

- Eén verzoek, echte tekst — los een link op en krijg transcriptsegmenten met tijdstempels of platte tekst terug.
- Eerst ondertitels, dan AI — gebruik de track van de maker als die bestaat, transcribeer de audio als dat niet zo is.
- Standaard async voor ASR — met een job-id kun je een lange transcriptie pollen zonder te blokkeren.
- Taalbewust — geef een taalprioriteit op en lees de taal terug die de API heeft bepaald.
- Platformonafhankelijk — de aanroeper hoeft niet te weten waar de video wordt gehost.

## Eén transcript-API voor vijf platforms

### YouTube

Transcripten voor elke openbare YouTube-video, Short of live-opname, waarbij eerst de ondertitels van de maker worden gebruikt en AI-transcriptie als ondertitels ontbreken. YouTube is ook het platform met een volledig discovery-oppervlak — zoeken, video's, kanalen, uploads, playlists en ondertitels — beschikbaar naast het transcript zelf. Een kanaalbacklog of een playlist wordt een batch transcripten met tijdstempels, terwijl een enkele link terugkomt als leesbare, doorzoekbare tekst.

### TikTok

Transcripten voor openbare TikTok-video's, waarbij ondertitels eerst worden gebruikt en spraakherkenning als terugvaloptie dient. Plak een videolink en lees de gesproken inhoud als schone tekst met tijdstempels die je kunt hergebruiken, vertalen of citeren. Dezelfde aanroep dekt zowel een korte clip als een langere upload, dus een trend, een tutorial en een talking-head-post komen allemaal als tekst terug.

### Instagram

Transcripten voor openbare Instagram Reels en videoposts. Instagram heeft geen ondertiteltrack om te lezen, dus extractie verloopt via asynchrone spraakherkenning: dien de link in, poll de taak en haal de tekst op zodra die klaar is. Zo wordt een Reel citeerbaar en doorzoekbaar, ook al heeft het platform de woorden nooit als tekst gepubliceerd.

### LinkedIn

Transcripten voor openbare LinkedIn-videoposts, waarbij ondertitels eerst worden gebruikt en spraakherkenning als terugvaloptie dient. Het resultaat komt terug met tijdstempels, dus een talk, een productclip of een opgenomen vergadering wordt doorzoekbare tekst die je kunt citeren en hergebruiken. Haal het betoog uit een webinaropname, of zet een update van een oprichter om in een concept dat je kunt bewerken.

### Twitter/X

Transcripten voor openbare X-videoposts. X heeft geen ondertiteltrack om te lezen, dus extractie verloopt via asynchrone spraakherkenning: dien de link in, poll de taak en verzamel tekst met tijdstempels die je kunt doorzoeken. Citeer een video nauwkeurig, of archiveer de gesproken inhoud voordat de post wordt bewerkt of verwijderd.

## Hoe een transcriptverzoek verloopt

Eén aanroep brengt een link of een geüpload bestand van invoer naar transcript, en de API vertelt je welk pad is gevolgd.

- Stuur de bron — post een `url`, geef `platform` en `externalId` mee als je ze al kent, of upload een bestand als `multipart/form-data` naar hetzelfde endpoint.
- Krijg een ondertitelmatch — als de video ondertitels heeft in een taal op jouw lijst, komt het transcript direct in het antwoord terug.
- Vang een taalmismatch op — bestaan er wel ondertitels maar past geen enkele bij jouw lijst, dan gaat het verzoek verder naar AI-transcriptie en krijg je `202` met een job-id; een `404` met `availableLanguages` komt alleen terug als spraakherkenning niet is toegestaan voor de aanroeper.
- Forceer ASR of val erop terug — een expliciete `asr`-vermelding, een video zonder enkele ondertiteltrack of een geüpload bestand start een ASR-taak en geeft een job-id terug.
- Poll of stream — lees de taak met `GET /v1/transcript/job/{id}` tot die slaagt of mislukt, of abonneer je op de `/events`-stream voor server-sent voortgang. Een taakquery geeft `200`, zelfs bij een mislukte taak, dus vertak op het veld `status`.
- Lees het resultaat — een afgerond transcript bevat de bepaalde taal, lengte, segmenten met tijdstempels en, indien opgevraagd, metadata zoals titel, auteur en publicatiedatum.
- Herhaal veilig — een transcript dat al is geëxtraheerd, wordt uit de cache geleverd in plaats van een nieuwe taak te starten, zodat dezelfde bron opnieuw kan worden opgevraagd.
- Inspecteer eerst — `GET /v1/transcript/info` lost een bron op en somt de talen op die het kan leveren voordat je een extractie start.

Omdat hetzelfde endpoint zowel een cachehit als een nieuwe extractie bedient, hoeft je integratie niet op de bron te vertakken: die stuurt altijd de bron en reageert op de status die terugkomt. Een ondertitelmatch levert het transcript direct, een taalmismatch gaat verder naar AI-transcriptie en geeft `202` met een job-id, en een echt ontbrekend bestand of een niet-toegestane terugval geeft `404`. Elk pad levert dezelfde transcriptvorm zodra de tekst klaar is.

## Batch-extractie en exports

Echte workloads stoppen zelden bij één video, dus accepteert de API een batch als URL-lijst, playlist of kanaal. Elke batch houdt zijn eigen totalen bij — hoeveel items in behandeling zijn, hoeveel er zijn geslaagd en hoeveel er zijn mislukt — en levert items pagina voor pagina, zodat een lang kanaal niet als één enorm pakket binnenkomt.

- Drie batchvormen — `POST /v1/batch` accepteert een lijst URL's, een playlist of een kanaal, bepaald door de body die je stuurt.
- Onafhankelijke status — een mislukte link wordt apart gemarkeerd en gooit nooit de rest van de batch weg; mislukte items kunnen opnieuw worden geprobeerd met `/retry`.
- Gepagineerde items — lees de batch met `GET /v1/batch/{batchId}` en volg daarna de teruggegeven paginatoken voor de resterende items.
- Live voortgang — elke poll geeft bijgewerkte aantallen terug, zodat een aanroeper kan tonen hoeveel van een lange run klaar is.
- Exporteer in jouw formaat — download een afgeronde batch via `/export` als `txt`, `csv`, `json`, `srt`, `vtt` of `zip`.

Voor een ondertitelpijplijn passen de `srt`- en `vtt`-exports direct in een editor of speler. Voor een archief houden `csv`, `json` en `zip` een hele bibliotheek met opnames doorzoekbaar als één corpus. De formaten sluiten aan op de antwoorden voor één transcript, dus een consumer die één resultaat aankan, weet al hoe die een batch moet lezen.

## Opgeslagen transcripten in de accountbibliotheek

Extractie en opslag staan los van elkaar: een transcript wordt onderdeel van de accountbibliotheek zodra het is opgeslagen, en in de bibliotheek kun je het later lezen, doorzoeken, downloaden en verwijderen zonder de extractie opnieuw uit te voeren.

- Toon opgeslagen inhoud — `GET /v1/library/transcripts` bladert door de transcripten, batchrecords en mislukte-geschiedenisregels van het account, met zoeken, platform- en taalfilters en sortering.
- Lees één item — `GET /v1/library/transcripts/{platform}/{externalId}` geeft een opgeslagen transcript terug op basis van platform en external id, of voor de taal die je opgeeft.
- Downloaden — de route `/download` exporteert een opgeslagen transcript als `txt`, `srt`, `vtt`, `json` of `md`.
- Gerelateerde inhoud — de route `/related` somt andere opgeslagen items van hetzelfde kanaal op.
- Verwijderen — `DELETE` haalt een item uit de bibliotheek zonder andermans kopie aan te raken.
- Leesacties binnen het account — een bibliotheekverzoek geeft alleen terug wat het account heeft opgeslagen en start nooit een nieuwe extractie, dus een opgeslagen transcript opnieuw bezoeken is een leesactie, geen nieuwe taak.

## YouTube Discovery verder dan transcripten

YouTube is het platform waar de API ook de vragen rond een transcript beantwoordt, met dezelfde resourcenamen als de YouTube Data API.

- Zoeken — `GET /v1/youtube/search` vindt video's, kanalen of playlists op query en geeft met cursor gepagineerde resultaten terug.
- Video's — `GET /v1/youtube/videos` geeft details van een video terug, waaronder of ondertitels beschikbaar zijn.
- Kanalen — `GET /v1/youtube/channels` lost een kanaal op via id of `@handle`.
- Kanaaluploads — `GET /v1/youtube/channels/{channelId}/videos` doorloopt de uploads van een kanaal.
- Playlistitems — `GET /v1/youtube/playlists/{playlistId}/items` doorloopt een playlist.
- Ondertitels — `GET /v1/youtube/captions` geeft de metadata van de ondertiteltrack en de ondertiteltekst van een video terug. Het start nooit een spraakherkenningstaak: meldt het `requiresAsync`, roep dan `POST /v1/transcript` aan om de transcriptie uit te voeren.

Discovery beantwoordt wat je moet transcriberen; extractie beantwoordt wat er is gezegd. Door de twee gescheiden te houden, kun je eerst zoeken en opsommen en daarna alleen de links die je kiest in een transcript- of batchverzoek stoppen.

## Gebouwd voor productiegebruik

Het oppervlak is bewust klein, en de onderdelen die voor een service belangrijk zijn, zijn gedocumenteerd in plaats van geraden.

- Eén credential — authenticeer met een API key die als Bearer token wordt verzonden, of met `X-API-Key` vanuit een script of server.
- Scoped keys — verleen alleen de scopes die een aanroeper nodig heeft, waarbij `transcripts` en `batches` extractie en batchwerk dekken.
- Gestructureerde fouten — fouten bij extractie en validatie retourneren een foutobject met een stabiele `code` en een leesbare `message`; authenticatie (401) en rate-limit (429) responses gebruiken een eenvoudiger platte foutbody.
- Bruikbare limieten — een rate-limited request retourneert `429` met `Retry-After`, en succesvolle responses bevatten `X-RateLimit-*` headers zodat een client correct kan backoffen.
- Een gepubliceerd contract — het volledige OpenAPI-document onderbouwt de API, zodat je een client kunt genereren, een server kunt mocken of echte responses kunt valideren tegen het schema.
- Een tegenhanger voor agents — hetzelfde account en dezelfde tools zijn bereikbaar via de transcript.im MCP server als jouw aanroeper een AI-client is in plaats van een service.

## Gerelateerd

- [API-documentatie](/docs)
- [OpenAPI-document](/docs/openapi.json)
- [MCP server](/nl/mcp)
- [Agent Skills](/nl/skills)
- [YouTube transcript generator](/nl/youtube-transcript)
- [YouTube video summarizer](/nl/youtube-video-summarizer)
- [YouTube subtitle generator](/nl/youtube-subtitle-generator)
- [YouTube subtitle downloader](/nl/youtube-subtitle-downloader)
- [YouTube channel transcript](/nl/youtube-channel-transcript)
- [YouTube playlist transcript](/nl/youtube-playlist-transcript)
## FAQ's over de Transcript API

### Wat is de transcript.im API?

De transcript.im API is een REST-interface die een openbare video- of audiolink omzet in een transcript met tijdstempels, waarbij eerst bestaande ondertitels worden gebruikt en AI-transcriptie wanneer een video er geen heeft.

### Welke platforms ondersteunt de transcript.im API?

Het haalt transcripts op van YouTube, TikTok, Instagram, LinkedIn en Twitter/X door het platform te herkennen aan de link die je verstuurt. YouTube, TikTok en LinkedIn gebruiken eerst ondertitels met spraakherkenning als terugvaloptie; Instagram en X hebben geen ondertitelspoor en gaan direct naar spraakherkenning.

### Wat gebeurt er als een video geen ondertitels heeft?

Als een video helemaal geen ondertitelspoor heeft, start de API een ASR-taak en retourneert een job-id; je pollt die taak tot het transcript klaar is, zodat het request nooit blokkeert op spraakherkenning.

### Kan ik een lokaal audio- of videobestand transcriberen?

Ja. `POST /v1/transcript` accepteert een `multipart/form-data`-body met een `file`-deel in plaats van een URL. Een geüpload bestand gaat direct naar spraakherkenning, dus het retourneert een `202`-taak — of een `200`-resultaat als het binnen het wachtbudget klaar is.

### Kan de transcript.im API tijdstempels bij de tekst retourneren?

Ja. JSON-responses bevatten segmenten met tijdstempels en tekstresponses kunnen per regel een tijdstempel-voorvoegsel behouden, zodat je terug kunt springen naar het moment waarop een regel werd uitgesproken.

### Hoe vraag ik een transcript in een specifieke taal aan?

Stuur een kommagescheiden prioriteitenlijst van talen, inclusief `asr`- en `asr-<code>`-vermeldingen. Een overeenkomst met ondertitels wordt direct geretourneerd; als er ondertitels bestaan maar geen enkele overeenkomt met de lijst, gaat het request verder naar AI-transcriptie en retourneert een `202`-taak, en een `404` met de beschikbare talen wordt alleen geretourneerd wanneer spraakherkenning niet is toegestaan.

### Hoe weet ik wanneer een asynchroon transcript klaar is?

Poll `GET /v1/transcript/job/{id}` met dezelfde credential tot deze success of failed meldt, of abonneer je op `GET /v1/transcript/job/{id}/events` voor server-sent updates. Een jobquery retourneert `200`, zelfs als de taak is mislukt, dus lees de velden `status` en `error` in plaats van de HTTP-code.

### Ondersteunt de transcript.im API batch-extractie?

Ja. Een batch accepteert een lijst met URL's, een afspeellijst of een kanaal, houdt de status van elk item bij en retourneert items pagina per pagina.

### Welke exportformaten kan ik downloaden?

Een voltooide batch exporteert als `txt`, `csv`, `json`, `srt`, `vtt` of `zip`; een enkel opgeslagen transcript downloadt als `txt`, `srt`, `vtt`, `json` of `md`.

### Waar staan opgeslagen transcripts?

De Library van het account is waar opgeslagen transcripts en batchrecords staan, onder `/v1/library`. Het biedt routes voor list, read, download, related en delete, en de reads zijn beperkt tot het account en starten nooit een nieuwe extractie.

### Wat retourneert het YouTube-ondertitelendpoint?

`GET /v1/youtube/captions` retourneert de metadata van het ondertitelspoor van een video samen met de ondertiteltekst. Het start nooit een spraakherkenningstaak; wanneer het `requiresAsync` meldt, roep dan `POST /v1/transcript` aan om de transcriptie uit te voeren.

### Hoe rapporteert de transcript.im API fouten en rate limits?

Fouten bij extractie en validatie gebruiken een object met een `code` en `message`; authenticatie retourneert een platte `401`, en rate limiting retourneert een platte `429` met `Retry-After` plus `X-RateLimit-*` headers zodat een client correct kan backoffen.

## Voeg transcripts toe aan je product

Maak een API key aan, stuur een videolink of een lokaal bestand en lees het transcript terug als JSON of platte tekst.

- [API key aanmaken](/app/account/api-keys)
- [Lees de documentatie](/docs)
