Skip to content
Content
Skill

/transcribe-audio

Transcribes video audio using WhisperX, preserving original timestamps. Creates JSON transcript with word-level timing. Use when you need to generate audio transcripts for videos.

BOOST
From plugin
buttercut
60316 skills
Install
$ npx -y skills add barefootford/buttercut --skill transcribe-audio --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/transcribe-audio

Context preview

The summary Claude sees to decide when to auto-load this skill.

Transcribes video audio using WhisperX, preserving original timestamps. Creates JSON transcript with word-level timing. Use when you need to generate audio transcripts for videos.

SKILL.md

transcribe-audio.SKILL.md
name: transcribe-audio
description: Transcribes video audio using WhisperX, preserving original timestamps. Creates JSON transcript with word-level timing. Use when you need to generate audio transcripts for videos.

Skill: Transcribe Audio (parent brief)

> **Note:** In the library pipeline, transcription runs mechanically via `ruby lib/buttercut/process_footage.rb transcripts <library>` (using `TranscribeJob`), not by dispatching this sub-agent — so footage analysis comes out identical across models. The WhisperX command lives in exactly one place, `lib/buttercut/transcribe_job.rb`, which also runs standalone: `ruby lib/buttercut/transcribe_job.rb <video_path> <output_dir> <language_code> <whisper_model>`. `refine_instructions.md` remains the playbook for the separate (judgment) refinement step that `analyze-video` Step 3 dispatches.

Transcribes video audio using WhisperX and produces a clean JSON transcript with word-level timing.

`SKILL.md` is the parent's dispatch brief. The sub-agent's working prompt lives in `agent_prompt.md` — inline its contents when launching the Task agent. Don't pass `SKILL.md`.

Parallelism

Launch at most **2 in parallel**. WhisperX is already multithreaded internally (~4 CPU threads via CTranslate2); 2 processes is the throughput-vs-RAM sweet spot on a 16GB machine.

Inputs to gather and pass inline

The parent reads `library.yaml` and `settings.yaml` and passes these values inline in each agent's prompt:

  • `video_path` — absolute path to the video file
  • `transcript_output_dir` — where to write the transcript JSON (e.g. `libraries/<library>/transcripts`)
  • `language_code` — ISO 639-1 code (e.g. `en`, `es`) — parent maps from library.yaml's `language` name
  • `whisper_model` — model size from settings.yaml (e.g. `small`, `medium`, `turbo`)
  • `transcript_refinement` — boolean from library.yaml. If `true`, also pass:
  • `user_context` (may be empty string)
  • `footage_summary` (may be empty string)

After the agent returns, update `library.yaml` with `transcript: <filename>.json`.

Next step

Once all videos have audio transcripts, dispatch `analyze-video` for visual descriptions.

Dependencies

WhisperX must be installed. Use the **setup** skill to verify.

Read more
Ships withbuttercut

This is the source code for the core ButterCut XML generator and video editing agent. If you love or hate Docker, have opinions on types, and have a favorite text editor, this is the spot for you.

Get the whole plugin

Other skills on buttercut.

bc
Skill

bc

The ButterCut home menu — welcome the user back, then ask what they'd like to do (start a new cut, add footage to a library, a…