Scale & automation
One master, every market.
Localize a single JSON project with variables and per-language subtitles, iterate an array of locales into scenes, then bulk render the entire language set in one authenticated call.
Localization
Build the video once, ship it in every language
Author one JSON master project, then localize it with {{placeholder}} substitution: swap headline copy, on-screen media, currency, and CTAs per market without touching the layout. You get up to 200 type-preserving variables nested up to 8 levels, all resolved server-side before a single credit is spent.
To turn one master into a full language set, feed an array of locales into an iterate block — Zvid expands one scene per language with an alias and auto index, and auto-chains the transitions between them. Layer in per-language subtitles imported from SRT, VTT, ASS/SSA, or Whisper JSON, then bulk render the entire set in one authenticated call that returns hosted cdn.zvid.io URLs.
What you get
Everything a multi-market rollout needs
Swap copy per market
Bind headlines, CTAs, currency, and media to {{placeholder}} variables — up to 200 per project, type-preserving and nested up to 8 levels — so one layout serves every locale.
Iterate a language array
Feed an array of locales into an iterate block and Zvid expands one scene per language with an alias plus auto index, auto-chaining the transitions between them.
Per-language subtitles
Import SRT, VTT, ASS/SSA, or Whisper JSON per locale and render word-level captions through libass in any of 12 animated modes.
Bulk render the set
Submit up to 500 localized renders in one call with best-effort validation — valid items queue, invalid ones return in itemErrors by index under a single batch id.
Show or hide by locale
Use the condition field to include or drop scenes and elements per market — a legal line in one region, an extra CTA in another — all resolved server-side.
Right captions, right region
Position captions in any of 8 on-screen spots with active-word styling and caption box or outline, tuned per language for TikTok and Reels.
200
Variables per project
500
Renders per call
4
Subtitle import formats
12
Animated caption modes
Under the hood
The features that make it work
Templates, Variables & Logic
Save a project once, render it with different data forever. Placeholders, conditional scenes, and array iteration resolve server-side before validation.
Bulk Rendering
Fan one template out into up to 500 renders in a single call. Each item is validated and billed on its own, so one bad payload never sinks the batch.
Subtitles & Captions
Word-timed captions with 12 animated styles — karaoke, highlight, typewriter, pop, and more. Import SRT, VTT, ASS, or Whisper JSON, or author by hand.
JSON Video API
Render a finished, hosted video from one authenticated POST. Send an inline JSON project or a template id and get back a job you can poll or get pinged about.
Who it's for
Teams that build this with Zvid
Marketing teams
Turn one on-brand template into a full campaign of videos and social images. Bind {{variables}}, fire a bulk call, and get back hosted cdn.zvid.io URLs — no designer in the loop.
Explore →Growth & performance marketers
Spin up dozens of ad-creative variants from one JSON template and a variables map. Bulk up to 500 renders per call, each returned as a hosted cdn.zvid.io URL ready for the ad network.
Explore →Developers
Make rendering an HTTP call. One authenticated POST returns a 202 with a job id, and a per-request webhook pings you when your hosted cdn.zvid.io URL is ready — no polling, no headless browser.
Explore →Related use cases
More for teams like yours
Personalized video at scale
One video per lead, customer, or account — your rows merged into a template and rendered at scale. POST up to 500 renders in a single call, each pulling {{variables}} from one row, and get back hosted cdn.zvid.io URLs.
Explore →Ad creative at scale
Turn one JSON template into dozens of performance-ad variants — video and static image, every aspect ratio. Bulk up to 500 renders per call, driven by type-preserving variables.
Explore →Social media videos
Turn one JSON project into Reels, Shorts, Stories and TikToks — captions the feed rewards, 18 aspect-ratio presets to fit every placement, and batch renders that fill a whole posting calendar.
Explore →FAQ
Frequently asked questions
How do I generate the same video in 20 languages? +
Author one master project, then either iterate an array of 20 locales into a scene or drive 20 renders from bulk with per-locale variables. Each render returns its own hosted cdn.zvid.io URL, and you can submit up to 500 items in a single call.
Can each language have its own subtitles? +
Yes. Import per-language captions from SRT, VTT, ASS/SSA, or Whisper JSON, with word-level timing, up to 20 words per line, active-word styling, and 8 on-screen positions rendered through ASS/libass.
Does Zvid translate the copy or generate the voice-over? +
No — you provide the translated text (via variables or subtitle files) and any voice-over audio you upload. Zvid renders your localized JSON deterministically with FFmpeg so every market's output is reproducible and frame-accurate.
Explore more: see every use cases
Ready to ship video at scale?
Start free — your first render is only a JSON payload away.