← Tools Portal
THE BLACKCAT Clips Studio
# THE BLACKCAT Clips Studio
## Purpose
Turn a long video (an interview, an event) into N vertical **1080x1920 (9:16)**
clips of the best moments, with burned-in captions, ready for Reels and TikTok.
Drop a video, press one button, get the clips. Fully offline and free.
## Engine
Fully local and free:
- **FFmpeg** extracts a 16k mono WAV, cuts each clip, center-crops to 9:16
(`crop=ih*9/16:ih` + `scale=1080:1920`) and burns the captions.
- **Whisper** (whisper.cpp / `whisper-cli`, Metal-accelerated) transcribes the
audio to SRT with timestamps. The model is auto-detected from disk (prefers a
multilingual model like `ggml-large-v3-turbo`, falls back to `tiny`); if none
is found it downloads a small `ggml-base` model into `models/` (git-ignored).
- **Captions** are rendered with Pillow to transparent PNGs and overlaid with
FFmpeg (white text, black outline) - the local FFmpeg has no libass, so this
mirrors the Subtitles Studio technique instead of the `subtitles=` filter.
## How the best moments are chosen
1. The SRT is split into segments. Candidate windows of the target duration
(default 40s, range 25-60s) are aligned to segment boundaries.
2. Each window is scored by: **speech density** (words/sec), **audio energy**
(per-second RMS from the WAV) and a **hook bonus** for questions, numbers and
emphatic words (increible, importante, nunca, siempre, mejor, peor...).
3. The top-N windows are picked greedily with **no overlap** and at least 15s of
separation, then cut in chronological order.
Each clip is verified with ffprobe (1080x1920, expected duration +/-2s, both
video and audio streams). A clip that fails verification is reported honestly in
the log and the run continues with the rest.
## Launch
```bash
scripts/open-clips-studio.command
```
Then open `http://127.0.0.1:8782`.
## Usage
1. Drag a long video onto the dropzone (or pick one already loaded). MP4, MOV,
M4V, MKV, WEBM.
2. Optional, under **Avanzado**: number of clips (3 / 5 / 8), target duration
(30 / 40 / 60 s) and whether to burn the captions (on by default).
3. Press **"Generar clips"**. When it finishes, each clip shows an inline
player, its moment text and score, a per-clip download, plus "Abrir carpeta"
and "Generar otros".
## Privacy
Fully offline: the client video is processed on this Mac and never leaves it.
Input videos and generated clips/SRT live in `input/` and `output/`, both
git-ignored. Nothing is uploaded to any cloud service.
## Via premium: OpusClip por chat
For AI-driven viral clipping, there is a premium path that does not run here:
**OpusClip via chat**. With the OpusClip MCP authorized in Claude, Pablo can ask
for clips conversationally ("hazme 5 clips virales de esta entrevista, formato
9:16, con subtitulos") and OpusClip's virality model picks and captions the
moments. The login is done once with `/mcp` in an interactive Claude session
(the OpusClip endpoint is `mcp.opus.pro`); it cannot be authorized from a
non-interactive run. This local Clips Studio stays the free, fully-offline
option; OpusClip is the paid, AI-virality option.
## Notes
- Requires `whisper-cli` (`brew install whisper-cpp`), `ffmpeg` and `ffprobe`
on PATH, plus Pillow (`pip install pillow`).
- Longer videos take longer: Whisper runs locally, so a several-minute clip on a
large model can take a couple of minutes before the cutting starts.