audio.{speaker}.webm
Une piste Opus par participant. Indexée par SSRC WebRTC, étiquetée nom depuis le roster de réunion. Pas de mixage.
01 · meeting bot api
disponible aujourd'huiForfait $0,30/h. Audio par locuteur, captions, chat — vers votre bucket. POST une URL Google Meet, Microsoft Teams ou Zoom ; recevez des enregistrements propres via webhook signé.
aperçu
C'est ce que nous livrons aujourd'hui. Un seul endpoint REST qui prend une URL de réunion et retourne un id de job. Derrière : un orchestrateur Bun + Drizzle dispatche un bot Chrome piloté par Puppeteer dans un conteneur Docker, le bot rejoint la réunion comme une tuile d'invité régulier, capture l'audio par locuteur depuis le mapping SSRC WebRTC, scrape les captions (ou lit le canal de données Meet là où il existe), et upload tout vers le bucket compatible S3 que vous avez désigné lors de la création de votre compte.
Quand l'hôte part, le bot est expulsé, ou la réunion se termine, vous recevez un seul webhook signé avec le chemin du manifeste. Pas de format de conteneur propriétaire. Pas de « connectez-vous à notre portail pour télécharger ». Les fichiers vivent dans votre bucket, sous votre politique de rétention, sous vos clés KMS. Nous facturons à la minute de réunion, pas à la réunion — un appel de 17 minutes coûte 8,5 cents.
L'anti-bot est la chose dont personne d'autre ne parle. Nous opérons un pool rotatif de comptes Workspace de bot pour franchir l'écran d'admission dual de Google d'avril 2026. Chaque retry utilise une empreinte Chrome plus furtive via l'escalade de palier dans la config de tâche Trigger.dev — pas de boucles de retry custom, pas de for-loops fragiles autour de fetch. Les conteneurs du bot sont mono-usage et éphémères.
ce que vous récupérez
Une piste Opus par participant. Indexée par SSRC WebRTC, étiquetée nom depuis le roster de réunion. Pas de mixage.
Capture d'onglet VP9 via x11grab. Ce qu'un spectateur verrait, incluant les écrans partagés. Bitrate configurable.
JSON délimité par nouvelle ligne, une ligne par énoncé finalisé avec speakerId + ms début/fin.
Messages de chat de réunion entrants, attribués à l'expéditeur et horodatés. Même forme à travers Meet/Teams/Zoom.
Index de chaque fichier plus roster de participants, métadonnées de réunion, sub-code à la sortie, et hash de contenu par artefact.
Webhook signé (HMAC-SHA256 sur le corps) quand le manifeste est uploadé. Nous re-essayons sur non-2xx avec backoff exponentiel via la file.