# Skill: AI B-roll

A talking-head clip with images generated for the exact sentence being said, plus music and a couple of
sound effects. This is the workhorse for content where the subject is abstract — money, time, the future,
a process — and no photograph would be honest.

**Price:** 300–340 credits per finished minute · 30 seconds ≈ 225–255 credits
**Uses:** `/v1/ai/image` · `/v1/ai/music` · `/v1/ai/sound-effects` · `/v1/studio/remove-silence` · `/v1/studio/edit`

Base URL: `https://apihub.co.il` · Auth: `Authorization: Bearer <key>` · Docs: `/docs`
Tag every call with the same `X-Tag: <job>` and read the bill from `GET /v1/usage?tag=<job>`.

**Model quality.** Every AI endpoint takes `quality`: `fast` · `balanced` (default) · `best`. Stay on
`balanced` unless the customer asked for the best — `best` on video is 4× the price.

---

## 1. Cut, transcribe, read the sentences

`POST /v1/studio/remove-silence` (`min_pause_ms: 400`, `padding_ms: 80`, `remove_fillers: true`) →
`POST /v1/speech/transcripts` → `GET /v1/speech/transcripts/{id}/sentences`. Work on the cut clock.

## 2. Plan 4–5 moments

One per abstract claim. For each: the second it starts, 2.2–3 s long, and an **English** prompt describing a
photoreal, cinematic, vertical 9:16 shot with no text, no letters and no logos. Ask for the *thing*, not the
metaphor of the thing: "stacks of gold coins on a dark table, shallow depth of field" beats "wealth".

Spread them 5+ seconds apart, first after 3 s, nothing in the last 3 s.

## 3. Generate

```jsonc
POST /v1/ai/image  { "prompt": "<the shot>", "aspect_ratio": "9:16", "resolution": "1K" }      // ≈ 29 credits
POST /v1/ai/music  { "prompt": "calm modern electronic bed, no vocals", "duration": <len+2>, "instrumental": true }
POST /v1/ai/sound-effects { "text": "soft whoosh transition", "duration": 1 }                   // ≈ 1 credit
```

Run them in parallel. Reuse one whoosh for every transition — there is no reason to pay twice.

## 4. Render

```jsonc
POST /v1/studio/edit
{
  "video_url": "<cut url>", "transcript_id": "<id>",
  "captions": { "style": { "preset": "classic", "size": 7, "active_color": "#FFE600",
    "max_words": 3, "max_lines": 1, "position": "bottom", "margin": 18, "side_margin": 7 } },
  "hook": { "text": "<6 words from the content>", "duration": 3.2,
    "style": { "preset": "yellow", "font": "Rubik", "weight": 900, "size": 6.2, "margin": 10 } },
  "overlays": [
    { "url": "<image>", "type": "image", "start": 6.0, "duration": 2.6, "mode": "full", "fade_ms": 180 },
    { "url": "<image>", "type": "image", "start": 13.5, "duration": 2.6, "mode": "split",
      "split_side": "top", "split_ratio": 0.55, "speaker_focus": 0.3, "fade_ms": 180 }
  ],
  "sounds": [ { "url": "<whoosh>", "start": 5.7, "volume": 0.5 }, { "url": "<whoosh>", "start": 13.2, "volume": 0.5 } ],
  "music": { "url": "<music>", "volume": 0.3, "duck": false, "fade_in_ms": 700, "fade_out_ms": 2200 },
  "zoom": [ { "start": 18.0, "end": 20.0, "to": 1.15, "ease": "punch", "y": 0.35 } ],
  "color": { "preset": "cinematic", "sharpen": 0.3 },
  "audio": { "normalize": true },
  "output": { "aspect_ratio": "9:16", "resolution": "1080", "fit": "crop", "quality": "high" }
}
```

Music sits at `volume: 0.3` with `duck: false` — about 10 dB under the voice: heard, never fighting it. `duck: true`
lowers it about 10 dB more whenever someone talks, so under a talking head it disappears — keep it off. If a track you were given is
quiet, leave `normalize` alone: we level it before applying `volume`.

## Spending less on the same video

- A generated **image** is ≈ 29 credits; a generated **4-second clip** is ≈ 120 (Fast) or ≈ 480 (Veo 3.1).
  A **Gemini Omni** clip (`model: "gemini-omni-1.1-flash"`: speech and sound made with the picture, readable
  text in the frame) runs 3–10 s, usually 10: ≈ 310 credits at 720p, ≈ 460 at 1080p — take it only when the shot
  must talk or show text.
  Two images and a zoom often read better than one clip that hides the speaker.
- A free photograph from `/v1/stock/search` costs nothing — use it for anything that exists in the real
  world (places, objects, documents) and generate only what does not exist.
- Music is ≈ 1.3 credits per second. One track reused across a series is the single easiest saving.
- Render `quality: "standard"` instead of `"high"` while you iterate; switch to `"high"` for the final.

**How to read the price.** Renders are billed per second of output, so cutting and captioning scale with
length. Everything that is *generated* — an image, a clip, a music track — is billed per asset, no matter how
long the video is. That is why half a minute is not half the price: a 30-second video with the same four
images and one music track costs nearly what a 60-second one costs. Real numbers, not estimates, come from
`GET /v1/usage?tag=<your tag>` after the job.
