Generate video transcripts
api.video's AI-driven transcription feature can generate video transcripts using a single API call. You can now avoid manually uploading captions, as the generated transcripts are available as video captions in the standard WebVTT format.
Enable your audience to have seamless user experience regardless of their language or location, and also provide more inclusive and accessible content by inviting deaf or hard-of-hearing users!
api.video uses Whisper for multilingual speech recognition in videos. With data security in mind, we run Whisper's ASR models on our own infrastructure and do not expose data outside our service. You control who gets access to your videos and transcripts.
How to generate transcripts
To enable transcription, set these
optional
parameters when you create a video object using a
POST
request to the
Create video object endpoint
:
| Field | Type | Description |
|---|---|---|
transcript
|
boolean
|
When
true
, the API generates a transcript for the video. The default value is
false
.
|
language
|
string
|
A valid language identifier using
IETF language tags
. You can use primary subtags like
en
or
fr
.
When the value in your request does not match any covered language, the API returns an error. |
The API generates transcripts using the
transcript
parameter. You can define the video
language
, and the API creates a transcript of the video using the language you specify. If you do not specify a language for the video, the API will detect it automatically.
If you do not set the
language
parameter, the API analyzes the first
30 seconds
of the video and determines the language. When this analysis does not have confident results, for example in case of low quality audio, the API does not generate a transcript.
To help you understand how a video's language was defined, the API returns the
languageOrigin
attribute in the response when you create a video object:
| Field | Type | Description |
|---|---|---|
languageOrigin
|
string
|
Returns the origin of the last update on the video's
language
attribute.
The possible values are: api
and
auto
.
- api
means that the last update was requested from the API.
- auto
means that the last update was done automatically by the API.
|
About the
language
parameter
When you set the
language
parameter, make sure that it matches the actual language used in the video. Your setting forces the API to transcribe in that language. Mismatching language settings or videos with dialogue in multiple languages can return low quality transcripts.
language
is a permanent attribute of a video object. You can update it to another language using the
PATCH /videos/{videoId}
operation. This triggers the API to generate a new transcript using a different language.
When the API generates a transcript, it will be available as a caption for your video. Your audience will be able to select it during video playback. You can interact with captions generated through transcription using the Captions endpoints .
Subscribe to the
video.caption.generated
webhook to get a notification when an automatically generated caption is complete.
Examples
Transcribe a video regardless of the language, using
POST /videos
:
{
"title": "An awesome video",
"transcript": true
}
Transcribe a video and force the source language to English, using
POST /videos
:
{
"title": "Yet another awesome video",
"language": "en",
"transcript": true
}
Generate transcript for a previously uploaded video, using
PATCH /videos/{videoId}
:
{
"language": "en",
"transcript": true
}
Set a default language for a new video, using
POST /videos
:
{
"title": "Another awesome video",
"language": "en"
}
Set a default language for an existing video, using
PATCH /videos/{videoId}
:
{
"language": "fr"
}
Supported languages
Transcription is currently available for these languages:
| Language | IETF Language Tag |
|---|---|
| Arabic |
ar
|
| Catalan |
ca
|
| Czech |
cs
|
| Danish |
da
|
| German |
de
|
| Greek |
el
|
| English |
en
|
| Spanish |
es
|
| Persian |
fa
|
| Finnish |
fi
|
| French |
fr
|
| Hebrew |
he
|
| Hindi |
hi
|
| Croatian |
hr
|
| Hungarian |
hu
|
| Italian |
it
|
| Japanese |
ja
|
| Korean |
ko
|
| Malayalam |
ml
|
| Dutch |
nl
|
| Norwegian Nynorsk |
nn
|
| Norwegian |
no
|
| Polish |
pl
|
| Portuguese |
pt
|
| Russian |
ru
|
| Slovak |
sk
|
| Slovenian |
sl
|
| Telugu |
te
|
| Turkish |
tr
|
| Ukrainian |
uk
|
| Urdu |
ur
|
| Vietnamese |
vi
|
| Chinese |
zh
|
Next steps
-
Learn more about the WebVTT format and managing captions in the Captions guide
-
Check out other AI-driven features like video translation and AI summary in our blog