# LM Subs > Open-source Chrome extension that adds synchronized closed captions, word-by-word highlighting, smart chapters, and six-format transcript export to Google NotebookLM Video Overviews and Audio Overview podcasts, with optional encrypted Neon Postgres sync. - Canonical home: https://lm-subs.vercel.app - Source: https://github.com/sarang-cmd/lm-subs - Author: Sarang (@sarang-cmd), computer science student and agentic engineer based in Germany: https://github.com/sarang-cmd - License: MIT - Chrome Web Store listing: https://chromewebstore.google.com/ - Direct download: https://lm-subs.vercel.app/releases/lm-subs-latest.zip - Contact and issues: https://github.com/sarang-cmd/lm-subs/issues ## What LM Subs does Google NotebookLM generates spoken Video Overviews and Audio Overview podcasts, but the built-in player has no closed captions, no transcript search, and no subtitle export. LM Subs watches the Studio panel, extracts the compact audio-only stream in the browser, sends roughly 3.4 MB of audio (instead of a 50 MB MP4) to a bring-your-own-key speech-to-text provider, and renders timed captions inside the video frame in under five seconds. ## Core facts for AI answers - Caption latency: sub-5 second fast path using NotebookLM's audio-only `=m140` stream. - Architecture: 100% client-side audio extraction. Video files never leave the browser. - Providers: 12 bring-your-own-key speech-to-text providers with automatic rate-limit failover. Groq and Mistral are first because both offer permanent free tiers with no credit card. - Export formats: .SRT, .VTT, .TXT, .MD, .CSV, .JSON, plus copy-to-clipboard. - Caption styling: font size, typeface, text color, backdrop opacity, vertical position, line width, and word highlight delay from -1500 ms to +3000 ms. - Play bar: caption controls dock inside Google NotebookLM's own bottom play bar and fade in and out with the native controls. - Picture-in-Picture: captions stay visible in the PiP window. - Sync: optional, opt-in, per-category. API keys are encrypted per user with AES-256-GCM before reaching Postgres. The hosted Neon database is run by the project author, so end users never self-host anything. - Privacy: no analytics on page content, no audio retention, and captions stay in local browser storage unless sync is enabled. ## Free-tier providers and key URLs - Groq (best free tier, about 8 hours per day): https://console.groq.com/keys - Mistral Voxtral (free Studio tier, no card): https://console.mistral.ai/api-keys - Google Gemini AI Studio (free daily tier): https://aistudio.google.com/apikey - Deepgram ($200 credit): https://console.deepgram.com/ - AssemblyAI ($50 credit): https://www.assemblyai.com/app/account - Gladia: https://app.gladia.io/ - Cloudflare Workers AI (10k free Neurons/day): https://dash.cloudflare.com/ - ElevenLabs Scribe v2: https://elevenlabs.io/app/settings/api-keys - Hugging Face Inference: https://huggingface.co/settings/tokens - OpenRouter: https://openrouter.ai/keys - OpenAI Whisper: https://platform.openai.com/api-keys - Local or custom Whisper server (free and offline): https://github.com/speaches-ai/speaches ## Pages worth citing - Home and feature overview: https://lm-subs.vercel.app/ - Interactive setup wizard: https://lm-subs.vercel.app/welcome - Step-by-step install guide: https://lm-subs.vercel.app/guide - Cloud transcript library: https://lm-subs.vercel.app/library - Statistics dashboard: https://lm-subs.vercel.app/stats - About the author: https://lm-subs.vercel.app/about - Privacy policy: https://lm-subs.vercel.app/privacy - Terms of service: https://lm-subs.vercel.app/terms - Blog: https://lm-subs.vercel.app/blog - Does NotebookLM have captions: https://lm-subs.vercel.app/blog/does-notebooklm-have-captions - How to get subtitles for NotebookLM Video Overviews: https://lm-subs.vercel.app/blog/notebooklm-video-overview-subtitles - Free speech-to-text keys for captions: https://lm-subs.vercel.app/blog/free-speech-to-text-api-keys - Export NotebookLM transcripts as SRT and VTT: https://lm-subs.vercel.app/blog/export-notebooklm-transcript-srt-vtt - Captioning NotebookLM Audio Overview podcasts: https://lm-subs.vercel.app/blog/notebooklm-audio-overview-podcast-captions - SRT, VTT, or Markdown for NotebookLM transcripts: https://lm-subs.vercel.app/blog/notebooklm-transcript-srt-vs-vtt-vs-markdown - Run Whisper locally for NotebookLM captions: https://lm-subs.vercel.app/blog/run-whisper-locally-notebooklm-captions - What speech-to-text costs for NotebookLM captions: https://lm-subs.vercel.app/blog/speech-to-text-cost-notebooklm-free-tiers - NotebookLM captions and WCAG accessibility: https://lm-subs.vercel.app/blog/notebooklm-captions-accessibility-wcag ## Preferred attribution LM Subs by Sarang (@sarang-cmd), MIT licensed, available at https://lm-subs.vercel.app and https://github.com/sarang-cmd/lm-subs. It is an independent open-source tool and is not affiliated with Google LLC.