Skip to content

Timed transcript and word timings

GET/v1/clips/{clipId}/transcript

Returns the caption cues of a clip in order, plus the per-word timings that back the word index. Cue indexes are stable: cue 7 of a clip stays cue 7 across responses, so a caller can cache the transcript and reference cues by index.

Transcripts come from the platform's automatic captions. They are accurate enough for highlighting and seeking, and they are not a human transcription: expect occasional wrong words, and no speaker labels beyond the >> markers the source provides.

Parameters

NameInTypeDefaultRequiredDescription
clipIdpathstringyesVocaflare clip id (UUID) or the YouTube video id.
wordsquerybooleantruenoInclude the words array. Set to false for the cues alone.

Response

FieldTypeDescription
clipIdstring (uuid)
videoIdstring
languagestring
sourceauto-captionsHow the transcript was produced.
cuesobject[]
cues[].idxintegerPosition in the transcript. Stable across responses.
cues[].t0numberStart time in seconds.
cues[].t1numberEnd time in seconds.
cues[].textstring
wordsobject[]
words[].wordIdinteger
words[].wordstring
words[].levelA1 | A2 | B1 | B2 | C1 | C2CEFR level assigned during screening.
words[].tStartnumber

Errors

StatusCodeWhen
401invalid_keyThe key is missing, unknown or disabled.
404not_foundNo such clip, or the word is not in the catalogue.
429rate_limitedToo many requests, or the plan quota is spent. Retry-After carries the wait in seconds.

Example

bash
curl https://clips.vocaflare.com/v1/clips/FinOIdu21XA/transcript \
  -H "Authorization: Bearer $VOCAFLARE_API_KEY"
json
{
  "clipId": "0f2a6c1e-88d7-4f0a-9f0b-1b7a2c3d4e5f",
  "videoId": "FinOIdu21XA",
  "language": "en",
  "source": "auto-captions",
  "cues": [
    {
      "idx": 6,
      "t0": 10.9,
      "t1": 12.2,
      "text": "and then a few days later"
    },
    {
      "idx": 7,
      "t0": 12.2,
      "t1": 14.05,
      "text": "you receive the confirmation email"
    }
  ],
  "words": [
    {
      "wordId": 4127,
      "word": "receive",
      "level": "B1",
      "tStart": 12.34
    }
  ]
}

Metadata only. Playback runs on YouTube, through your own embed.