Add Subtitles to Video – Auto Captions, Burn SRT (Whisper)
Pricing
from $40.00 / 1,000 subtitled minute (up to 720p)s
Add Subtitles to Video – Auto Captions, Burn SRT (Whisper)
Add subtitles to video automatically: Whisper auto captions in 99 languages burned into MP4, or burn your own SRT/VTT. TikTok-style word highlight, uppercase, box, colours, font size, position. Get MP4 + SRT + VTT links. From $0.04 per video minute.
Pricing
from $40.00 / 1,000 subtitled minute (up to 720p)s
Rating
0.0
(0)
Developer
Cemal Atakli
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Share
Add Subtitles to Video – Auto Captions & Burn SRT (Whisper)
Add subtitles to any video automatically. Give the Actor direct links to your videos (MP4, MOV, WebM, MKV). It transcribes the speech with OpenAI Whisper (99 languages, or translate to English), splits it into short, readable captions and burns them into the video with FFmpeg. Already have subtitles? Supply an SRT or VTT file and the Actor just burns it in, cheaper. You get a ready-to-post MP4 with hard-coded captions plus .srt and .vtt files and the full transcript, all as download links.
- 🎬 Auto captions: Whisper
tiny/base/small, automatic language detection, word-level timing - 🔥 Burn SRT / VTT you already have (hardsub), with the same styling options
- 📱 TikTok / Reels / Shorts style: big UPPERCASE words in the middle, the spoken word highlighted in yellow
- 🎨 Style it: 4 presets + font, font size, position (bottom / middle / top), max words per line, lines per caption, text / outline / highlight colours, background box and opacity, uppercase, bold
- 📄 Outputs: subtitled MP4 (H.264/AAC, up to 1080p, landscape or vertical), SRT, VTT, transcript text, detected language
- 💸 Pay per video minute, from $0.04. Errors are free.
What can I use it for?
- Social media captions: add animated-style subtitles to TikToks, Reels and YouTube Shorts in bulk, so videos watched without sound still get the message across.
- Accessibility: open captions for training videos, webinars, product demos and lectures.
- Translate videos: English subtitles for videos in Spanish, German, Turkish, Japanese… (
task: translate). - Hardsub existing subtitles: burn the SRT from your editor, translator or another Apify transcription Actor into the video, for platforms that do not support subtitle files.
- Pipelines: run after an Actor that outputs video file URLs, or from Make, Zapier, n8n or your backend via API.
How to use
- Paste one or more direct video file links into Video file URLs (Dropbox and Google Drive share links are converted automatically).
- Pick a caption style preset (classic, boxed, social, bold-yellow) and optionally fine-tune it.
- Optional: to burn your own subtitles, write
video-url | subtitle-urlon one line, or fill Your SRT / VTT subtitle URLs in the same order as the videos. - Click Start. Download the MP4/SRT/VTT from the dataset links or the key-value store.
With no input, the Actor subtitles a 23-second public-domain NASA interview clip so you can see the result in ~10 s.
Input example
{"videoUrls": ["https://cdn.example.com/reels/clip-01.mp4","https://cdn.example.com/webinar.mov | https://cdn.example.com/webinar-en.srt"],"captionStyle": "social","marginPercent": 20,"position": "bottom","highlightColor": "#00E5FF","model": "base","language": "auto","maxResolution": "1080","maxDurationMinutes": 30}
| Preset | Look |
|---|---|
classic | white bold Poppins, black outline, bottom, up to 2 lines × 6 words |
boxed | white text on a 65% black box, bottom (YouTube/Netflix look) |
social | 3 big UPPERCASE words, middle of the frame, spoken word in yellow (TikTok/Reels/Shorts) |
bold-yellow | tall yellow Anton font, uppercase, lower third |
Font size and outline are given in pixels for a 1080-pixel short side and scale automatically, so the same settings look the same on 1920×1080, 1080×1920 and 1280×720 videos.
Output example
One dataset row per video (errors are separate, free rows):
{"url": "https://upload.wikimedia.org/wikipedia/commons/b/b8/The_Numbers_Are_In-…_Gavin_Canned_Interview_pt_2%29.webm","status": "ok","mode": "auto-transcribed","videoFileUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/001-The-Numbers-Are-In-Where-Does-2021-Rank-subtitled.mp4","srtFileUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/001-The-Numbers-Are-In-Where-Does-2021-Rank.srt","vttFileUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/001-The-Numbers-Are-In-Where-Does-2021-Rank.vtt","language": "en","languageProbability": 0.78,"durationSeconds": 23.11,"outputSeconds": 23.11,"truncated": false,"output": {"width": 1920, "height": 1080, "fps": 10.0, "sizeBytes": 3326586, "format": "mp4"},"captionStyle": "classic","captionCount": 5,"wordCount": 52,"text": "Last year was the sixth warmest year on record, which is slightly down from the warmest year on record that we had last year. …","srt": "1\n00:00:05,710 --> 00:00:09,030\nLast year was the sixth warmest\nyear on record, which is slightly\n…","billableMinutes": 1,"billedEvents": {"burned-minute-1080p": 1, "transcribed-minute": 1},"processingSeconds": 6.0}
The run summary (videos, minutes, events, stop reason) is in the key-value store record OUTPUT.
Pricing
Pay per started minute of the output video. No subscription; failed videos are never charged.
| Job | up to 720p | 1080p |
|---|---|---|
| Burn your own SRT/VTT | $0.04 / min | $0.06 / min |
| Auto captions (Whisper base/tiny) + burn | $0.06 / min | $0.08 / min |
| Auto captions (Whisper small) + burn | $0.09 / min | $0.11 / min |
Events: burned-minute $0.04, burned-minute-1080p $0.06, transcribed-minute $0.02, transcribed-minute-small
$0.05. A 30-second 1080p Reel with auto captions costs $0.08; a 10-minute 720p webinar $0.60, or $0.40 with your SRT.
Set Maximum cost per run and the Actor stops cleanly (it even cuts the last video at the affordable minute).
How this compares with other subtitle burners in the Apify Store (public prices, October 2026):
| Actor | Pricing model | 1-minute 1080p video with auto captions |
|---|---|---|
| This Actor | per output minute | $0.08 (720p $0.06, own SRT from $0.04) |
| kantolabs/auto-captions-lyric-video | per output minute | $0.08 |
| dami_studio/auto-caption-burner | per 30-s block | $0.08 |
| lumaxys/media-to-professional-subtitles | start fee + per minute | $0.11 |
| seemuapps/social-video-downloader-transcriber | per video + per minute | ~$0.18 |
| agentutilitylabs/short-video-assembler | per video | $0.20 |
| dadhalfdev/add-subtitles-to-videos | per video | $0.50 |
FAQ
Can I use YouTube, TikTok or Instagram links? No. Their terms of service forbid downloading videos with third-party tools, so these links are rejected (free error row). Use a direct link to a file you own or may edit: your CDN, S3/R2/GCS, Dropbox or Google Drive (shared as "Anyone with the link").
Which languages are supported? Whisper's 99 languages with automatic detection. Set language (e.g. es, de,
tr, ja) for short or noisy clips. task: translate gives English subtitles for any language. Captions in
Arabic, Cyrillic, Hindi, Chinese, Japanese and Korean are rendered with Noto fonts.
How accurate is it? base is good for clear speech; small is noticeably better for accents, background noise
and non-English. Add names and jargon to Vocabulary hint. You also get the SRT, so you can fix a word and re-run
with your corrected SRT at the cheaper burn-only price.
Does it keep the original quality? Subtitles are burned into the picture, so the video is re-encoded (H.264, CRF
23 balanced; choose high for bigger, sharper files). 4K inputs are scaled to 1080p; frame rates above 30 fps are
reduced to 30 (configurable). Audio is copied when it is already AAC.
How long can a video be? 30 minutes by default (maxDurationMinutes, up to 180). Longer videos are cut (or
skipped) and you pay only for the output minutes. Processing takes roughly 0.3–0.5× the video length at 1080p.
Vertical 9:16 videos? Yes, 1080×1920 and 720×1280 keep their shape; font sizes scale with the short side. For
TikTok/Reels set marginPercent to ~20 to keep captions above the app's buttons.
Where are the files? In the run's key-value store, with public links in each dataset row (videoFileUrl,
srtFileUrl, vttFileUrl). They follow your Apify data-retention settings.
Use with AI agents / Apify MCP
The Actor works as a tool for AI agents through the Apify MCP server (Claude, Cursor, VS Code,
ChatGPT connectors): add gazidev/video-auto-subtitles, then ask e.g. "Add TikTok-style captions to these three
videos and give me the download links". Input is plain JSON (videoUrls, captionStyle…), output rows contain the
MP4/SRT/VTT links and the transcript, so agents can chain it with publishing or translation steps.
Via API: POST https://api.apify.com/v2/acts/gazidev~video-auto-subtitles/run-sync-get-dataset-items?token=… with
the input JSON.
Related Actors
- Audio & Video Transcriber (
gazidev/media-transcriber): transcripts and SRT/VTT for audio, video and podcast RSS feeds, without burning. - Video Converter & Compressor (
gazidev/media-converter): compress, convert, MP4 to MP3, GIFs.
Fonts: Poppins, Anton and Bebas Neue (SIL Open Font License, see fonts/), Noto and DejaVu (system packages).