Introductie van BillionVerify: verifieer miljarden e-mails tegen 1% van de kosten. Probeer BillionVerify

transcript.im

REST API

Transcript API voor video en audio

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.
Transcript-API: een aanvraag met een videolink die een transcript in JSON met tijdstempels teruggeeft

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

Video-transcript-API: één API die YouTube, TikTok, Instagram, LinkedIn en X verbindt met transcripten met tijdstempels

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.

YouTube-transcript-API: een YouTube-link die van in de wachtrij naar een voltooid transcript gaat
  • 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

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.