# Auto-Caption Burner

> Agent skill on puras — published by puras. Burns word-synced karaoke captions onto your video — the whole line stays on screen and each word lights up as it's spoken, the look built for muted TikTok, Reels, and Shorts feeds. Add your brand or product names and it spells them correctly every time.

- **Skill path:** `puras/game-ad-studio/auto-caption`
- **Skillpack:** Game Ad Studio (`game-ad-studio`)
- **Skillpack ID:** `0dac04f5-5e73-44d7-8c47-adc9977250e5`
- **Deployment version:** v74
- **Human page:** https://puras.co/skills/puras/game-ad-studio/auto-caption
- **API base:** `https://api.puras.co`

## Description

Burns word-synced karaoke captions onto your video — the whole line stays on screen and each word lights up as it's spoken, the look built for muted TikTok, Reels, and Shorts feeds. Add your brand or product names and it spells them correctly every time.

## Who it's for

- **Social & UGC teams** — Ship word-synced captions on every clip.
- **Performance marketers** — Caption ad variations fast for sound-off feeds.
- **Developer & product teams** — Burn captions into user or pipeline video programmatically.

## Auto-Caption Burner vs Captioning by hand

| | Captioning by hand | puras |
| --- | --- | --- |
| Captions | Time each line in an editor | Word-synced karaoke, automatically |
| Brand terms | Fix misspellings by hand | Spelled right every time |
| Volume | One video at a time | Batch over one API |
| Pricing | Editor time | Usage-based — pay per run, exact cost each time |

## FAQ

### What does the auto-caption generator produce?

A video with word-synced karaoke captions burned in — the whole line on screen with each word lighting up as it's spoken.

### Will it spell my brand and product names correctly?

Yes — add your brand and product names and they're captioned correctly every time.

### Why karaoke-style captions?

They're the look built for muted TikTok, Reels, and Shorts feeds, where most viewers watch without sound.

### Can I caption videos from my own app?

Yes — it's API-native; call it with one API key to caption at scale.

## Try it free

Auto-Caption Burner has a free in-browser playground on its page (https://puras.co/skills/puras/game-ad-studio/auto-caption) — load an example or bring your own inputs and run it with a Google sign-in. No credit card, no subscription; runs are usage-based after the free try.

## Input schema

```json
{
  "type": "object",
  "required": [
    "video"
  ],
  "properties": {
    "video": {
      "type": "video",
      "description": "Video to caption. Clear speech, short clips (≤60s) work best."
    },
    "captions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "end": {
            "type": "number",
            "description": "Optional end time in seconds."
          },
          "text": {
            "type": "text",
            "description": "The caption line to show."
          },
          "start": {
            "type": "number",
            "description": "Optional start time in seconds. Omit to auto-distribute evenly across the clip."
          }
        }
      },
      "description": "Pre-written caption lines, for a video that has NO spoken audio (e.g. a visual montage carrying on-screen copy like \"Lvl 1 → Lvl 50\"). When set, transcription is skipped and these lines are burned directly with the same high-contrast renderer. Omit for spoken videos — those are transcribed automatically. Give timing per line, or omit it to auto-distribute evenly.\n"
    },
    "text_color": {
      "type": "color",
      "default": "#FFFFFF",
      "description": "Color of the caption line text."
    },
    "brand_terms": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 50,
        "minLength": 1
      },
      "maxItems": 100,
      "description": "Optional brand/product/proper-noun names to keep verbatim and spell correctly. One entry per name.",
      "uniqueItems": true
    },
    "language_code": {
      "type": "string",
      "maxLength": 8,
      "description": "Optional language hint (e.g. \"en\", \"tr\"). Empty = auto-detect."
    },
    "max_line_chars": {
      "type": "integer",
      "default": 32,
      "maximum": 60,
      "minimum": 12,
      "description": "Max characters per caption line. Smaller = snappier cuts."
    },
    "caption_position": {
      "enum": [
        "bottom",
        "center",
        "top"
      ],
      "type": "string",
      "default": "bottom",
      "description": "Where the caption band sits. Bottom by default."
    },
    "highlight_enabled": {
      "type": "boolean",
      "default": true,
      "description": "Light up the currently-spoken word with a colored pill (karaoke look). Turn off for a plain, static line in text_color with no per-word highlight.\n"
    },
    "highlight_bg_color": {
      "type": "color",
      "default": "#A855F7",
      "description": "Background color of the pill behind the currently-spoken word."
    },
    "highlight_text_color": {
      "type": "color",
      "default": "#FFFFFF",
      "description": "Text color of the currently-spoken word while it sits on the pill."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "properties": {
    "video_url": {
      "type": "video",
      "description": "Drive path to the captioned video; served to readers as a stable media URL. The playground renders it with a <video> player."
    },
    "transcript": {
      "type": "text",
      "description": "The transcript shown in the captions (with brand corrections applied, if any)."
    }
  }
}
```

## Examples

### Caption a UGC hook

Burn bottom captions onto a spoken-to-camera clip.

Inputs:

```json
{
  "video": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/chordie_source.mp4",
  "max_line_chars": 32,
  "caption_position": "bottom"
}
```

Outputs:

```json
{
  "video_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/chordie_captioned.mp4",
  "transcript": "[guitar strumming] Still can't play? I'm trying. It's just not working. Chordie will fix that"
}
```

## Use this skill

puras runs this skill on its own backend — you send inputs and get the result back. Three ways to call, fastest first:

### 1. MCP server — recommended for coding agents, no API key

Connect the puras MCP server; auth is OAuth in the browser on first call, so there is nothing to paste.

```bash
claude mcp add --transport http puras https://mcp.puras.co/mcp
```

Any MCP client works — point it at `https://mcp.puras.co/mcp` (HTTP transport). Then ask the agent to run `auto-caption` from skillpack `puras/game-ad-studio` with your inputs.

### 2. CLI / Python SDK — `pip install puras`

```bash
pip install puras
puras login            # or set PURAS_API_KEY
puras run puras/game-ad-studio/auto-caption -i key=value
```

From Python:

```python
import puras

client = puras.Client()   # PURAS_API_KEY from env
result = client.run("puras/game-ad-studio/auto-caption", {"video":"https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/chordie_source.mp4","max_line_chars":32,"caption_position":"bottom"})
```

### 3. HTTP API

`wait=true` blocks until the run reaches a terminal status and returns the result inline.

```bash
curl -X POST "https://api.puras.co/v1/jobs?skillpack=puras/game-ad-studio&wait=true" \
  -H "Authorization: Bearer $PURAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"skill":"auto-caption","inputs":{"video":"https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/chordie_source.mp4","max_line_chars":32,"caption_position":"bottom"}}'
```

Mint an API key (for CLI / SDK / API) from https://puras.co/api-keys.

## Pricing

Runs are billed usage-based from your workspace credit balance — the cost of a job is the sum of the model token (and any media) usage it incurs. There is no per-call platform fee. The playground and the job result report the exact cost of each run.

- Pricing page: https://puras.co/pricing
- Machine-readable model price registry: `https://api.puras.co/v1/pricing`
