01The bottleneck
The group sells the same catalogue through several regional storefronts, each with its own paid-social calendar. Every product launch shipped one master video ad — and then a designer manually re-cut subtitled variants for each market, by hand, in a video editor.
The master was the easy part. The localization was the bottleneck: every market's variant queued behind the same one or two editors, and a single product refresh could stall the whole paid-social calendar for days.
- ·Designer re-opened the master clip per market
- ·Subtitles re-typed and re-styled by hand each time
- ·Variants queued behind one or two editors
- ·Burned-in text occasionally overran the 9:16 safe zone
- ·One master clip, automated per-market subtitle variants
- ·Consistent caption styling across every storefront
- ·Burned-in MP4 plus transparent overlay for the design team
- ·Per-storefront cost attribution for ad budgets
- ·No editor as a single point of failure on launch day
02The ZapCap workflow
The localization step moved out of the editor and into their product-feed pipeline. When a master video lands, the pipeline fans out one ZapCap task per target market.
For each market the backend POSTs the master source URL to /videos, then creates a task per market with the selected language and a fixed brand templateId. ZapCap returns a taskId; the webhook handler verifies the x-signature, dedupes on eventId, and stores each market's renderUrl against the product record.
Burned-in .mp4 (h264) feeds the ad platforms directly. For markets where the design team wants to composite over a different background, the same task can request the transparent (prores4444 / vp9 alpha) output instead.
03Technical implementation
The work landed as a fan-out step inside the existing product-feed pipeline rather than a new service. When a master uploads, the pipeline reads the storefront list and fires one task per market.
Failure handling. ZapCap is treated as a normal upstream: signed webhooks, eventId-based dedupe so retry storms never double-attach a render, and a per-market status column so a single failed market re-queues without touching the others.
- Fan-out step in the product-feed pipeline — one ZapCap task per active storefront market.
- One brand templateId (UUID from GET /templates) shared across markets for consistent caption styling.
- Webhook handler · x-signature verified, eventId-deduped, renderUrl stored per market.
- Dual output — burned-in .mp4 for ad platforms, transparent overlay on request for the design team.
- Per-storefront cost tag on each task so per-minute usage maps back to a market budget.
- Per-market retry — a single failed market re-queues independently of the rest of the fan-out.
04What changed
The editor stopped being the bottleneck. Localization became a pipeline step, not a person. A product refresh now fans out to every market the moment the master lands, instead of waiting in an edit queue.
Cost reporting got cleaner too. Per-minute usage is tagged per storefront, so each market budget sees its own localization spend instead of one shared design-team line item.
- ·Manual re-cut per market in a video editor
- ·Variants queued behind one or two designers
- ·A product refresh could stall paid social for days
- ·Burned-in text sometimes clipped the safe zone
- ·Localization spend buried in one design line item
- →Automated fan-out — one task per market
- →No editor as a single point of failure
- →Turnaround moved from days to hours per drop
- →Captions respect the 9:16 safe zone in every template
- →Per-minute usage attributed per storefront budget
05In their words
Every product launch used to mean a designer re-cutting the same video for every market. Now the master uploads once and each storefront gets its localized cut automatically. Localization stopped being a queue.