developer-tools 1 min read

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 --help output in a terminal: options for the whisper model, output directory, language, whisper.cpp directory, keeping audio and auto-downloading models, at v0.2.0

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
1 / 2
The v0.1.0 launch post and the one from today.
jatinkrmalik/localcaption Local, offline Whisper transcription for YouTube, Vimeo, Twitch and your own audio or video. Writes SRT, VTT, JSON and text. No API keys. pipx install localcaption Python ★ 17 View on GitHub →

Leave a comment

Keep reading

ai 6 min

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.