Add Subtitles to Video – Auto Captions, Burn SRT (Whisper) avatar

Add Subtitles to Video – Auto Captions, Burn SRT (Whisper)

Pricing

from $40.00 / 1,000 subtitled minute (up to 720p)s

Go to Apify Store
Add Subtitles to Video – Auto Captions, Burn SRT (Whisper)

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

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

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

  1. Paste one or more direct video file links into Video file URLs (Dropbox and Google Drive share links are converted automatically).
  2. Pick a caption style preset (classic, boxed, social, bold-yellow) and optionally fine-tune it.
  3. Optional: to burn your own subtitles, write video-url | subtitle-url on one line, or fill Your SRT / VTT subtitle URLs in the same order as the videos.
  4. 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
}
PresetLook
classicwhite bold Poppins, black outline, bottom, up to 2 lines × 6 words
boxedwhite text on a 65% black box, bottom (YouTube/Netflix look)
social3 big UPPERCASE words, middle of the frame, spoken word in yellow (TikTok/Reels/Shorts)
bold-yellowtall 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.

Jobup to 720p1080p
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):

ActorPricing model1-minute 1080p video with auto captions
This Actorper output minute$0.08 (720p $0.06, own SRT from $0.04)
kantolabs/auto-captions-lyric-videoper output minute$0.08
dami_studio/auto-caption-burnerper 30-s block$0.08
lumaxys/media-to-professional-subtitlesstart fee + per minute$0.11
seemuapps/social-video-downloader-transcriberper video + per minute~$0.18
agentutilitylabs/short-video-assemblerper video$0.20
dadhalfdev/add-subtitles-to-videosper 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.

  • 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).