
Clipify
从长视频中自动提取精彩片段,切成独立短视频,支持 16:9→9:16 竖版转制和逐字字幕烧录。...
Install
npx skills add ZJU-REAL/Easel --skill clipify -g -a claude-code -y- Repository
- ZJU-REAL/Easel4.3k
- Category
- Media
- Updated
- 3d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 2,146 tokens
- Runs scripts
- Yes, review before use
What it does
从长视频中自动提取精彩片段,切成独立短视频,支持 16:9→9:16 竖版转制和逐字字幕烧录。 当用户说"视频切片""提取精彩片段""长视频切短""切成短视频""高光剪辑""逐字字幕""转竖版短视频"时使用。 和 video-highlights 的区别:clipify 专做英文口播找笑点+动态人脸 pan;video-highlights 更通用(中文/直播皆可),静态转竖版更稳。
Clipify
Find the funniest moments in a video, cut them as standalone clips, optionally reformat 16:9 → 9:16 (face-pan or split-screen), and burn opus-style word-by-word captions.
Inputs
- A video file path (the user will provide it; otherwise ask)
- Optional: requested format (9:16, 16:9, 1:1), if not given, ask after candidates are picked
- Optional: subtitle style preference, if not given, ask before captioning
Tooling (use only the fastest path)
- Whisper:
whisper --model tiny.en --word_timestamps True --output_format json(≈10× faster thansmall.en; quality fine for English). For non-English:--model base(drop--language). - ffmpeg: hardware decode is optional and platform-specific, use
-hwaccel auto, or omit it (macOS:videotoolbox; Linux:vaapi/cuda/none). Add-preset ultrafastfor renders. Use-c:v libx264 -crf 20for the final master. - Numpy for audio alignment (FFT cross-correlation). No scipy/cv2 needed.
- Scripts:
<skill-dir>/scripts/(where<skill-dir>is the directory containing this SKILL.md, typically~/.claude/skills/clipify/)analyze.py, speaker timeline from two ROI motion filesbuild_pan.py, ffmpeg crop x-expression with hard cutsbuild_ass.py, opus-style ASS captions from whisper JSONaudio_align.py, find offset of a sub-clip in a longer source
Working dir: /tmp/clipify/ (mkdir at start, leave artifacts for debugging).
Workflow
Step 1, Find the funniest parts
mkdir -p /tmp/clipify
ffmpeg -y -i "$VIDEO" -vn -ac 1 -ar 16000 /tmp/clipify/audio.wav
whisper /tmp/clipify/audio.wav --model tiny.en --word_timestamps True --output_format json --output_dir /tmp/clipify --language en
Read the resulting JSON (or .txt) and pick 3, 5 candidate clips. Funny signals to scan for:


