@discordjs/voice adapter
Bot joins a voice channel or stage with an OAuth token; subscribes to per-user Opus streams over UDP. No browser needed.
bot api · discord
shipping M2 (Jun–Jul) 2026A new market. The Discord adapter joins a voice channel or stage with an OAuth token, receives Opus frames over UDP via @discordjs/voice, and writes per-user .ogg streams. No browser needed; runs as a much lighter Node container than the Meet/Teams/Zoom path.
overview
Why Discord. Async standups, indie game studios, dev communities, podcasters — there's a whole segment running their meetings in Discord that today have to record locally and upload manually. The Discord voice gateway exposes per-user Opus streams natively, so we don't need a browser-automation adapter at all; the bot is a small Node process that joins the channel, listens for VoiceConnection.receiver.subscribe() events per user, and writes the streams straight to disk.
productDiscord.body2
productDiscord.body3
planned scope
Bot joins a voice channel or stage with an OAuth token; subscribes to per-user Opus streams over UDP. No browser needed.
Per-user Opus in Discord's native container. We don't transcode — the file you get is bit-exact what the gateway delivered.
Speakers vs audience handled correctly; bot pulls the speakers list from the stage instance. Audience members are silent and not captured.
Node process, no Xvfb, no Chrome, no x11grab. Cheaper to run; we pass that on at the same $0.30/hr flat.
If transcription is enabled, per-user streams feed straight into the transcription pipeline; speaker tags are perfect by construction.
channel_full, missing_voice_permission, bot_kicked, channel_deleted, meeting_ended — surfaced on the completion webhook.