Eranol LogoEranol
BlogCommunityDocumentationPricingSign In

General

OverviewGet Started

Universal

Add IntroAdd OutroAudio to VideoBackground AudioCaptions ApiComposeConcatConvert a video file to MP4Convert Audio to Mp3Convert Audio to wavConvert to JPGConvert to WebMConvert to WebPDenoiseEnhanceExtract audio track from a videoExtract images from a videoGenerate a GIF from a videoHighlightsImage TestMergeNotifyOverlayProgress BarReframeRemove SilenceThumbnailTikTokTrimVerifyWatermarkZoom

General

DeleteImage StatusStatusTikTok StatusFFmpeg Results

Need help?

Contact Support

Captions Api

POST

Generate captions from a video's audio using Vosk speech recognition and burn them onto the video with custom styling. Returns both the captioned video file and an SRT subtitle file. The pipeline: download → extract audio → transcribe → generate subtitles → burn onto video. positions : "bottom", "top", "center"

Overview

Generate captions from a video's audio using Vosk speech recognition and burn them onto the video with custom styling.

Returns both the captioned video file and an SRT subtitle file.

The pipeline: download → extract audio → transcribe → generate subtitles → burn onto video.

positions : "bottom", "top", "center"

Endpoint

POST https://eranol.com/api/v1/ffmpeg/video/caption

Request Body

{
  "url": "https://cdn.example.com/video.mp4",
  "language": "en",
  "position": "bottom",
  "font_size": 24,
  "font_color": "white",
  "padding_top": 30,
  "outline_color": "black",
  "outline_width": 2,
  "padding_bottom": 30,
  "max_words_per_line": 7,
  "max_segment_duration": 3
}

Response Example

{
  "job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
  "status": "pending",
  "message": "Job created. Poll status_url for progress.",
  "job_type": "caption",
  "result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
  "status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}

Supported Languages

Pass any code below as the language parameter. Omit it entirely to let the API auto-detect the language.

CodeLanguage
enEnglish
zhChinese
esSpanish
hiHindi
arArabic
frFrench
ptPortuguese
ruRussian
deGerman
jaJapanese
koKorean
itItalian
trTurkish
plPolish
nlDutch
viVietnamese
idIndonesian
thThai
msMalay
ukUkrainian
bnBengali
urUrdu
faPersian
svSwedish
roRomanian
csCzech
elGreek
huHungarian
daDanish
fiFinnish
noNorwegian
skSlovak
heHebrew
bgBulgarian
hrCroatian
srSerbian
taTamil
teTelugu
mlMalayalam
knKannada
guGujarati
mrMarathi
paPunjabi
afAfrikaans
amAmharic
asAssamese
azAzerbaijani
baBashkir
beBelarusian
boTibetan
brBreton
bsBosnian
caCatalan
cyWelsh
etEstonian
euBasque
foFaroese
glGalician
haHausa
hawHawaiian
htHaitian Creole
hyArmenian
isIcelandic
jwJavanese
kaGeorgian
kkKazakh
kmKhmer
laLatin
lbLuxembourgish
lnLingala
loLao
ltLithuanian
lvLatvian
mgMalagasy
miMaori
mkMacedonian
mnMongolian
mtMaltese
myBurmese
neNepali
nnNynorsk
ocOccitan
psPashto
saSanskrit
sdSindhi
siSinhala
slSlovenian
snShona
soSomali
sqAlbanian
suSundanese
swSwahili
tgTajik
tkTurkmen
tlTagalog
ttTatar
uzUzbek
yiYiddish
yoYoruba

Use Cases

1. English captions (default)

Request Body

{
  "url": "https://cdn.example.com/video.mp4",
  "language": "en",
  "position": "bottom",
  "font_size": 24,
  "font_color": "white",
  "padding_top": 30,
  "outline_color": "black",
  "outline_width": 2,
  "padding_bottom": 30,
  "max_words_per_line": 7,
  "max_segment_duration": 3
}

2. Auto-detect language

Request Body

{
  "url": "https://cdn.example.com/video.mp4",
  "position": "bottom",
  "font_size": 24,
  "font_color": "white",
  "padding_top": 30,
  "outline_color": "black",
  "outline_width": 2,
  "padding_bottom": 30,
  "max_words_per_line": 7,
  "max_segment_duration": 3
}

3. Spanish, top position

Request Body

{
  "url": "https://cdn.example.com/video.mp4",
  "language": "es",
  "position": "top",
  "font_size": 28,
  "font_color": "yellow",
  "padding_top": 40,
  "outline_color": "black",
  "outline_width": 2,
  "padding_bottom": 30,
  "max_words_per_line": 6,
  "max_segment_duration": 3
}

Error Codes

CodeMeaning
401Missing or invalid API key
402Insufficient credits
422Validation error — check your request body
429Rate limit exceeded — slow down requests
500Internal server error — try again or contact support