Workflow · Updated October 2, 2026

Auto captions andsubtitles with Claude

Claude Code builds captions from Whisper word timestamps, rebuilt after every cut so they stay in sync, and either writes an SRT or burns them into the picture. Every caption uses a font size measured to fit its space, and a pixel check fails the render if anything touches the edge.

16:9 in, 9:16 out, the face measured per shot

9:16 windowalmost like a hedge fund
  • Face centre at 40% of the frame height, crown kept
  • Median face per shot, never one median for the whole clip
  • Captions shrink to fit the safe area, then a pixel check

What you need

  • Claude Code in a terminal, pointed at a folder with your footage.
  • ffmpeg and ffprobe on your PATH.
  • A local Whisper model for word-level transcripts.
  • Python with numpy, soundfile and OpenCV for the checks.

Captions from word timings

Whisper gives a start and end for every word. Claude groups them into short lines and writes an SRT. After any edit, it rebuilds the timings from the cut, never by shifting the old ones.

  1. Transcribe the final cut

    Caption the edited file, not the raw one. Word timestamps on.

  2. Group into lines

    A few words per line on 9:16, broken at phrase boundaries.

  3. Write the SRT

    One file per deliverable. YouTube and LinkedIn take it as a sidecar.

  4. Burn in for social

    For Shorts, Reels and TikTok, burn them into the picture.

  5. Gate the render

    Build each caption on its own, scan its pixels for anything in the padding or touching the edge, and refuse to encode on a failure.

The quick version: burn an SRT built from the cut word timings.
ffmpeg -i out/clip_9x16.mp4 -vf "subtitles=out/clip.srt:force_style='FontName=Inter,FontSize=14,Bold=1,Alignment=2,MarginV=90'" out/clip_captioned.mp4

Shrink to fit, then look

Never set a fixed font size on variable copy. Measure each line against the space it has and shrink until it fits, then render a still and look at it before any video renders.

A render costs minutes; a caption card costs a second. Sprites builds every card standalone, writes a contact sheet, and the renderer exits non-zero if one fails. Ask Claude for the same: stills first, video second.

One frame every two seconds on a single sheet, so Claude and you can look at the whole edit.
ffmpeg -i out/clip.mp4 -vf "fps=1/2,scale=320:-1,tile=6x5" -frames:v 1 qa/sheet.png

Every Claude video editing guide

Remove Filler Words From Video With Claude (2026)Cut um, uh, stutters and long pauses from a talking-head video with Claude Code, ffmpeg and a primed Whisper transcript. Exact prompts, commands and checks.Turn a Podcast Into Shorts With Claude (2026)Turn a long podcast or video into vertical shorts with Claude Code: pick moments from the transcript, tighten, pace, reframe to 9:16 and caption. Real steps.Auto Reframe Video to 9:16 With Claude (2026)Reframe horizontal video to vertical 9:16 with Claude Code: measure the face per shot, crop around it with ffmpeg, keep the head in frame and check every shot.Clean Up Podcast Audio and Hit -14 LUFS With ClaudeClean up podcast and talking-head audio with Claude Code and ffmpeg: high-pass, expander, denoise, EQ, 3:1 compression, de-esser, then -14 LUFS and -1 dBTP.Remove Silence and Jump Cut Video With ClaudeTrim dead air and pauses from talking-head video with Claude Code and ffmpeg: detect pauses over 0.4 s, cut them to 0.2 s and hide the jump. Commands included.Make YouTube Thumbnails With Claude (2026)Make YouTube thumbnails, Shorts covers and LinkedIn crops with Claude Code: the frame where the hook lands, the title in the middle band, four shapes.Descript Alternative: Edit With Claude Instead (2026)Replace Descript with Claude Code, ffmpeg and Whisper: filler removal, transcript cuts, captions and Studio Sound-style cleanup. Prices compared, limits stated.Opus Clip Alternative: Make Shorts With Claude (2026)Turn podcasts into shorts with Claude Code instead of Opus Clip: transcript-picked moments, 9:16 reframes, captions. Opus Clip, Riverside, Vizard prices.CapCut Alternative: Edit Talking-Head Video With ClaudeA CapCut alternative for talking-head and podcast video: Claude Code with ffmpeg and Whisper for captions, silence and filler cuts, 9:16 reframing and loudness.Submagic Alternative: Captions and Shorts With ClaudeA Submagic alternative: Claude Code writes word-timed captions, cuts silences and fillers with ffmpeg. Submagic, Captions and Vizard prices compared.

Frequently asked questions

How do I auto caption a video with AI for free?

Run a local Whisper model for word timestamps, have Claude Code group them into an SRT, and burn it in with ffmpeg's subtitles filter. All three run on your machine.

How do I add subtitles to a video with AI?

Transcribe the final edit with word timestamps, write an SRT from them, then upload it as a sidecar or burn it into the picture with ffmpeg.

Why are my captions out of sync after editing?

They were shifted from the original transcript instead of rebuilt from the cut. Re-transcribe the edited file, or rebuild word times from the edit list.

Want finished ads, not editing sessions?

Director by Sprites is a full creative team for your startup. Every Monday you get finished, on-brand video ads, reviewed by a human. Strategy, hooks, scripts, shooting and editing, end to end. You never write a prompt. You pick the winners. Sprites ships the campaigns. In private beta.