Transcription that stays on your laptop and off your cloud bill
yapsnap turns any video URL or audio file into plaintext on plain CPU, with optional timestamps and speaker labels — no GPU, no API keys.
What it does
Point it at a YouTube link, a TikTok, an X video, or a local file, and it writes a UTF-8 .txt transcript next to your shell. The whole pipeline is local: yt-dlp fetches, ffmpeg decodes to 16 kHz mono, and a streaming Zipformer transducer (Kroko, INT8 ONNX, ~80 MB) does the recognition on CPU. It claims several-times-realtime speed on a laptop, and it’s fully offline after the first model download.
The interesting bit Language detection is a neat bit of thrift: a whisper-tiny language-ID head pruned to ten languages listens to two 5-second samples cut at ~15% and ~55% into the file, and auto-fetches the matching Kroko model. The autotuning is also unusually thoughtful — it counts physical cores, not hyperthreads, because oversubscribing actually slows ONNX down.
Key highlights
- Ten languages (German, English, Spanish, French, Italian, Hebrew, Dutch, Portuguese, Swedish, Turkish), auto-detected by default; pin with
--lang fr. --timestampsemits[MM:SS]per sentence, correctly scaled even when audio is pre-sped-up 1.4x (the default, pitch-preserved).--diarizeaddsSPEAKER_00-style labels via a second ONNX pass — still no PyTorch, no cloud SDKs.- Runtime deps are just
sherpa-onnx,numpy, andyt-dlp(plusffmpegon PATH). - Works on macOS, Linux, and Windows; output lands in
./transcripts/by default.
Caveats
- Speaker labels are per-run only —
SPEAKER_00in one file has no relation toSPEAKER_00in another. - The default 1.4x speedup trades some accuracy on hard audio;
--speed 1.0opts out. yt-dlpis deliberately unpinned, so URL fetching depends on keeping it current.
Verdict Great fit if you want quick, private, dependency-light transcripts of talks, podcasts, or meetings without provisioning anything. Skip it if you need languages beyond the ten supported or speaker identity that persists across files.
Frequently asked
- What is kouhxp/yapsnap?
- yapsnap turns any video URL or audio file into plaintext on plain CPU, with optional timestamps and speaker labels — no GPU, no API keys.
- Is yapsnap open source?
- Yes — kouhxp/yapsnap is open source, released under the Apache-2.0 license.
- What language is yapsnap written in?
- kouhxp/yapsnap is primarily written in Python.
- How popular is yapsnap?
- kouhxp/yapsnap has 427 stars on GitHub.
- Where can I find yapsnap?
- kouhxp/yapsnap is on GitHub at https://github.com/kouhxp/yapsnap.