# Bronnen en instellingen

> Welke videolinks werken? Kies ondertitels of AI-transcriptie en stel sprekerherkenning en taal in.

Canonical: https://transcript1.com/nl/docs/sources-and-options
Language: nl
Last updated: 2026-10-20

Stuur een videolink van YouTube, X, TikTok, Instagram, Facebook of Bluesky, of upload je eigen bestand. Hieronder vind je ook de andere platforms en de links die je daarvoor kunt gebruiken. Met `source`, `diarize` en `language` bepaal je hoe de transcriptie werkt. Je kunt deze velden weglaten of meesturen in de body van `POST /v1/transcriptions`.

## Welke videolinks werken?

Zet de link in `url`. De API herkent het platform zelf. Stuur je toch `platform` mee, dan moet die waarde overeenkomen met de link.

| Platform | Deze links kun je gebruiken |
|---|---|
| YouTube (`youtube`) | De URL-vormen in het YouTube-overzicht hieronder. |
| X (`x`) | Posts met video op `x.com` of `twitter.com`, bijvoorbeeld `https://x.com/user/status/1234567890`. |
| TikTok (`tiktok`) | Posts met video op `tiktok.com`. Ook korte links via `vm.tiktok.com`, `vt.tiktok.com` en `www.tiktok.com/t/`. |
| Instagram (`instagram`) | Reels en videoposts op `instagram.com` met `/reel/`, `/reels/`, `/p/` of `/tv/`. De gebruikersnaam mag ook vóór het reel- of postpad staan. |
| Facebook (`facebook`) | Video’s en reels op `facebook.com`, ook via watch-links. Korte links via `fb.watch`, `/share/v/` en `/share/r/` werken ook. |
| Bluesky (`bluesky`) | Posts met video op `bsky.app`, bijvoorbeeld `https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2`. |
| [Twitch](https://transcript1.com/nl/features/twitch-vod-transcriberen) (`twitch`) | VOD’s na afloop van de uitzending: `twitch.tv/videos/<id>` of `/<channel>/v/<id>`; `video` mag ook. Voor clips: `clips.twitch.tv/<slug>`, `twitch.tv/<channel>/clip/<slug>` en `/clip/<slug>`. Toegestane hosts zijn `twitch.tv`, `www`, `m`, `go` en `clips.twitch.tv`. |
| [Dailymotion](https://transcript1.com/nl/features/dailymotion-video-transcriberen) (`dailymotion`) | Gebruik `dailymotion.com/video/<id>`, eventueel met `_title`, of `/embed/video/<id>` of `dai.ly/<id>`. De hosts `www.dailymotion.com` en `touch.dailymotion.com` werken ook. |
| [Pinterest](https://transcript1.com/nl/features/pinterest-video-transcriberen) (`pinterest`) | Videopins die op Pinterest zelf staan, via `pinterest.com` of `www.pinterest.com`: `/pin/<id>/` of `/pin/<slug>--<id>/`. We gebruiken het eerste videoblok dat op Pinterest zelf staat. Externe embeds, afbeeldingen, borden, `pin.it` en regionale domeinen werken niet. |
| [LinkedIn](https://transcript1.com/nl/features/linkedin-video-transcriberen) (`linkedin`) | Openbare videoposts op `linkedin.com` of `www.linkedin.com`, met `/posts/<slug>-<activity-id>-<four-character-suffix>` of `/feed/update/urn:li:activity:<id>/`. Profielen, LinkedIn Learning, evenementen en `lnkd.in` werken niet. |
| [Snapchat Spotlight](https://transcript1.com/nl/features/snapchat-spotlight-transcript) (`snapchat`) | Spotlight-video’s via `/spotlight/<id>` op `snapchat.com` of `www.snapchat.com`. Stories en profielen werken niet. |

Voor de vijf extra platforms moet de link HTTPS gebruiken, zonder inloggegevens of afwijkend poortnummer. Gebruik een link naar één openbare opname. Privéposts, posts waarvoor je moet inloggen, livestreams en streams die nog worden verwerkt werken niet. Dat geldt ook voor profielen, feeds en verzamelingen. We sturen geen accountcookies mee. Een tijdparameter in de URL kort de opname niet in. Bij Twitch-clips en Snapchat Spotlight kan `media_id` een string zijn die je niet uit de URL kunt afleiden. Bewaar die waarde ongewijzigd.

Op X, TikTok, Instagram, Facebook en Bluesky moet de post openbaar zijn. Staan er meerdere video’s in, dan transcribeert transcript1 alleen de eerste. Gebruik geen profiel, story, livepagina of TikTok-fotopost. Moet je inloggen om de post te bekijken, dan krijg je `login_required`. Heeft de video geen audiospoor, dan krijg je `no_audio`. In beide gevallen betaal je niets.

Bij YouTube, X, TikTok, Bluesky, Dailymotion en LinkedIn kun je ondertitels gebruiken als er een bruikbaar spoor in de oorspronkelijke taal is. Dat verschilt per video. Voor Instagram, Facebook, Twitch, Pinterest en Snapchat kies je `auto` of `stt`: die platforms gebruiken AI-speech-to-text en accepteren geen `captions`.

Je betaalt voor elk platform en elke upload hetzelfde tarief per minuut, op basis van de gemeten duur. Alleen de hierboven genoemde korte links werken. Wil je een eerdere transcriptie hergebruiken, stuur dan de volledige postlink. Een deellink zonder post-id kunnen we bij het indienen niet aan een eerdere transcriptie koppelen.

| Platform | Welke ondertitels krijg je? |
|---|---|
| YouTube en X | De bestaande ondertitelsporen. Alleen automatisch gegenereerde YouTube-ondertitels hebben tijdstempels per woord. |
| TikTok | De VTT- of SRT-ondertitels die bij de video beschikbaar zijn, met tijdstempels per segment. |
| Bluesky | Ondertitels bij video’s die rechtstreeks op de ondersteunde, vertrouwde PDS staan. Geen andere federatiehosts en geen geciteerde of externe video’s. Je krijgt tijdstempels per segment. |
| Dailymotion | Rechtstreeks beschikbare SRT-bestanden, geen playlists met ondertitels. Je krijgt tijdstempels per segment. Herkende en-auto/fr-auto-sporen krijgen de waarde auto_generated. |
| LinkedIn | VTT-sporen bij openbare video’s die op LinkedIn zelf staan, niet bij LinkedIn Learning. Je krijgt tijdstempels per segment. |

## Welke YouTube-URL kun je gebruiken?

Zet de volledige videolink in `url`. Laat `platform` weg of geef `youtube` mee. Deze URL-vormen werken met en zonder `www.`:

| Soort link | Voorbeeld |
|---|---|
| Gewone videopagina | `https://www.youtube.com/watch?v=dQw4w9WgXcQ` |
| Korte link | `https://youtu.be/dQw4w9WgXcQ` |
| Shorts | `https://www.youtube.com/shorts/dQw4w9WgXcQ` |
| Embed | `https://www.youtube.com/embed/dQw4w9WgXcQ` |
| Live | `https://www.youtube.com/live/dQw4w9WgXcQ` |
| Mobiele site en YouTube Music | `https://m.youtube.com/watch?v=dQw4w9WgXcQ`, `https://music.youtube.com/watch?v=dQw4w9WgXcQ` |

De API negeert extra queryparameters zoals `t`, `list` en `si`. Alle URL-vormen van een video verwijzen dus naar dezelfde video. Alleen de video-id van 11 tekens meesturen is niet genoeg: je hebt een volledige URL nodig. Bij een kanaalpagina, een link naar alleen een afspeellijst of een andere ongeldige link krijg je `422 invalid_url`. Geef je een onbekende waarde voor `platform` mee, dan krijg je `422 unsupported_platform`, met de toegestane waarden in `supported_platforms`.

Je kunt openbare en verborgen YouTube-video’s transcriberen. Een privévideo geeft `media_private`, een video met leeftijdsbeperking `age_restricted` en een livestream `live_stream`. Heb je zelf het bestand, dan kun je het [uploaden](https://transcript1.com/nl/docs/uploads).

## source

Met `source` kies je of transcript1 ondertitels ophaalt of de audio transcribeert.

| Waarde | Wat doet transcript1? |
|---|---|
| `auto` (standaard) | Probeert op YouTube, X, TikTok, Bluesky, Dailymotion en LinkedIn eerst bruikbare ondertitels in de oorspronkelijke taal. Lukt dat niet, dan transcribeert AI de audio. |
| `captions` | `captions` (alleen ondertitels) haalt geen audio op en gebruikt geen AI-speech-to-text. Deze optie werkt alleen op platforms met ondertitelondersteuning. Zonder bruikbaar spoor krijg je `no_captions` en betaal je niets. Mislukt het ophalen van de ondertitelinhoud, dan krijg je `fetch_failed`. Op de andere platforms geeft deze optie `422 invalid_request`. |
| `stt` | Transcribeert altijd de audio met AI-speech-to-text. |

Voor bestanden gebruiken we altijd speech-to-text. Bij een upload kun je `source` dus op `auto` of `stt` zetten. Met `captions` krijg je `422 invalid_request`.

Een ondertitelspoor is alleen bruikbaar als de taal past bij je request. Bij `language` op `auto` gebruiken we de oorspronkelijke taal van de video. Voor YouTube gebruiken we ondertitels die de maker heeft geüpload of die YouTube in die taal heeft gegenereerd. Automatisch vertaalde ondertitels gebruiken we nooit. Eerst komen door de maker geüploade ondertitels, daarna sporen met onbekende herkomst en tot slot automatisch gegenereerde ondertitels. Een onbekende herkomst betekent niet dat de maker ze heeft aangeleverd.

Voor X halen we de beschikbare VTT-sporen op. Die hebben alleen tijdstempels per segment, ook als de ondertitels automatisch zijn gegenereerd. Bij auto schakelen we over op STT als de ondertitelinhoud ontbreekt of niet te parsen is. Dat gebeurt niet bij fouten in de routering, opslag of programmacode. Met `stt` slaan we ondertitels altijd over.

## diarize

Zet `diarize` aan voor sprekerherkenning. Standaard staat het op `false`.

- Sprekerherkenning werkt via speech-to-text. Bij `source` op `auto` ga je met `diarize: true` daarom meteen naar audio, zonder eerst ondertitels te proberen.
- Combineer je `source: "captions"` met `diarize: true`, dan krijg je `422 invalid_request`.
- Je krijgt labels zoals `Speaker 1` en `Speaker 2`. Die staan in `transcript.speakers` en in `speaker` bij elk segment. In `text` en `srt` staat `Speaker 1: ` vóór de tekst; `vtt` gebruikt de voice-tag `<v Speaker 1>`.

```json
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }
```

## language

Laat `language` op `auto` staan of geef een ISO 639-1-code van twee letters mee, zoals `en`, `de` of `es`. `auto` is de standaardwaarde.

- Voor ondertitels bepaalt dit welk taalspoor je krijgt. Met `auto` kiest transcript1 de oorspronkelijke taal van de video.
- Voor speech-to-text geven we de code als taalhint mee aan de provider. Met `auto` werkt taalherkenning automatisch. Elk segment krijgt een eigen `language`.

In het transcriptieobject staat de meest gesproken taal in `language`.

## Wat staat er in het transcript?

Aan `transcript_source` zie je waar de tekst vandaan komt: `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` of `speech_to_text`. Bij ondertitels geeft `caption_kind` meer informatie: `manual`, `auto_generated` of `null` bij onbekende herkomst. Presenteer null niet als door de maker geüploade ondertitels.

| | `youtube_captions`, `caption_kind` `manual` | `youtube_captions`, `caption_kind` `auto_generated` | `speech_to_text` |
|---|---|---|---|
| Segmenten | Eén per ondertitelblok | Eén per ondertitelblok | Een nieuw segment bij een andere spreker, een andere taal, een leesteken dat een zin afsluit of na maximaal 15 seconden |
| Tijdstempels per woord met `include=words` | Geen: `words` is `null` | Begintijd per woord; de eindtijd is de begintijd van het volgende woord | Begin- en eindtijd per woord, met `confidence` |
| Sprekerherkenning | Nee | Nee | Ja, als `diarize` `true` is |
| Taal | Taal van het ondertitelspoor | Taal van het ondertitelspoor | Per segment |

De tekst van YouTube-ondertitels nemen we ongewijzigd over, inclusief tags zoals `[Music]`. Voor speech-to-text mag een opname maximaal 5 uur duren. Bij een langere opname krijg je `media_too_long`.

Bij X (`x_captions`), TikTok, Bluesky, Dailymotion en LinkedIn hebben ondertitels alleen tijdstempels per segment. Ook met `include=words` blijft elk segment `words: null` houden, ongeacht of het spoor automatisch is gegenereerd. Sprekerherkenning ontbreekt ook. Wil je tijdstempels per woord, kies dan `source: "stt"`. Voor sprekerherkenning gebruik je `diarize: true` met `auto` of `stt`.

## Wat kost het?

Voor ondertitels en speech-to-text betaal je evenveel: één credit per minuut van de opname, naar boven afgerond. Met `source` kies je dus hoe de tekst wordt gemaakt, niet het tarief. Lees meer over [minuten, abonnementen en limieten](https://transcript1.com/nl/docs/billing-and-limits).
