diff --git a/job-types/captions-animate.mdx b/job-types/captions-animate.mdx
index cd2d11d..bfff9f5 100644
--- a/job-types/captions-animate.mdx
+++ b/job-types/captions-animate.mdx
@@ -1,9 +1,9 @@
---
title: "captions.animate"
-description: "Burn animated word-level captions onto a video at $0.10/min. Pick a preset (hormozi, mrbeast, tiktok, pill). Single speaker, 5 min input cap."
+description: "Burn animated word-level captions onto a video at $0.10/min. 11 presets, custom position, translation, AI keyword highlighting, and SRT/VTT output."
icon: "captions"
tag: "Live"
-keywords: ["animated captions", "burn subtitles", "auto captions", "tiktok captions", "subtitles", "captions.animate"]
+keywords: ["animated captions", "burn subtitles", "auto captions", "tiktok captions", "subtitles", "caption translation", "captions.animate"]
canonical: "https://rendobar.com/docs/job-types/captions-animate"
---
@@ -15,9 +15,9 @@ canonical: "https://rendobar.com/docs/job-types/captions-animate"
"@type": "TechArticle",
"@id": "https://rendobar.com/docs/job-types/captions-animate/#article",
"headline": "captions.animate",
- "description": "Burn animated word-level captions onto a video. Pick a preset (hormozi, mrbeast, tiktok, pill). Single speaker, 5 min input cap.",
+ "description": "Burn animated word-level captions onto a video. Choose from 11 presets, override the style, translate, highlight key words, and return SRT/VTT.",
"datePublished": "2026-05-03",
- "dateModified": "2026-05-24",
+ "dateModified": "2026-06-13",
"author": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
"publisher": { "@type": "Organization", "@id": "https://rendobar.com/#organization" },
"isPartOf": { "@id": "https://rendobar.com/#website" }
@@ -29,10 +29,10 @@ canonical: "https://rendobar.com/docs/job-types/captions-animate"
**Live.** Production-ready, available on all plans.
-Returns a video with word-level animated captions burned in. Speech is automatically transcribed, segmented into timed cues, and rendered as styled subtitles burned onto the source.
+Returns a video with word-level animated captions burned in. Speech is automatically transcribed, segmented into timed cues, and rendered as styled subtitles burned onto the source. Pick a built-in preset or override any part of the style. Optionally translate the captions, let AI highlight the key words, and get the transcript back as SRT and VTT.
-**Timeout:** 600 s · **Accepts:** video · **Limits:** single speaker, 5 min input
+**Timeout:** 600 s · **Accepts:** video · **Limits:** single speaker
## Request
@@ -96,10 +96,88 @@ res = requests.post(
+A fuller example, using a different preset, top placement, Spanish translation, AI highlighting, and the caption data returned alongside the video:
+
+```json
+{
+ "type": "captions.animate",
+ "inputs": {
+ "source": "https://cdn.rendobar.com/assets/examples/sample.mp4"
+ },
+ "params": {
+ "preset": "neon",
+ "style": { "position": "top", "entrance": "pop" },
+ "translateTo": "es",
+ "autoEmphasis": true,
+ "captionData": true
+ }
+}
+```
+
+## Inputs
+
+
+ URL to the source video. An uploaded asset's content URL works too.
+
+
+
+ Optional SRT or VTT URL. When provided, its text is animated and transcription is skipped (bring your own transcript).
+
+
+
+ Optional font file URL (TTF/OTF). Set `style.font` to this font's family name to render captions in it.
+
+
## Parameters
- Built-in caption style. One of: `hormozi`, `mrbeast`, `tiktok`, `pill`.
+ Built-in caption style. One of: `hormozi`, `mrbeast`, `tiktok`, `pill`, `karaoke`, `word-pop`, `minimal`, `subtitle-block`, `neon`, `gold`, `reveal`.
+
+
+
+ Override the preset. Any field set here wins over the preset; unset fields fall through. Supply `style` with no `preset` to start from the default base.
+
+
+
+ Font family name (a bundled font, or the family name of a font you passed via the `font` input).
+
+
+ `upper` or `normal`.
+
+
+ Inactive-word colour, `#RRGGBB`.
+
+
+ `{ "color": "#RRGGBB", "width": }`.
+
+
+ Shadow distance in px.
+
+
+ Caption placement: `top`, `center`, or `bottom`.
+
+
+ Active (spoken) word treatment: `{ "color": "#RRGGBB", "scale": <100-200> }`.
+
+
+ Accent colour for AI-highlighted words: `{ "color": "#RRGGBB" }`. Used with `autoEmphasis`.
+
+
+ Per-word entrance: `fade` or `pop`. Words reveal one by one as they're spoken.
+
+
+
+
+
+ Also return the caption data on `output.data`: the word-level transcript plus SRT and VTT, alongside the burned video.
+
+
+
+ Let the model highlight the important words in an accent colour (the `style.emphasis` colour, or the preset's accent). Falls back to no emphasis if unavailable.
+
+
+
+ Translate the captions into this language before animating: `es`, `fr`, `de`, `pt`, `it`, or `nl`. Omit to keep the original language.
@@ -119,7 +197,23 @@ res = requests.post(
{ "data": { "id": "job_abc123", "status": "dispatched" } }
```
-Poll `GET /jobs/{id}` until `status: "complete"`, then read `output.file.url` (signed, 1-hour TTL). The captioned video is a single file, so `output.files` lists that one file.
+Poll `GET /jobs/{id}` until `status: "complete"`, then read `output.file.url` (signed, 1-hour TTL). The captioned video is a single file.
+
+When `captionData` is `true`, `output.data` also carries the transcript:
+
+```json
+{
+ "output": {
+ "file": { "url": "https://..." },
+ "data": {
+ "language": "en",
+ "words": [{ "text": "hello", "start": 0.0, "end": 0.32 }],
+ "srt": "1\n00:00:00,000 --> 00:00:01,400\nHello world\n",
+ "vtt": "WEBVTT\n\n00:00:00.000 --> 00:00:01.400\nHello world\n"
+ }
+ }
+}
+```
## Pricing