clip · perso-ai — скилл для Claude Code: нарезка видео на клипы
Режет длинное видео на короткие клипы и перекадрирует 16:9 в 9:16. Таймкоды можно задать вручную или выбрать лучшие моменты по транскрипту.
npx skills add perso-ai/perso-dubbing-plugin --skill clip -a claude-codeЧто делает clip
Скилл работает в двух режимах. Если вы уже знаете таймкоды, он режет локальный файл напрямую: --video "<file>" --ranges "2:00-3:00,...". Здесь не нужны ни ключ, ни расшифровка. Второй режим — выбрать лучшие моменты из проекта Perso AI STT: сначала --plan печатает карту секций и полный транскрипт, потом --clips режет выбранное.
Выбор моментов идёт по рубрике: клип начинается с цепляющей фразы, заканчивается там, где сцена разрешается, а не на первом законченном предложении. Длина 30–90 секунд — если выйти за рамки, воркер предупредит. Ландшафтные исходники перекадрируются в вертикаль, портретные остаются как есть. Рядом с клипами появляется манифест clips.json.
Субтитры по умолчанию выключены, и это отдельный шаг: их добавляет скилл srt. Скилл делит библиотеки со скиллом дубляжа, поэтому папка dubbing должна лежать рядом с clip. Режим с --plan и --clips тратит кредиты Perso AI, а --video --ranges работает полностью офлайн — без ключа и регистрации.
Какие задачи решает
- нарезать вебинар на короткие вертикальные клипы
- выбрать лучшие моменты из длинной записи по транскрипту
- перекадрировать горизонтальное видео в 9:16
- вырезать заданный отрезок по таймкодам без обращения к API
- подготовить клипы и манифест для последующей стилизации субтитров
Примеры запросов агенту
- Нарежь из
interview.mp4отрезки 2:00-3:00 и 10:15-11:40 - Сделай план по проекту 4821 и покажи транскрипт с таймкодами
- Выбери три лучших момента из проекта и вырежи их в вертикаль
Как установить clip
1Через Skills CLI (Vercel)
npx skills add perso-ai/perso-dubbing-plugin --skill clip -a claude-code2Вручную: положить файлы
~/.claude/skills/clip/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/clip/
1Через Skills CLI (Vercel)
npx skills add perso-ai/perso-dubbing-plugin --skill clip -a codex2Вручную: положить файлы
.agents/skills/clip/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add perso-ai/perso-dubbing-plugin --skill clip -a cursor2Вручную: положить файлы
.cursor/skills/clip/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install perso-ai/perso-dubbing-plugin clip2Вручную: положить файлы
.github/skills/clip/SKILL.md1Через Skills CLI (Vercel)
npx skills add perso-ai/perso-dubbing-plugin --skill clip -a gemini-cli2Командой платформы
gemini skills install https://github.com/perso-ai/perso-dubbing-plugin --path skills/clipВручную: положить файлы
.devin/skills/clip/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add perso-ai/perso-dubbing-plugin --skill clip -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о clip
Как установить clip в Claude Code?
Выполните npx skills add perso-ai/perso-dubbing-plugin --skill clip -a claude-code. Скилл встанет в ~/.claude/skills/clip/SKILL.md.
Что делает скилл clip?
Режет видео на короткие клипы по заданным таймкодам или по выбранным моментам из проекта Perso AI STT. Горизонтальные исходники перекадрирует в 9:16.
Нужен ли ключ API для нарезки по таймкодам?
Нет. Режим --video --ranges полностью офлайн, ключ и регистрация не нужны. Ключ требуется только для --project, --plan и --clips.
Исходный текст
SKILL.md · MIT
---
name: clip
description: Cut a video into short-form clips (highlights/shorts) — cut given timecodes directly, or pick the best moments from a Perso AI STT project. Reframes 16:9→9:16. Subtitles are added separately by the srt skill.
allowed-tools: Bash(node scripts/clip.mjs *), Bash(node ../dubbing/scripts/resolve_key.mjs *), Bash(node ${CLAUDE_SKILL_DIR}/scripts/*), Bash(node ${CLAUDE_SKILL_DIR}/../dubbing/scripts/*)
---
# /clip
Cut a video into short clips + reframe. **Subtitles are not this skill's job** — after cutting, the `srt` skill styles them (see the handoff below).
## Entry points
- **Explicit timecodes** ("cut 2:00–3:00 of this video") → cut the local file directly: `--video "<file>" --ranges "2:00-3:00,..."`. No STT, no key, no credits.
- **AI highlight selection on an STT project** → `--plan` then `--clips` (the flow below). Needs the project's transcript + word timestamps.
- **Raw video, "find the good moments"** (no timecodes given) → you can't pick highlights without a transcript, so **ask the user which they want**:
- **STT** (proper selection, uses credits): run the `srt` skill's STT first to create the project, then clip it with `--plan`/`--clips`.
- **Free** (no STT): the user gives the timecodes and you cut them with `--video --ranges`.
Proceed with their choice — don't run STT (which bills credits) without asking.
## Core rules
- **Only the worker sees the raw key** — never open, echo, or pass it as an argument.
- **The key gate applies only to `--project`/`--plan`/`--clips`.** `--video --ranges` and `--sidecars` are fully offline — never run a key check/registration for them.
- **Run in the background** — encoding takes time.
- This skill shares the dubbing skill's libraries: the `dubbing` folder must be installed next to `clip`.
## Flow
**Phase 1 — plan.** `node scripts/clip.mjs --project <seq> --plan` prints the summary's section map (topic guide) plus the full sentence transcript, each line as `order [start-end] text`.
**Phase 2 — pick, then cut.** Read the transcript and choose clips, each `{ "title": "...", "start_order": N, "end_order": M }`. Rubric:
- **Hook first** — start on a sentence that grabs attention (question, bold claim, funny/surprising line).
- **End where the moment resolves, not at the first complete sentence.** Ride the beat to its end — the whole reaction, follow-through, and any secondary punchline. Read a few sentences past the apparent ending; keep them if still the same reaction.
- **Cut at the transition** — end just before the energy drops or the tone shifts (excited reaction → calm narration).
- **Peak** — favour funny / surprising / emotional / quotable moments; the high point often sits a sentence or two after the literal reveal.
- **Length 30–90s** — the worker warns when outside; prefer the full arc over a premature cut.
- **Title** — describes the moment; becomes the file name (`01_<title>.mp4`).
Sections are chapter-length — use the section map only as a guide, then tighten to a hook.
Run: `node scripts/clip.mjs --project <seq> --clips '<json>' [--out folder]` (`--clips` also accepts `@path`). Landscape (16:9) sources are reframed to 9:16 (drama-shorts letterbox); portrait sources are kept. The worker writes the clips plus a `clips.json` manifest (records each clip + the transcript slice needed for subtitles later). Relay `[progress]`; deliver the files from `[clips-output]`.
## Subtitles → hand off to the srt skill
Subtitles are off by default. After cutting, tell the user clips are ready and **ask whether to add subtitles**. If they want subtitles, **show the presets first — never jump straight to one**, exactly as the srt skill's styling flow does: the interactive **gallery** (select + Apply) in the Claude app, or the static `../srt/assets/style_presets.png` + `node ../srt/scripts/style.mjs --list-presets` menu elsewhere. Let the user pick a preset or describe a style (short-form presets like `karaoke`/`bold-punch` suit clips). Only after they pick:
1. Write the sidecars: `node scripts/clip.mjs --sidecars "<out>/clips.json"` — add `--karaoke` **only** for a karaoke preset (it also writes `<clip>.timestamps.json` for measured word timing; a plain preset needs just the `.srt`).
2. Style each clip with the **srt** skill: `node ../srt/scripts/style.mjs "<clip>.mp4" "<clip>.srt" --preset <id>` (append `--word-timestamps "<clip>.timestamps.json"` for karaoke). See the srt skill's "Style & burn subtitles" section.
Add `--host <runtime>` for telemetry (silent), same as the other workers.
## Config (env)
Same as `/dubbing` / `/srt` (`PERSO_API_BASE`/`PERSO_MEDIA_BASE` — https `perso.ai` hosts only, `PERSO_SPACE_SEQ`, `XP_API_KEY`, `PERSO_NO_TELEMETRY`, …).
© perso-ai · MIT · perso-ai/perso-dubbing-plugin
Похожие скиллы
Все скиллы по теме «Автоматизация и no-code: n8n, Zapier, Make» →Сначала — clip от других авторов.