← ClaudeAtlas

long-video-to-shortslisted

Turn ONE long video into several vertical (9:16) captioned shorts, fully local and free — a home-made Opus Clip. Use when the user wants to "faire des shorts / des clips à partir d'une longue vidéo", "découper une vidéo en clips verticaux", "reels/shorts/tiktok from a video", "extraire les meilleurs moments", or names Opus Clip / Klap / Vizard and wants it done locally. Handles two content types: face-cam (smart-crop to face + embedded-captions) and screen/gameplay (blurred-pad + burned karaoke captions). French by default. The agent selects the moments; the user approves before any render.
joe-jns/long-video-to-shorts · ★ 0 · Code & Development · score 63
Install: claude install-skill joe-jns/long-video-to-shorts
# long-video-to-shorts **One long video → N vertical captioned shorts, 100% local.** The agent transcribes, picks the best moments, and — after the user approves the shortlist — cuts, reframes to 9:16, and captions each one. French by default. See `DESIGN.md` for the full spec. ## When to use / not use - **Use:** "fais-moi des shorts de cette vidéo", "découpe en clips verticaux", "des reels à partir de ce podcast", "extrait les meilleurs moments". - **Not this skill:** authoring a video from scratch (→ `hyperframes`), or captioning a single already-short talking-head clip with cinematic VFX (→ `embedded-captions` directly). ## Requirements (verified on this machine — see `_fixtures/ENV_NOTES.md`) - ffmpeg/ffprobe, node, python 3.14 + **faster-whisper** (`pip install faster-whisper`) - `yt-dlp` for URL intake, `embedded-captions` skill for the face-cam caption branch - bundled font `assets/fonts/DejaVuSans-Bold.ttf` ## Pipeline (6 stages) Pick a **project dir** (e.g. `~/shorts-jobs/<name>/`). All intermediates live in `<project>/work/`, finals in `<project>/shorts/`. ``` 1. INTAKE bash scripts/intake.sh <file-or-URL> <project> -> work/source.mp4 2. PROBE bash scripts/probe.sh <project> -> work/probe.json + work/contactsheet.png Read the contact sheet. Classify each time-range: facecam or screen. 3. TRANSCRIBE HF_HUB_DISABLE_SYMLINKS_WARNING=1 \ python scripts/transcribe.py <project>/work/source.mp4