Skip to content
Content
Skill

/transcribe-maker

Transcribe audio / video to SRT / WebVTT / JSON / plain text via OpenAI Whisper or the GPT-4o transcribe models. Auto-detects language or accepts --lang ISO-639-1. $0.003-0.006/min. Pairs with subtitle-burner. API limit 25 MB/call. Use when: 'transcribe this video', 'subtitles

From plugin
skills
2645 skills2 commands1 hook

Claude Code

$ npx -y skills add Mikefluff/skills --skill transcribe-maker --agent claude-code

SKILL.md

transcribe-maker.SKILL.md
name: transcribe-maker
description: "Transcribe audio / video to SRT / WebVTT / JSON / plain text via OpenAI Whisper or the GPT-4o transcribe models. Auto-detects language or accepts --lang ISO-639-1. $0.003-0.006/min. Pairs with subtitle-burner. API limit 25 MB/call. Use when: 'transcribe this video', 'subtitles from audio', 'speech to text', 'распознай речь', 'сделай субтитры из видео', 'whisper'."

license: MIT
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Grep
  - Glob

<objective> Speech-to-text utility. Take audio or video file → output subtitle file (SRT / VTT) or transcript (JSON / text).

Distinct from `voiceover-maker`:

  • voiceover-maker generates SPEECH from text. This goes the OPPOSITE direction: speech → text.
  • Both wrap an OpenAI audio API endpoint.

Distinct from `subtitle-burner`:

  • subtitle-burner takes an existing subtitle file and burns it into video. THIS skill GENERATES the subtitle file. Chain them: `transcribe-maker` → `subtitle-burner`.

