Auto Caption & Subtitle Burner avatar

Auto Caption & Subtitle Burner

Pricing

Pay per event

Go to Apify Store
Auto Caption & Subtitle Burner

Auto Caption & Subtitle Burner

Add animated word-by-word captions to any video. Give a video URL, get the video back with subtitles burned in, plus SRT + word timestamps. 5 styles, full control, no login, no watermark. For TikTok, Reels, Shorts, podcasts, courses, ads, interviews — any spoken video.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Give it a public video URL and it returns the same video with animated word-by-word captions burned in, plus the matching SRT file and word-level timestamps. It is built for short-form vertical content (TikTok, Reels, Shorts) but works on anything with speech: podcasts, course lessons, ads, interviews. No login, no watermark on the output.

How it works

The actor downloads your video, pulls the audio with ffmpeg, runs it through Whisper for word-level timestamps, builds an ASS subtitle track in the preset you picked, and re-encodes the video with the captions burned in using x264. The active word is highlighted as it is spoken.

Input

FieldRequiredNotes
videoUrlyesPublic direct URL to the source video (.mp4 / .mov / .webm). You host it (S3, a CDN, a Drive direct link). Nothing is scraped.
presetnoVisual style of the captions. One of hormozi, beast, tiktok, clean, karaoke. Defaults to hormozi.
languagenoISO-639-1 code of the spoken language (en, es, fr, ...). Leave as auto to detect it.
allCapsnoForce captions to uppercase, overriding the preset.
fontSizenoOverride the preset font size, in px at 1080 width (24-200).
primaryColornoHex color of inactive words, e.g. #FFFFFF.
highlightColornoHex color of the currently-spoken word, e.g. #FFE000.
positionnoWhere captions sit: top, center, or bottom.
wordsPerGroupnoHow many words are on screen at once (1-8).
crfnox264 quality. Lower is better and bigger. 18 is visually lossless, 23 is smaller. Defaults to 18.
openaiApiKeynoYour OpenAI key for Whisper. Required unless the actor owner has set a shared key. Stored as a secret.

Every preset sets a sane font, size, outline, and highlight color. The style override fields only change the parts you specify and leave the rest of the preset alone.

Output

Each run pushes one dataset record with the source dimensions, duration, word count, and the full transcript text. The rendered files land in the run's key-value store: the captioned MP4, an SRT file, and a JSON file of per-word timestamps (word, start, end). The dataset record's output object holds the keys and public URLs for the MP4 and SRT.

Example

{
"videoUrl": "https://example.com/my-short.mp4",
"preset": "hormozi",
"language": "auto",
"allCaps": true,
"highlightColor": "#FFE000"
}

Pricing

$0.08 per minute of video, pay per result, no subscription.

Notes

Transcription runs on Whisper, so you need an OpenAI key in openaiApiKey unless the owner has configured a shared one. Word timing is only as good as the audio: clean speech maps cleanly, heavy background noise or music can drift the highlights. The source has to be reachable at a direct URL, since the actor downloads the file rather than scraping a page.