Short Form Pipeline — a skill by Eric Siu.
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
# 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.
yt-dlp and ffmpeg installedANTHROPIC_API_KEY environment variable setrequirements.txt installedmediapipe and opencv-python for face-detected smart croppython3 scripts/shortform_pipeline.py \
--url "https://www.youtube.com/watch?v=VIDEO_ID" \
--max-clips 3 \
--output-dir ./output
python3 scripts/video_clipper.py --url "https://www.youtube.com/watch?v=VIDEO_ID"
| 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 |
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 quadrantClaude outputs a layout_hint for each segment during segmentation.
Edit VOICE_PATTERNS in video_clipper.py to match your creator's speech patterns. These boost clip scoring for authentic-sounding segments.
The Claude prompt in shortform_pipeline.py can be customized:
- Adjust hook_strength minimum (default: 7/10)
- Change target duration range (default: 30–60s)
- Modify layout hint options
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%)
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
-c:v copy with -filter_complex. Only -c:a copy is safe.ffprobe -show_entries stream=width,height.-c:v libx264 -c:a aac if needed.