---
name: clip-video
description: >
  Turn a long YouTube or direct video URL into short viral clips with Unsora AI
  clipping — captions, aspect ratios, and Find Moments mode. Use when the user
  wants to clip, repurpose, extract highlights, or make Shorts/Reels/TikToks
  from long-form video.
---

# Clip Video (AI Clipping)

Repurpose long-form video into short clips via `create_clipping`.

---

## Before you call the tool

`create_clipping` **spends credits**. You MUST have explicit user choices for:

| Setting | Options |
|---------|---------|
| **Source** | YouTube URL or direct `.mp4` URL (TikTok/Instagram page links not supported) |
| **Aspect ratio** | `9:16` (Shorts/Reels), `1:1`, `4:5`, `16:9`, or keep original |
| **Captions** | On or off — if on, pick a style preset (default: `classic-yellow`) |
| **Clip count** | `limit` 1–20 (auto-detect mode) |
| **Clip length** | `targetDuration`: `auto`, `lt30`, `30-60`, `60-90`, `90-3min`, `gt3min` |

**Find Moments mode:** If the user describes specific moments (*"funny reactions"*, *"product demos"*), set `query` instead of relying on auto-viral detection. When `query` is set, `targetDuration` is ignored.

Ask for anything missing — **never assume defaults** for ratio, captions, count, or length.

---

## Workflow

1. Confirm `videoUrl` (YouTube or direct file)
2. Confirm all settings above with the user
3. `get_credits` — warn if low
4. `create_clipping` with assembled parameters
5. **Claude.ai with preview panel** — preview polls and shows clips. **Stop here.** Summarize settings used.
6. **Other hosts** — `wait_for_clipping` until `COMPLETED`; return clip URLs

---

## Caption style presets

Named by look — accent color on the active spoken word:

- **Safe defaults:** `classic-yellow`, `white-card`, `bold-white`
- **Glow styles:** `glow-yellow`, `glow-green`, `glow-pink`, `glow-orange`
- **Static (no word animation):** `static-minimal`, `static-yellow`, `static-green`
- **Gaming / streamer:** `gaming-magenta`, `gaming-green`, `gaming-yellow`

Describe styles in plain language when asking the user; map to preset names internally.

---

## Typical user requests

| Request | Settings |
|---------|----------|
| "10 TikTok clips from this podcast" | `9:16`, captions on, `limit: 10`, auto duration |
| "Find all goal moments" | set `query`, ratio per platform |
| "Clips without captions for editing" | `enableCaption: false` |
| "Square clips for Instagram feed" | `ratio: "1:1"` |

---

## After delivery

Offer: different ratio batch, change caption style and re-run, or schedule best clip via `unsora:schedule-post`.
