Agent skill
short-form-pipeline
From ericosiu/ai-marketing-skills · 21 skills · 3,449 · pushed 2026-08-16
What it does when it runs
Read from the skill and the 5 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- ANTHROPIC_API_KEY
- ANTHROPIC_KEY
- Hosts it reaches
- levelingup.beehiiv.com
- singlebrain.com
- www.singlegrain.com
- www.youtube.com
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- shellwrites files
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/ericosiu/ai-marketing-skills.git /tmp/ai-marketing-skills git -C /tmp/ai-marketing-skills sparse-checkout set "short-form-pipeline" mkdir -p ~/.claude/skills/short-form-pipeline cp -R "/tmp/ai-marketing-skills/short-form-pipeline/." ~/.claude/skills/short-form-pipeline/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
Before you install: this skill will not complete its job on a bare agent. It needs ANTHROPIC_API_KEY, ANTHROPIC_KEY, which you have to obtain separately.
The skill
Source on GitHub ↗Reproduced in full from ericosiu/ai-marketing-skills/blob/2eb0f34edb8d6111ca8b2930fed92413c9af7002/short-form-pipeline/SKILL.md, which is licensed MIT (repository). 531 words, 17 headings.
Short-Form Video Clip Pipeline — Skill
Preamble (runs on skill start)
# Version check (silent if up to date)
python3 telemetry/version_check.py 2>/dev/null || true
# Telemetry opt-in (first run only, then remembers your choice)
python3 telemetry/telemetry_init.py 2>/dev/null || true
Privacy: This skill logs usage locally to
~/.ai-marketing-skills/analytics/. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. Seetelemetry/README.md.
Extract viral short-form clips (TikTok, Reels, Shorts) from long-form YouTube videos. Handles download, transcription, AI segmentation, cutting, vertical cropping, and caption burn-in.
Prerequisites
yt-dlpandffmpeginstalledANTHROPIC_API_KEYenvironment variable set- Python dependencies from
requirements.txtinstalled - Optional:
mediapipeandopencv-pythonfor face-detected smart crop
Quick Start
Single video → clips
python3 scripts/shortform_pipeline.py \
--url "https://www.youtube.com/watch?v=VIDEO_ID" \
--max-clips 3 \
--output-dir ./output
Standalone clipper (no Claude, heuristic scoring)
python3 scripts/video_clipper.py --url "https://www.youtube.com/watch?v=VIDEO_ID"
Pipeline Overview
- Download — yt-dlp fetches video + auto-generated VTT captions
- Transcribe — Whisper generates word-level timestamps (falls back to YouTube captions)
- Segment — Claude identifies 2–5 best 30–60s moments with hook scoring ≥7/10
- Cut Verification — Second Claude pass verifies each clip ends on a complete thought
- Cut — FFmpeg extracts each clip from the source video
- Vertical Crop — Layout-aware 16:9 → 9:16 conversion with face detection
- Caption Burn — TikTok-style word-highlighted captions (ASS format) burned in
Key Files
| File | Purpose |
|---|---|
scripts/shortform_pipeline.py | Full pipeline: download → segment → cut → crop → caption |
scripts/video_clipper.py | Standalone clipper with heuristic scoring (no Claude needed) |
scripts/clip_sender.py | Helper for clip delivery and review workflow |
Layout-Aware Cropping
The pipeline handles four video layouts differently:
talking_head— Face-detected center crop using MediaPipe; audio panning fallbackscreen_share_overlay— Stacks screen content on top, webcam bubble on bottomside_by_side— Stacks screen on top, presenter face on bottomgallery_view— Crops to active speaker quadrant
Claude outputs a layout_hint for each segment during segmentation.
Customization
Voice patterns
Edit VOICE_PATTERNS in video_clipper.py to match your creator's speech patterns. These boost clip scoring for authentic-sounding segments.
Segmentation prompt
The Claude prompt in shortform_pipeline.py can be customized:
- Adjust
hook_strengthminimum (default: 7/10) - Change target duration range (default: 30–60s)
- Modify layout hint options
Crop tuning
In video_clipper.py:
scale_factor— Zoom level for single face (default: 1.08)desired_face_y— Target face position in frame (default: upper 35%)
Output
Each clip is output as:
- 1080×1920 resolution (9:16 vertical)
- H.264 + AAC encoding
- Word-highlighted captions burned in
- Ready for direct upload to TikTok, Reels, or Shorts
Troubleshooting
- FFmpeg filter_complex error: Don't use
-c:v copywith-filter_complex. Only-c:a copyis safe. - Wrong output resolution: Always crop before scaling. Verify with
ffprobe -show_entries stream=width,height. - Caption sync issues: Run Whisper on the cut clip, not the source episode.
- TikTok upload fails: Ensure H.264 + AAC encoding. Add
-c:v libx264 -c:a aacif needed. - Clip too long: Claude sometimes overshoots. The pipeline auto-trims clips >90s to 75s.
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- short-form-social by 0xF4ng · 5
- pipeline-reviewer by janskuba · 199
- pipeline-management by louisblythe · 136
- content-pipeline by thatrebeccarae · 119
- content-to-pipeline by chadboyda · 74
- pipeline-state by impecablemee · 66
- weekly-pipeline-digest by JJenglert1 · 54
- pipeline-visibility by NEON-Rutger · 45
Need help setting it up?
This page tells you what short-form-pipeline does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.