Turn any video into a package an LLM can read — transcript, keyframes, manifest — without the video ever leaving your machine.
Most video-to-text tools give you a transcript and stop. That carries the words — but a product demo, a tutorial, or a fast-cut reel communicates visually. An LLM reading only the transcript is analyzing a radio show.
And most tools that go further do it in someone's cloud: you upload your footage — client work, unreleased products, internal recordings — to a third-party server just to get frames back.
The alternative: a local pipeline that produces both the text and the visuals, as plain files, on your own hardware.
claude-real-video (crv) is a free, MIT-licensed command-line tool (1.2k+ GitHub stars). One command produces everything an LLM needs:
# install (Python 3.10+; macOS/Windows/Linux) brew install ffmpeg pip install "claude-real-video[whisper]" crv lecture.mp4 -o out --lang en → out/frames/*.jpg # scene-change keyframes, deduplicated → out/transcript.txt # plain-text transcript (any LLM reads it) → out/transcript.json # timestamped segments for your own tools → out/MANIFEST.txt # tells the model how to read the package
--whisper-model turbo gets close to large-v2 accuracy at ~8x the speed.--keep-audio also saves the full soundtrack for audio-capable models.crv-web for a local web page — paste a link, click Analyze, open the result viewer.| step | where it happens |
|---|---|
| Download / read the video | your machine (yt-dlp for URLs, or a local file) |
| Frame extraction + dedup | your machine (ffmpeg) |
| Transcription | your machine (Whisper) |
| Analysis by the LLM | your choice — paste into a cloud LLM, or feed a self-hosted model and nothing leaves your machine |
The source video never gets uploaded. If you later paste frames or transcript into ChatGPT, Claude, or Gemini, only that pasted content goes to that provider — with a self-hosted open-source vision model, the whole loop stays on your hardware.
The output is deliberately boring: JPEG images and plain text. That's what makes it universal.
Tip: --grid tiles consecutive keyframes into 3x3 contact sheets — the model reads an ordered sequence, and you attach 9x fewer images.
Keyframes and transcript tell a model what is on screen and what was said. They can't carry how the camera moves, how fast the edit cuts, or how the speaker's voice shifts. For that, crv Pro ($19 one-time) adds a motion pass — camera-move classification, editing rhythm, action-burst frame sequences, and a timestamped perception timeline — computed locally like everything else, written into the same manifest as plain text.
One command: crv "url-or-file". You get a transcript, timestamped JSON, deduplicated keyframes and a manifest — all local.
Yes — that's the point. Processing is entirely on your machine; you choose what (if anything) to share with a cloud model.
Local files, plus URLs from YouTube, Instagram, TikTok and other yt-dlp-supported sites. macOS, Windows and Linux.
The core tool is MIT-licensed and free. The optional Pro motion/emotion analysis is a $19 one-time add-on.