# Skill: Highlight Block captions (educational / podcast)

The look Submagic made standard: the whole phrase stays readable while the spoken word lights up inside a
coloured box. Best for teaching, interviews and podcast clips — the viewer keeps the sentence in view, so
the meaning survives even at speed. Cut moderately: this format sells clarity, not adrenaline.

**Captions only.** This skill uses two endpoints and nothing else: no AI images, no clips, no music, no
sound effects. Two calls, two renders, one finished video.

Base URL: `https://apihub.co.il` · Auth: `Authorization: Bearer <API key>` · Docs: `/docs`
Send `X-Tag: <job name>` on both calls, then `GET /v1/usage?tag=<job name>` tells you what it cost.

---

## 1. Cut moderately

```jsonc
POST /v1/studio/remove-silence
{ "video_url": "<source>", "language_code": "he",
  "min_pause_ms": 400, "padding_ms": 80, "remove_fillers": true,
  "output": { "resolution": "source", "aspect_ratio": "original", "quality": "high" } }
```

400 ms / 80 ms removes dead air and "אה / אממ" but leaves the pause that ends a thought, so an explanation
still breathes. This lands around a cut every 2.5–4 s, the Reels rhythm.

## 2. Render

```jsonc
POST /v1/studio/edit     // x-wait-ms: 110000
{
  "video_url": "<cut url>",
  "language_code": "he",
  "captions": { "style": {
    "font": "Heebo", "weight": 900, "size": 6.8,
    "color": "#FFFFFF", "active_color": "#111111", "active_background": "#FFE600",
    "outline": 11, "outline_color": "#000000", "shadow": 2,
    "animation": "highlight", "max_words": 4, "max_lines": 2, "max_chars_per_line": 18,
    "position": "bottom", "margin": 17, "side_margin": 7, "uppercase": false
  } },
  "hook": { "text": "<the promise of the clip, 5–8 words>", "duration": 4.5,
    "style": { "preset": "yellow", "font": "Rubik", "weight": 900, "size": 6.2, "position": "top", "margin": 10, "rotate": -2 } },
  "audio": { "normalize": true },
  "output": { "aspect_ratio": "9:16", "resolution": "1080", "fit": "crop", "quality": "high" }
}
```

**Why these numbers**

- `active_background` paints a box behind the spoken word only; `active_color: "#111111"` keeps that word
  dark-on-light, which is the most readable combination on a bright shot.
- `max_words: 4` over up to 2 lines: the phrase stays in view, the box marks where you are in it.
- `animation: "highlight"` does not scale the text — nothing jumps, so a long explanation is not tiring.
- `position: "bottom"`, `margin: 17`: the lower third, above the platform UI.
- The hook holds 4.5 s because a teaching clip must state its promise, not only shout.

## 3. Variants

- **Green box:** `active_background: "#22C55E"`, `active_color: "#FFFFFF"` — softer, good for health and coaching.
- **Brand box:** the brand colour as `active_background`; if it is dark, set `active_color: "#FFFFFF"`.
- **Denser:** `max_words: 6`, `size: 6` for fast speakers and long sentences.

## Rules that apply to every caption job

- **Safe zone.** Keep text inside the middle 80% of the frame. `side_margin: 7` does the sides; keep
  `margin` ≥ 14 so the platform UI (username, buttons, progress bar) never covers a word.
- **Contrast before decoration.** White text with a black outline reads on anything. Colour is for the
  spoken word only.
- **The line never leaves the frame** — a line too wide is set smaller automatically. Do not shrink it yourself.
- **Hebrew is not upper-cased** (`uppercase: false`); it has no capitals and the flag only breaks Latin words
  mixed into the sentence. For English-only videos `uppercase: true` is fine.
- **Fonts:** Heebo and Rubik (weight 900) for Hebrew, Montserrat for Latin. `GET /v1/studio/fonts` lists them.
- Never send a field that is not in the docs — unknown fields are rejected with the right name.

## What it costs

Transcription ≈ 1 credit per minute. Each render ≈ 1 credit per second of output, so a 60 s video that is
cut and then captioned ≈ 120 credits. Nothing else is billed: this skill generates nothing.
