← ClaudeAtlas

transcribe-videolisted

Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".
AlemTuzlak/skills · ★ 39 · AI & Automation · score 74
Install: claude install-skill AlemTuzlak/skills
# Transcribe Video Transcribes any video/audio file locally using a bundled whisper.cpp service. No external project or cloud API. Returns word-level timestamps (needed for synced overlays/captions). ## When to use - "Transcribe this clip / video / audio", "get me a transcript with timestamps". - As a sub-step of `/produce-video`. ## How it runs Everything is driven by the bundled runner — never ask the user to manage Docker: ```bash node scripts/transcribe.mjs <path-to-video-or-audio> [--out <dir>] [--port 9111] [--language en] [--no-word-ts] [--task transcribe|translate] node scripts/transcribe.mjs --stop # stop the warm container ``` The runner: 1. Checks the Docker daemon is reachable (fails loud with guidance if not). 2. Builds the `transcribe-video-whisper` image from `assets/whisper-service/` if it is missing (first build is slow: it compiles whisper.cpp and bakes the `ggml-base.en.bin` model). 3. Starts the `transcribe-video-whisper` container (host port 9111 → container 9001); reuses it if already running, `docker start`s it if stopped. 4. Waits for `GET /healthz` to report ok. 5. Extracts a 16 kHz mono WAV from the input with local **ffmpeg** (whisper.cpp only decodes WAV), then POSTs it to `/transcribe` with `word_ts=true`. 6. Writes `transcript.txt`, `transcript.srt`, `transcript.words.json` to `--out` (default: the input file's directory), and prints a JSON result line to stdout. ## Outputs - `transcript.txt` — plain text. - `transcript.srt` — subtitle