This skill does NOT:

  • Translate the transcript (Whisper supports it via separate endpoint; not exposed in v1 — use OpenAI's `/v1/audio/translations` directly if needed)
  • Identify speakers / diarize (Whisper doesn't natively diarize — use deepgram or assemblyai for that)
  • Process files >25 MB (Whisper API limit — split with ffmpeg first)
  • Run locally (uses OpenAI API; for offline use whisper.cpp directly)
  • Edit / clean up transcript (raw Whisper output may have minor errors — manual cleanup needed for production captions)

</objective>

ROLE

Read audio/video input → call OpenAI Whisper API with the requested format → save subtitle / transcript file.

PIPELINE

1. **Resolve input**:

  • `--input <path>` — audio (.mp3, .wav, .m4a) or video (.mp4, .mov, .webm) (required)

2. **Pick output format**:

  • `--format srt` (default) — for `subtitle-burner` consumption
  • `--format vtt` — WebVTT (YouTube / HTML5 `<track>`)
  • `--format text` — plain transcript, no timestamps
  • `--format json` — Whisper raw JSON (simple)
  • `--format verbose_json` — JSON with word-level timestamps + segments

3. **Resolve language** (optional):

  • `--lang en` / `--lang ru` / `--lang de` etc. — ISO-639-1 hint
  • Auto-detect if omitted

4. **Pre-flight**:

  • Check OPENAI_API_KEY set
  • Check file ≤25 MB
  • Cost estimate via ffprobe

5. **Execute** — POST to OpenAI `/v1/audio/transcriptions`.

6. **Save**:

  • Default: `<input-stem>.<format>` next to source
  • Custom: `--output <path>`

MODES

Required

  • `transcribe-maker --input <path>`

Optional

  • `--format srt|vtt|json|text|verbose_json` (default `srt`)
  • `--model whisper-1|gpt-4o-transcribe|gpt-4o-mini-transcribe` (default `whisper-1`)
  • `--lang <ISO-639-1>` — language hint (default: auto-detect)
  • `--temperature <0-1>` — Whisper sampling temp (default 0; deterministic)
  • `--output <path>` — explicit output path
  • `--yes` — skip cost confirmation
  • `--check` — verify env + connectivity
  • `--cost-only` — print estimated cost + exit

PICKING A MODEL

The choice is decided by the output format, not by quality — only `whisper-1` emits subtitles.

| Need | Model | Cost/min | |---|---|---| | SRT / VTT / word-level timestamps | `whisper-1` | $0.006 | | Plain transcript, highest accuracy | `gpt-4o-transcribe` | $0.006 | | Plain transcript, bulk / cheapest | `gpt-4o-mini-transcribe` | $0.003 |

The GPT-4o transcribe models return json/text only. Asking one of them for `srt` fails fast with a message rather than handing `subtitle-burner` something it cannot burn. So anything feeding the subtitle pipeline stays on `whisper-1`; the GPT-4o tiers are for transcripts a human or an LLM will read.

REFERENCES (load on demand)

| File | When to load | |---|---| | [references/formats.md](references/formats.md) | Output format details, when to pick each, Whisper segment behavior | | [references/preprocessing.md](references/preprocessing.md) | When file >25MB: how to split / compress with ffmpeg | | [references/troubleshoot.md](references/troubleshoot.md) | When transcription has errors, language mis-detected, timestamps drift |

EXAMPLES

See [examples/before-after.md](examples/before-after.md) — 3 calibration runs: tutorial video to SRT, Russian podcast to text transcript, multilingual interview with word-level timestamps.

CONSTRAINTS

  • **OpenAI API key required.** Set via `/skills-keys add OPENAI_API_KEY ...`.
  • **File size limit: 25 MB.** Whisper API hard limit. For larger files:
  • Audio: re-encode to lower bitrate (`ffmpeg -i input.wav -b:a 64k input.mp3`)
  • Video: extract audio only (`ffmpeg -i video.mp4 -vn -acodec copy audio.aac`)
  • Long files: split with ffmpeg into <25 MB chunks, transcribe each, concatenate
  • **Cost: ~$0.006/min.** A 60-min podcast = ~$0.36. Very affordable for most use cases.
  • **Language auto-detect is good but not perfect.** For multilingual content, pass `--lang` explicitly for best results.
  • **Whisper has known weaknesses**:
  • Names / proper nouns sometimes wrong
  • Technical jargon often substituted with phonetic alternatives
  • Very quiet audio → hallucination of plausible-but-wrong text
  • Background music interference
  • **Always proofread for production use.** Raw Whisper output is ~95% accurate for clean speech; 80-90% for noisy/accented/technical content.
  • **No speaker diarization.** Whisper transcribes ALL speech but doesn't tag who's speaking. For multi-speaker tagging: use Deepgram / AssemblyAI (not in scope for v1).
  • **SRT format includes timestamps.** Word-level timestamps via `--format verbose_json`. Sentence-level via `--format srt` or `vtt`.
  • **For burning captions on video**: chain with `subtitle-burner`:
  transcribe-maker --input video.mp4 --format srt --output captions.srt --execute
  subtitle-burner burn ./video.mp4 --subtitle ./captions.srt --style modern
  • **Never print API keys.**

INVOCATION HINTS

When the user says any of:

  • "transcribe this video / aud
Read more
@mikefluff
Ships withskills

45 skills for Claude Code that make content — and refuse to let it read like a machine made it. Prose editing that strips the tells. Prompt engineering for 40+ image, video and music models, with optional one-command execution against the real APIs.

Stars on GitHub

Momentum

stars in total
26
Star history of Mikefluff/skills on GitHub, a chart by star-history.com

Other skills on skills.

audio-mix-maker

audio-mix-maker

Mix music/audio onto an existing video via ffmpeg. Modes: replace, overlay, duck (sidechain compressor lowers music under…

@mikefluff@mikefluffInstall Skill
avatar-maker

avatar-maker

Turn a user photo into N profile-pic / headshot / avatar variants in a consistent style. Identity-preserve focused, defaults to…

@mikefluff@mikefluffInstall Skill
banner-maker

banner-maker

Banner-ad / display-creative generator with standard-size presets: Google Display (leaderboard, medium rectangle, mobile,…

@mikefluff@mikefluffInstall Skill
bg-remover

bg-remover

Background removal utility — image in, transparent PNG out. Wraps Replicate-hosted models (851-labs/background-remover default;…

@mikefluff@mikefluffInstall Skill
canon-check

canon-check

Read-only story-bible auditor for fiction series with a documented canon. Cross-references character / artifact / location…

@mikefluff@mikefluffInstall Skill
carousel-builder

carousel-builder

Turn a topic or research brief into an N-slide Instagram / LinkedIn / TikTok carousel with consistent visual style and…

@mikefluff@mikefluffInstall Skill

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about transcribe-maker.

Which coding agents can use transcribe-maker?
transcribe-maker installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.