I tried to capture system audio in the browser. Here's what I learned. — DeepSeek Blog | Neura Market
    Neura MarketNeura Market/DeepSeek
    ChatGPTChatGPTClaudeClaudeGeminiGeminiCursorCursorGrokGrokPerplexityPerplexityDeepSeekDeepSeek
    CoPilotCoPilotStable DiffusionStable DiffusionMidjourneyMidjourney
    View All Directories
    OverviewRulesPromptsMCPsAgentsBlogVideosGuidesCoursesCommunityTrendingGenerate
    DeepSeekBlogI tried to capture system audio in the browser. Here's what I learned.
    Back to Blog
    I tried to capture system audio in the browser. Here's what I learned.
    api

    I tried to capture system audio in the browser. Here's what I learned.

    Flo January 12, 2026
    0 views

    I'm building LiveSuggest, a real-time AI assistant that listens to your meetings and gives you...

    I'm building LiveSuggest, a real-time AI assistant that listens to your meetings and gives you suggestions as you talk. Simple idea, right? Turns out, capturing audio from a browser tab is... complicated. ## The good news Chrome and Edge support it. You use `getDisplayMedia`, the same API for screen sharing, but with an audio option: ```javascript const stream = await navigator.mediaDevices.getDisplayMedia({ video: true, audio: { systemAudio: 'include' } }); ``` The user picks a tab to share, checks "Share tab audio", and boom — you get the audio stream. Works great for Zoom, Teams, Meet, whatever runs in a browser tab. ## The bad news **Firefox?** Implements `getDisplayMedia` but completely ignores the audio part. No error, no warning. You just... don't get audio. **Safari?** Same story. The API exists, audio doesn't. **Mobile browsers?** None of them support it. iOS, Android, doesn't matter. So if you're building something that needs system audio, you're looking at Chrome/Edge desktop only. That's maybe 60-65% of your potential users. ## What I ended up doing I detect the browser upfront and show a clear message: > "Firefox doesn't support system audio capture for meetings. Use Chrome or Edge for this feature. Microphone capture is still available." No tricks, no workarounds. Just honesty. Users appreciate knowing why something doesn't work rather than wondering if they did something wrong. For Firefox/Safari users, the app falls back to microphone-only mode. It's not ideal for capturing both sides of a conversation, but it's better than nothing. ## The annoying details A few things that wasted my time so they don't waste yours: **You have to request video.** Even if you only want audio. `video: true` is mandatory. I immediately stop the video track after getting the stream, but you can't skip it. **The "Share tab audio" checkbox is easy to miss.** Chrome shows it in the sharing dialog, but it's not checked by default. If your user doesn't check it, you get a stream with zero audio tracks. No error, just silence. **The stream can die anytime.** User clicks "Stop sharing" in Chrome's toolbar? Your stream ends. You need to listen for the `ended` event and handle it gracefully. ## Was it worth it? Absolutely. For the browsers that support it, capturing tab audio is a game-changer. You can build things that weren't possible before — meeting assistants, live translators, accessibility tools. Just go in knowing that you'll spend time on browser detection and fallbacks. That's the web in 2025. If you're curious about what I built, check out [LiveSuggest](https://livesuggest.ai). And if you've found better workarounds for Firefox/Safari, I'd love to hear about them in the comments.

    Tags

    apijavascriptlearningwebdev

    Comments

    More Blog

    View all
    How I'm using ASTs and Gemini to solve the "Codebase Onboarding" problem 🧠ai

    How I'm using ASTs and Gemini to solve the "Codebase Onboarding" problem 🧠

    Hi everyone! 👋 I’m Tara, a Senior Software Engineer and Consultant. Over the years, I've jumped...

    T
    tworrell
    Local AI Will Save Us All (The Math Says So, Trust Me)ai

    Local AI Will Save Us All (The Math Says So, Trust Me)

    Every few weeks a take goes viral in tech circles making the case for ditching cloud AI and running...

    S
    Sebastian Schürmann
    Lost in the AI Hype, I Started Smallai

    Lost in the AI Hype, I Started Small

    And it helped me get back into tech without drowning TL;DR at the end Coming back to...

    R
    Rohini Gaonkar
    Building a Replay-Tested Interactive Brokers Client in Gogo

    Building a Replay-Tested Interactive Brokers Client in Go

    I wanted an IBKR library that felt like Go and had testing I could trust. So I wrote one.

    T
    Thomas Marcelis
    Playwright in Pictures: Fully Parallel Modeplaywright

    Playwright in Pictures: Fully Parallel Mode

    Playwright’s fullyParallel mode is often treated as a simple performance switch. In practice, it...

    V
    Vitaliy Potapov
    Designing a CLI for Both Humans and Agentscli

    Designing a CLI for Both Humans and Agents

    Learn how Alpic designed its CLI for both human developers and AI agents — covering tradeoffs like polling, context windows, interactivity, and statelessness.

    J
    Julien Vallini

    Stay up to date

    Get the latest DeepSeek prompts, rules, and resources delivered to your inbox weekly.

    Neura Market LogoNeura Market

    Discover the best AI prompts, plugins, and resources for DeepSeek and more.

    Content Types

    • Rules
    • Prompts
    • MCPs
    • Agents
    • Guides

    Platforms

    • ChatGPT Directory
    • Claude Directory
    • Gemini Directory
    • Cursor Directory
    • Grok Directory
    • Perplexity Directory
    • DeepSeek Directory
    • CoPilot Directory
    • Stable Diffusion Directory
    • Midjourney Directory
    • All Directories

    Resources

    • Blog
    • Documentation
    • Help Center
    • Marketplace

    Legal

    • Privacy Policy
    • Terms of Service

    © 2026 Neura Market. All rights reserved.

    |

    Not affiliated with any AI platform vendors.