meetbot.dev

01 · meeting bot api

disponível hoje

O bot de reuniões, API.

$0,30/h plano. Áudio por falante, captions, chat — para seu bucket. POST uma URL de Google Meet, Microsoft Teams ou Zoom; receba gravações limpas via webhook assinado.

visão geral

Por que isso existe.

Isto é o que enviamos hoje. Um único endpoint REST que pega URL de reunião e devolve um id de job. Atrás: orquestrador Bun + Drizzle despacha um bot Chrome conduzido por Puppeteer dentro de container Docker, o bot entra na reunião como tile de convidado normal, captura áudio por falante via mapeamento SSRC do WebRTC, raspa captions (ou lê o canal de dados do Meet onde existe), e sobe tudo para o bucket compatível com S3 que você designou ao criar sua conta.

Quando o host sai, o bot é expulso, ou a reunião termina, você recebe um único webhook assinado com a rota do manifesto. Sem formato de container proprietário. Sem «entre no nosso portal para baixar». Arquivos vivem no seu bucket, sob sua política de retenção, sob suas chaves KMS. Cobramos por minuto de reunião, não por reunião — uma chamada de 17 minutos custa 8,5 centavos.

Anti-bot é a coisa que ninguém mais conta. Operamos pool rotativo de contas Workspace de bot para passar pela tela de admissão dual de Google de abril 2026. Cada retry usa fingerprint de Chrome mais furtivo via escalada de níveis na config de task do Trigger.dev — sem loops de retry customizados, sem for-loops instáveis em volta de fetch. Containers do bot são de propósito único e efêmeros.

o que você recebe

O contrato, detalhado.

item

audio.{speaker}.webm

Uma trilha Opus por participante. Indexada por SSRC do WebRTC, etiquetada com nome do roster da reunião. Sem mistura.

item

tab.video.webm

Captura de aba VP9 via x11grab. O que um espectador veria, incluindo telas compartilhadas. Bitrate configurável.

item

captions.jsonl

JSON delimitado por nova linha, uma linha por enunciado finalizado com speakerId + ms de início/fim.

item

chat.jsonl

Mensagens de chat de reunião entrantes, atribuídas ao remetente e com timestamp. Mesmo formato em Meet/Teams/Zoom.

item

manifest.json

Índice de cada arquivo mais roster de participantes, metadados de reunião, sub-código de saída e hash de conteúdo por artefato.

item

POST {your-hook}

Webhook assinado (HMAC-SHA256 sobre o corpo) quando o manifesto sobe. Re-tentamos em não-2xx com backoff exponencial via fila.