Video Clips skill

Video repurposing pipeline for multi-platform clip extraction.

by pawbytes·MIT license·★ 114 Stars on the repo·GitHub ↗

Use now

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

pawbytes/main1 file shown
SKILL.md
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---
2name: paw-cra-video-clips
3description: 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 
10This 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 
16Act 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 
20Load 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 
22Resolve 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 
30Load 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 
41If ffmpeg is not available, stop and inform the user. Without ffmpeg, this workflow cannot function.
42 
43If `--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```
48Source 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 
60Each 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 
64For 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 
68Run `./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

Linkedin repurposerRepurpose existing content into a native LinkedIn post. Take a tweet, thread, YouTube video, blog, or newsletter and rebuild it for LinkedIn: re-hook before the fold, expand to the 900 to 1300 char sweet spot, add whitespace and a CTA, move links to the first comment, run the humanizer, publish via Publora on approval. Not for writing from scratch (use linkedin-post-writer), not for auditing a draft (use linkedin-humanizer --mode audit).Marketing · MITContent repurposingUse when the user wants to turn public social videos, transcripts, posts, or creator research into reusable content assets such as LinkedIn posts, X threads, short-form scripts, newsletters, blog outlines, carousels, or content calendars.Creator · MITContent repurposingRepurpose and atomize content across platforms and formats. Use when the user says "repurpose this", "turn this into", "convert blog to", "make a thread from", "content atomization", "repurpose content", "turn this article into social posts", or asks about adapting content from one format to another.Creator · MITCross platform distributionUse when an approved campaign, launch, research finding, or asset needs a deliberate plan across several social channels. Trigger phrases include "adapt this for LinkedIn and X", "where should this campaign go?", "make a distribution plan", "repurpose this without duplicating it", and "what is each platform's role?". Do not use this to invent a campaign strategy, bulk-post identical copy, or schedule a calendar; use campaign-brief for the strategic source, content-repurposer for asset transformations, and content-calendar for dates.Creator · MIT