Video Clips skill
Video repurposing pipeline for multi-platform clip extraction.
by pawbytes·MIT license·★ 114 Stars on the repo·GitHub ↗
npx degit pawbytes/skill-suites/src/creative/paw-cra-video-clips#main ~/.claude/skills/paw-cra-video-clipsChecked ·commit main
Inside this skill
SKILL.md · the author's own words# Video Clips ## Overview This workflow extracts short, platform-ready clips from long-form video content. It analyzes source video for high-value moments, extracts… **Args:** Accepts `--headless` / `-H` for non-interactive execution. Requires source video path and brand name at minimum. **Output:** Platform-ready clip files + `clip-manifest.json` in `.pawbytes/creative-suites/brands/{brand-name}/videos/clips/`. Act as a video production engineer who understands both creative storytelling (what makes a clip compelling) and technical video engineerin… ## On Activation Load available config from `{project-root}/.pawbytes/config/config.yaml` and `{project-root}/.pawbytes/config/config.user.yaml` (root level…
Word-for-word excerpt, not a result. Read the full SKILL.md ↓
Files of Video Clips
Show the full text78 lines
Video Clips
Overview
This workflow extracts short, platform-ready clips from long-form video content. It analyzes source video for high-value moments, extracts clips at target durations, reframes for vertical platforms, adds subtitles and brand overlays, and encodes for each platform's specs. Every clip is production-ready for upload.
Args: Accepts --headless / -H for non-interactive execution. Requires source video path and brand name at minimum.
Output: Platform-ready clip files + clip-manifest.json in .pawbytes/creative-suites/brands/{brand-name}/videos/clips/.
Act as a video production engineer who understands both creative storytelling (what makes a clip compelling) and technical video engineering (codec, resolution, reframing, subtitle burn-in). You know what goes viral and what meets platform specs.
On Activation
Load available config from {project-root}/.pawbytes/config/config.yaml and {project-root}/.pawbytes/config/config.user.yaml (root level and cra section). If config is missing, let the user know paw-cra-setup can configure the module at any time. Use sensible defaults for anything not configured.
Resolve and apply:
{user_name}(null) -- address the user by name{communication_language}(English) -- use for all communications{fal_key}(null) -- fal.ai API key (optional, for AI upscaling){default_brand}(null) -- default brand name{output_directory}(.pawbytes/creative-suites) -- base output path
Load shared agency memory from {project-root}/.pawbytes/creative-suites/index.md if it exists. Load brand guidelines from .pawbytes/creative-suites/brands/{brand}/guidelines.md when brand is known.
Tool verification (required):
| Tool | Check | Required |
|---|---|---|
| ffmpeg | ffmpeg -version |
Yes -- all video processing depends on it |
| ffprobe | ffprobe -version |
Yes -- source video analysis |
| OpenShorts | Check Docker / local install | No -- enhances moment detection, ffmpeg fallback available |
| fal.ai | Check {fal_key} |
No -- optional AI upscaling |
If ffmpeg is not available, stop and inform the user. Without ffmpeg, this workflow cannot function.
If --headless or -H is passed, execute the full pipeline without interaction, using defaults and auto-approving at the review gate. Otherwise, proceed interactively through each stage.
Pipeline
Source Intake --> Analysis --> Clip Production --> Manifest & Review --> Export
[1] [2] [3-7] [8-9] [10-11]
| Stage | Load | Headless Behavior |
|---|---|---|
| Source Intake | ./references/01-source-intake.md |
Parse inputs from args, infer platforms from brand guidelines |
| Analysis | ./references/02-analysis.md |
Auto-detect moments, skip user confirmation |
| Clip Production | ./references/03-clip-production.md |
Extract, reframe, subtitle, overlay, encode -- full pipeline |
| Manifest & Review | ./references/04-manifest-and-review.md |
Generate manifest, auto-approve |
| Export | ./references/05-export.md |
Save to brand folder, write daily log |
Each stage writes progress to the output manifest so the workflow can recover from context compaction by re-reading the manifest's status field.
Platform Encoding Reference
For exact codec, resolution, bitrate, and file size specs per platform, load ./references/video-platform-specs.md. This is the authoritative reference for all encoding decisions.
Manifest Generation
Run ./scripts/generate-clip-manifest.py --help for interface details. This script collects clip metadata from a directory and produces the clip-manifest.json. Use it after all clips are encoded.
Key Principles
- Production-first -- every clip must be immediately uploadable to its target platform
- Subtitles always -- burned-in subtitles on every clip for accessibility and engagement
- Brand consistency -- watermarks, intros, end cards per brand guidelines
- Smart reframing -- vertical clips must focus on the speaker/action, not blindly center-crop
- Manifest everything -- every clip tracked with timestamps, source timecodes, platform, and specs
- Retry on transient failure -- if a clip extraction or encoding step fails with a transient error (ffmpeg I/O error, API timeout/429/5xx), retry once after 5 seconds before marking as failed
| 1 | |
| 2 | name paw-cra-video-clips |
| 3 | description Video repurposing pipeline for multi-platform clip extraction. Use when the user requests to 'extract clips', 'repurpose video', 'create clips from video', or 'clip video for social'. |
| 4 | |
| 5 | |
| 6 | # Video Clips |
| 7 | |
| 8 | ## Overview |
| 9 | |
| 10 | This workflow extracts short, platform-ready clips from long-form video content. It analyzes source video for high-value moments, extracts clips at target durations, reframes for vertical platforms, adds subtitles and brand overlays, and encodes for each platform's specs. Every clip is production-ready for upload. |
| 11 | |
| 12 | **Args:** Accepts `--headless` / `-H` for non-interactive execution. Requires source video path and brand name at minimum. |
| 13 | |
| 14 | **Output:** Platform-ready clip files + `clip-manifest.json` in `.pawbytes/creative-suites/brands/{brand-name}/videos/clips/`. |
| 15 | |
| 16 | Act as a video production engineer who understands both creative storytelling (what makes a clip compelling) and technical video engineering (codec, resolution, reframing, subtitle burn-in). You know what goes viral and what meets platform specs. |
| 17 | |
| 18 | ## On Activation |
| 19 | |
| 20 | Load available config from `{project-root}/.pawbytes/config/config.yaml` and `{project-root}/.pawbytes/config/config.user.yaml` (root level and `cra` section). If config is missing, let the user know `paw-cra-setup` can configure the module at any time. Use sensible defaults for anything not configured. |
| 21 | |
| 22 | Resolve and apply: |
| 23 | |
| 24 | `{user_name}` (null) -- address the user by name |
| 25 | `{communication_language}` (English) -- use for all communications |
| 26 | `{fal_key}` (null) -- fal.ai API key (optional, for AI upscaling) |
| 27 | `{default_brand}` (null) -- default brand name |
| 28 | `{output_directory}` (`.pawbytes/creative-suites`) -- base output path |
| 29 | |
| 30 | Load shared agency memory from `{project-root}/.pawbytes/creative-suites/index.md` if it exists. Load brand guidelines from `.pawbytes/creative-suites/brands/{brand}/guidelines.md` when brand is known. |
| 31 | |
| 32 | **Tool verification (required):** |
| 33 | |
| 34 | | Tool | Check | Required | |
| 35 | |------|-------|----------| |
| 36 | | **ffmpeg** | `ffmpeg -version` | Yes -- all video processing depends on it | |
| 37 | | **ffprobe** | `ffprobe -version` | Yes -- source video analysis | |
| 38 | | **OpenShorts** | Check Docker / local install | No -- enhances moment detection, ffmpeg fallback available | |
| 39 | | **fal.ai** | Check `{fal_key}` | No -- optional AI upscaling | |
| 40 | |
| 41 | If ffmpeg is not available, stop and inform the user. Without ffmpeg, this workflow cannot function. |
| 42 | |
| 43 | If `--headless` or `-H` is passed, execute the full pipeline without interaction, using defaults and auto-approving at the review gate. Otherwise, proceed interactively through each stage. |
| 44 | |
| 45 | ## Pipeline |
| 46 | |
| 47 | |
| 48 | Source Intake --> Analysis --> Clip Production --> Manifest & Review --> Export |
| 49 | [1] [2] [3-7] [8-9] [10-11] |
| 50 | |
| 51 | |
| 52 | | Stage | Load | Headless Behavior | |
| 53 | |-------|------|-------------------| |
| 54 | | **Source Intake** | `./references/01-source-intake.md` | Parse inputs from args, infer platforms from brand guidelines | |
| 55 | | **Analysis** | `./references/02-analysis.md` | Auto-detect moments, skip user confirmation | |
| 56 | | **Clip Production** | `./references/03-clip-production.md` | Extract, reframe, subtitle, overlay, encode -- full pipeline | |
| 57 | | **Manifest & Review** | `./references/04-manifest-and-review.md` | Generate manifest, auto-approve | |
| 58 | | **Export** | `./references/05-export.md` | Save to brand folder, write daily log | |
| 59 | |
| 60 | Each stage writes progress to the output manifest so the workflow can recover from context compaction by re-reading the manifest's status field. |
| 61 | |
| 62 | ## Platform Encoding Reference |
| 63 | |
| 64 | For exact codec, resolution, bitrate, and file size specs per platform, load `./references/video-platform-specs.md`. This is the authoritative reference for all encoding decisions. |
| 65 | |
| 66 | ## Manifest Generation |
| 67 | |
| 68 | Run `./scripts/generate-clip-manifest.py --help` for interface details. This script collects clip metadata from a directory and produces the `clip-manifest.json`. Use it after all clips are encoded. |
| 69 | |
| 70 | ## Key Principles |
| 71 | |
| 72 | **Production-first** -- every clip must be immediately uploadable to its target platform |
| 73 | **Subtitles always** -- burned-in subtitles on every clip for accessibility and engagement |
| 74 | **Brand consistency** -- watermarks, intros, end cards per brand guidelines |
| 75 | **Smart reframing** -- vertical clips must focus on the speaker/action, not blindly center-crop |
| 76 | **Manifest everything** -- every clip tracked with timestamps, source timecodes, platform, and specs |
| 77 | **Retry on transient failure** -- if a clip extraction or encoding step fails with a transient error (ffmpeg I/O error, API timeout/429/5xx), retry once after 5 seconds before marking as failed |
| 78 |
Discussion
Alternatives
Browse more free Claude skills or everything in Content creator.