meetbot.dev

bot api · discord

livre M2 (juin-juil) 2026

Discord, enregistré.

Un nouveau marché. L'adaptateur Discord rejoint un canal voix ou stage avec un token OAuth, reçoit des frames Opus sur UDP via @discordjs/voice, et écrit des streams .ogg par utilisateur. Pas de navigateur nécessaire ; tourne comme un conteneur Node beaucoup plus léger que le chemin Meet/Teams/Zoom.

aperçu

Pourquoi ça existe.

Pourquoi Discord. Standups asynchrones, studios de jeux indé, communautés dev, podcasteurs — il y a tout un segment exécutant ses réunions dans Discord qui aujourd'hui doit enregistrer localement et uploader manuellement. La passerelle voix de Discord expose des streams Opus par utilisateur nativement, donc nous n'avons pas besoin d'adaptateur d'automatisation de navigateur du tout ; le bot est un petit processus Node qui rejoint le canal, écoute les événements VoiceConnection.receiver.subscribe() par utilisateur, et écrit les streams directement sur disque.

productDiscord.body2

productDiscord.body3

périmètre prévu

Spec, à découvert.

item

Adaptateur @discordjs/voice

Le bot rejoint un canal voix ou stage avec un token OAuth ; s'abonne aux streams Opus par utilisateur sur UDP. Pas de navigateur nécessaire.

item

audio.{user}.ogg

Opus par utilisateur dans le conteneur natif de Discord. Nous ne transcodons pas — le fichier que vous recevez est bit-exact ce que la passerelle a livré.

item

Support de Stage

Locuteurs vs audience gérés correctement ; le bot tire la liste de locuteurs de l'instance de stage. Les membres de l'audience sont silencieux et ne sont pas capturés.

item

Conteneur plus léger

Processus Node, pas de Xvfb, pas de Chrome, pas de x11grab. Moins cher à exécuter ; nous vous le passons au même forfait $0,30/h.

item

Pass-through de transcription

Si la transcription est activée, les streams par utilisateur alimentent directement le pipeline de transcription ; les tags de locuteur sont parfaits par construction.

item

Sub-codes à la sortie

channel_full, missing_voice_permission, bot_kicked, channel_deleted, meeting_ended — remontés sur le webhook de complétion.