audio.{speaker}.webm
Uma trilha Opus por participante. Indexada por SSRC do WebRTC, etiquetada com nome do roster da reunião. Sem mistura.
01 · meeting bot api
disponível hoje$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
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
Uma trilha Opus por participante. Indexada por SSRC do WebRTC, etiquetada com nome do roster da reunião. Sem mistura.
Captura de aba VP9 via x11grab. O que um espectador veria, incluindo telas compartilhadas. Bitrate configurável.
JSON delimitado por nova linha, uma linha por enunciado finalizado com speakerId + ms de início/fim.
Mensagens de chat de reunião entrantes, atribuídas ao remetente e com timestamp. Mesmo formato em Meet/Teams/Zoom.
Í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.
Webhook assinado (HMAC-SHA256 sobre o corpo) quando o manifesto sobe. Re-tentamos em não-2xx com backoff exponencial via fila.