Burned-In Subtitles API
Captions baked into the frames — not a sidecar track
ZapCap renders styled captions permanently into the video itself and hands back a finished MP4. On TikTok, Reels, Shorts, and paid social, subtitle tracks get stripped or stay off by default. Burned-in captions always show — and they show in your style, not the platform default.
Why "burned-in" and not a subtitle file
A subtitle track is optional — the player decides whether to show it. Burned-in captions are part of the picture, so they survive re-uploads, downloads, and silent autoplay.
OPTION 01
- Player decides if it shows
- Stripped on most social re-uploads
- No styling control
- Off by default in feeds
OPTION 02
- You build font + layout logic
- You run the GPU/queue infra
- You handle line-breaking
- No preset styling
OPTION 03 · YOU ARE HERE
- Captions permanent in the frames
- Styled presets or full overrides
- h264 MP4 ready for any platform
- Webhook-native, no render infra
OPTION 04
- Full video generation
- Build the whole timeline
- Captions are one of many layers
- Heavier integration to add captions
From upload to burned-in MP4
Upload a clip, create a render task with a templateId, and collect the finished MP4 from the task status — or get a webhook. ZapCap handles transcription, styling, and the burn-in render.
- 1
Upload your video
POST the file to /videos. We stream it to storage and hand you back a videoId.
POSTPOST /videos - 2
Create the captioning task
One POST starts transcription, styling and rendering with your chosen template. Add a notification webhook to skip polling.
POSTPOST /videos/:id/task - 3
Receive the webhook
We POST status updates to your endpoint as the render moves through transcribing → rendering → completed.
HOOKPOST → your URL - 4
Download the finished render
Burned-in subtitles, served from a global CDN. No watermark. MP4 ready for any social platform.
GETGET renderUrl
POST /videos·Upload your video
One source clip, four burned-in looks
Each MP4 below is the same source rendered against a different templateId. Captions are baked into the pixels — nothing relies on a subtitle track being honored downstream.
Source is a 9:16 vertical clip. Because captions render into the frames, the output plays correctly on any platform, in any player, with sound off.
Brand the burn-in
Down to the keyword.
Send a templateId for a complete look, or override individual renderOptions so the baked-in captions match your brand. Because the styling is committed to the frames, get it right before the render — every control is a request field.
- Templates — Beast, Hormozi, Tracy, Devin, plus 25 more (29 presets) — each preset is a finished burned-in look.
- Keyword emphasis — flag punchwords; ZapCap colors / scales / boxes them so the hook lands in-frame.
- Font & shadow — fontUppercase, fontShadow none / s / m / l for legibility over busy footage.
- Layout — words per cue, vertical position with safe-zone math so captions clear platform UI.
- Aspect ratios — render 9:16, 1:1, 16:9 burned-in outputs from one source.
{
"templateId": "46d20d67-255c-4c6a-b971-31fddcfea7f0",
"renderOptions": {
"subsOptions": {
"emphasizeKeywords": true,
"animation": true,
"displayWords": 3
},
"styleOptions": {
"fontUppercase": true,
"fontShadow": "l"
}
}
}Auto-transcribe — or burn in your approved cues
Auto-transcribe
ZapCap transcribes, splits, and times captions for you. Review the cues on the task status, edit them, then trigger the burn-in render against the approved transcript.
- Inspect the transcript on the task status, edit via PUT /videos/:id/task/:taskId/transcript
- Fix any wording before it is committed to the frames
- Re-render the same transcript into multiple branded styles
Bring your own transcript
Already have approved copy? Send your own cues and ZapCap burns them in verbatim — no retranscription, no surprise wording in the final pixels.
- Supported via the SRT-to-burned-in workflow
- Lock in approved product names, claims, and disclaimers
- Burn the same script into N looks for A/B ad variants
Burned-in is the default — alpha and green-screen when you need them
Burned-in MP4
Styled captions permanently rendered into the source frames. Survives re-uploads, downloads, and silent autoplay — the right choice for TikTok, Reels, Shorts, and ad creative.
Transparent overlay
Need to composite captions over your own edit instead? Request an alpha-channel overlay and drop it onto a timeline — no chroma key.
Green-screen layer
For tools that don't support alpha. Caption layer on a #04F404 canvas you key out in OBS, a switcher, or your NLE.
Burned-in (open) captions are the right call for social and ad distribution. For accessibility, where viewers must toggle captions on and off, pair the MP4 with an exported SRT/VTT.
Burn captions in the viewer’s language
Set a target language on the task and ZapCap transcribes, translates, and burns captions in that language. CJK and Thai use language-aware line-breaking, so wrapped lines look right baked into the frames.
- Source in one language, burned-in captions in another
- A brand-term dictionary keeps product names accurate before they are committed to the frames
- Language-aware layout for Chinese, Japanese, Thai
Per-minute, usage-based credits
Pay for the minutes you render. Burned-in MP4 is the base rate; higher resolutions and alpha outputs use different multipliers — see pricing for the full table.
- Top up credits to keep renders flowing in production
- Volume credits available at scale
- No per-seat fee — pay for renders, not users
Indicative starting rate. Final pricing depends on render mode and output format. API access requires a Pro plan plus credits.
A performance-marketing team standardized burned-in caption styling across every ad variant by routing renders through the ZapCap API
Instead of hand-editing captions per cut, the team submits one transcript and renders branded, burned-in MP4s for each hook test. Captions land identically on every platform because they live in the frames.
Render burned-in subtitles from a task request
The default render task returns a finished h264 MP4 with captions baked into the frames. Add a webhook notification when you want delivery pushed into your pipeline.
- POST /videos uploads the source clip and returns videoId
- POST /videos/{videoId}/task with templateId starts the burn-in render
- The completed task returns downloadUrl for the captioned MP4
VIDEO_ID=$(curl -s -X POST "https://api.zapcap.ai/videos" \
-H "x-api-key: $ZAPCAP_KEY" \
-F "file=@clip.mp4" | jq -r .id)
TASK_ID=$(curl -s -X POST "https://api.zapcap.ai/videos/$VIDEO_ID/task" \
-H "x-api-key: $ZAPCAP_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "46d20d67-255c-4c6a-b971-31fddcfea7f0",
"autoApprove": true,
"language": "en",
"renderOptions": {
"subsOptions": { "animation": true, "displayWords": 3 }
}
}' | jq -r .taskId)
curl -H "x-api-key: $ZAPCAP_KEY" \
"https://api.zapcap.ai/videos/$VIDEO_ID/task/$TASK_ID"About the Burned-In Subtitles API
Burned-in (or "open") subtitles are captions rendered permanently into the video frames, so they are part of the picture itself rather than a separate, toggleable subtitle track. Because they are baked into the pixels, they always display — even when a player ignores or strips subtitle files, and even with sound off.
Related caption rendering APIs
Subtitle API
The umbrella styled subtitle rendering API: video in, captioned video out.
Read moreAnimated Captions API
TikTok / Reels / Shorts animated caption styles, rendered into the frames.
Read moreSRT to Burned-In Subtitles
Render an existing, approved SRT into a styled MP4 — no retranscription.
Read moreVideo Captioning API
Async upload → task → webhook/poll → download captioning for product pipelines.
Read moreTransparent Subtitle Overlays
The alpha-overlay output mode this page describes — a caption layer for NLE timelines, no chroma key.
Read moreGreen-Screen Subtitles API
The keyable green-canvas output mode for live tools and switchers that cannot read alpha.
Read moreFor performance creative
Standardize burned-in caption styling across every ad and hook variant.
Read morevs Creatomate API
Burning captions into your existing video vs. general template-based video automation.
Read morevs Submagic API
Caption-API comparison: pricing, output modes, webhooks, transcript reuse.
Read moreStart rendering burned-in captions through the API
Create a key on a Pro plan and buy credits in the dashboard.