auto-editor-transcribe
Converts speech in videos or live audio to text and captions, then cuts videos based on what people actually say.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
SKILL.mdShow the author's original SKILL.md
--- name: auto-editor-transcribe description: Transcribe a media file or live microphone to text or subtitles with auto-editor's whisper subcommand, then edit by spoken content — cut to keep (or drop) sections whose subtitles match a word or regex. Use when someone wants a transcript, captions, live speech transcription, or to cut a video based on what is said rather than on loudness. --- # Transcribe & edit by speech Use auto-editor's whisper.cpp (Whisper or NVIDIA Parakeet models) or Apple Speech backend to transcribe audio. Cut a timeline based on subtitle content with `--edit subtitle`/`word`. ## Transcribe — `auto-editor whisper` ``` auto-editor whisper <file|:mic> <model> [options] ``` Set `<model>` to a `ggml` model path. Three backends, chosen by the model: - **Whisper**: `ggml-small.en.bin`, `ggml-medium.en.bin`, `ggml-large-v3.bin`, … (https://huggingface.co/ggerganov/whisper.cpp). 99+ languages, `--translate`, `--prompt`. - **Parakeet**: any model with "parakeet" in the filename, e.g. `ggml-parakeet-tdt-0.6b-v3-q8_0.bin` (https://huggingface.co/ggml-org/parakeet-GGUF). Faster than Whisper at comparable English accuracy; language is auto-detected. `--translate`, `--prompt`, and `--language` are rejected. - **Apple**: the magic model name `apple` uses Apple's built-in transcriber; requires macOS 26 or later. Only the first audio stream of a file is used. Audio is resampled to 16 kHz, and text prints to stdout by default. ```bash auto-editor whisper example.mp4 ggml-medium.en.bin # plain text → stdout auto-editor whisper example.mp4 ggml-medium.en.bin --format srt -o out.srt auto-editor whisper example.mp4 ggml-parakeet-tdt-0.6b-v3-q8_0.bin # parakeet backend auto-editor whisper example.mp4 apple --language en_US # macOS 26+ ``` Options: `--format text|srt|json`, `-o/--output FILE`, `-l/--language en` (default auto), `-tr/--translate` (→ English), `-sw/--split-words` (one word per cue), `--queue SECS` (default 30), `--prompt TEXT`, `--threads N` (default 4), and `-t/--threshold THRES` (default 0.04). `--split-words` works with on all backends. Parakeet is the most accurate. With the `apple` model, set `--language` to a supported language or locale. Apple speech cannot auto-detect language, so `auto` falls back to `en_US` with a warning. Do not pass `--translate` or `--prompt`; neither is supported. The first use of a language may download Apple's speech model and therefore needs network access. ### Transcribe a live microphone Pass `:mic` instead of a file. Stop capture gracefully with Ctrl-C. ```bash auto-editor whisper :mic ggml-medium.en.bin auto-editor whisper :mic apple --language en_US # macOS 26+ auto-editor whisper :mic ggml-medium.en.bin -o transcript.srt ``` This streams the microphone directly to transcription and does not save a media recording. To retain and edit the captured audio, use `auto-editor :mic`; editor and timeline exports save a sibling lossless-FLAC `_RECORDING.mka` by default. Live capture supports macOS, Windows, and Linux: - macOS uses AVFoundation and prefers a USB microphone, then the system default. - Windows uses DirectShow and prefers a USB microphone, then the first audio capture device. - Linux uses the default ALSA input device. When `-o/--output` ends in `.srt`, `.json`, `.txt`, or `.text`, the output format is inferred unless `--format` is set explicitly. ## Edit by spoken content `--edit subtitle`/`word` marks the time a matching subtitle line occupies as **active** (kept by default). Use an existing subtitle stream, or transcribe to an `.srt` first and feed it in. | Method | Active when… | Args (defaults) | |---|---|---| | `subtitle` / `regex` | `pattern` (regex) matches a line | `pattern=""` (empty matches every line), `stream=0`, `ignore-case=#f` | | `word` | `value` appears as a whole word | `value` required, `stream=0`, `ignore-case=#t` | `pattern` is optional for `subtitle`/`regex`: with none, the empty regex matches every subtitle line, so `--edit subtitle` keeps all sections that have a subtitle (i.e. cut everything with no speech). `word`, by contrast, requires a `value`. ```bash # Keep only sections that have any subtitle (cut the silent gaps between speech) auto-editor talk.mkv --edit subtitle # Keep only sections where "introduction" is spoken auto-editor lecture.mp4 --edit word:introduction # Regex match (case-insensitive); keep matched lines auto-editor talk.mkv --edit "subtitle:pattern=(yes|no),ignore-case=#t" # Cut filler words instead of keeping them: invert with `not` auto-editor video.mp4 --edit "(not word:um)" ``` ### Transcribe → cut workflow When the media has no subtitle stream, generate a **sidecar** named after the input — for `talk.mp4`, auto-editor auto-loads `talk.srt` (then `talk.ass`) when the requested subtitle stream isn't embedded: ```bash auto-editor whisper talk.mp4 ggml-medium.en.bin --format srt -o talk.srt auto-editor talk.mp4 --edit word:question # picks up talk.srt automatically ``` Inspect subtitle streams with `auto-editor subdump FILE` (text subtitles only; bitmap subtitles won't dump). For loudness/motion-based cutting and pace, see the **auto-editor** skill.
Mirrored from the author's public source. Install counts from the open skills registry.