← 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.