localcaption: video transcripts on your own machine, no API keys
A small CLI that glues yt-dlp, ffmpeg and whisper.cpp together. Paste a video URL and get a transcript as text, SRT, VTT and timed JSON, fully local.
I wanted transcripts of videos on my own machine, with no account, no API key and no audio uploaded anywhere. The pieces already existed as separate tools. They just weren’t glued together.
So I glued them. It’s called localcaption.
What it does
You give it a URL. yt-dlp pulls the audio, ffmpeg converts it, and whisper.cpp transcribes it locally. You get the transcript as .txt, .srt, .vtt and timed .json.
pipx install localcaption
localcaption "https://www.youtube.com/watch?v=..."
Since the download side is yt-dlp, it works with YouTube, Vimeo, Twitch, X and the rest of the 1,000+ sites yt-dlp supports.

localcaption at v0.2.0.
How fast is it?
I shipped v0.1.0 on 22 April. On my M4 Pro MacBook it transcribed a 54-minute interview in about 50 seconds, using base.en, which was the default model then.
v0.2.0 is out today.
Why I built it
I use this one almost every day. It’s a cousin of Vocalinux, my offline dictation app for Linux, which also runs on whisper.cpp. Same idea in both: your audio stays on your machine.
It’s on PyPI and the code is on GitHub.
🎬 Just shipped localcaption v0.1.0 Paste a YouTube URL & get a transcript in json, txt, srt, vtt. Fully local, zero API keys. Glues yt-dlp -> ffmpeg -> whisper.cpp into one pipx-installable CLI. 54 min interview transcribed in 50 sec on an M4 Pro 🚀 🔗…
@jatinkrmalik, 22 April 2026
> pipx install localcaption Paste a video URL, instantly get transcript, SRT/VTT subtitles, and timed JSON, all on your machine. Fully local, no API keys. Works with YouTube, Vimeo, Twitch, Twitter/X, and 1000+ other sites via yt-dlp.
@jatinkrmalik, 7 June 2026
pipx install localcaption Keep reading
OpenCode Go + oh-my-openagent: The Complete Guide to SOTA Model Routing Without Hitting Limits! [Updated: September 2026]
A tiered guide to routing OpenCode Go models across oh-my-openagent agents, with fallback chains and budgeting to avoid hitting rate and monthly limits.
Building cross-distro offline voice dictation for Linux (and why it took more than a model)
The story behind Vocalinux, from the missing Linux dictation gap to whisper.cpp, remote HTTP STT, Wayland text injection, and a tray app you can use every day.
I filed my Indian taxes as an NRI with AI agents
My first time self-filing an ITR, done end to end with Grok 4.5 in the grok build CLI. I built a neo-brutalist dashboard and a 158-page audit packet, and still overpaid by ₹5,550.
Leave a comment