meetbot.dev

01 · meeting bot api

disponible hoy

El bot de reuniones, API.

$0,30/h plano. Audio por hablante, captions, chat — a tu bucket. POST una URL de Google Meet, Microsoft Teams o Zoom; recibe grabaciones limpias vía webhook firmado.

resumen

Por qué existe esto.

Esto es lo que enviamos hoy. Un único endpoint REST que toma una URL de reunión y devuelve un id de trabajo. Detrás: un orquestador Bun + Drizzle despacha un bot de Chrome conducido por Puppeteer dentro de un contenedor Docker, el bot se une a la reunión como una baldosa de invitado normal, captura audio por hablante a partir del mapeo SSRC de WebRTC, raspa captions (o lee el canal de datos de Meet donde existe), y sube todo al bucket compatible con S3 que designaste al crear tu cuenta.

Cuando el host se va, el bot es expulsado o la reunión termina, recibes un único webhook firmado con la ruta del manifiesto. Sin formato de contenedor propietario. Sin «inicia sesión en nuestro portal para descargar». Los archivos viven en tu bucket, bajo tu política de retención, bajo tus claves KMS. Facturamos por minuto de reunión, no por reunión — una llamada de 17 minutos son 8,5 céntimos.

El anti-bot es lo que nadie más cuenta. Operamos un pool rotativo de cuentas Workspace de bot para superar la pantalla de admisión dual de Google de abril 2026. Cada reintento usa una huella de Chrome más sigilosa vía escalado de niveles en la config de tarea de Trigger.dev — sin bucles de reintento personalizados, sin for-loops inestables alrededor de fetch. Los contenedores del bot son de un solo propósito y efímeros.

lo que recibes

El contrato, detallado.

item

audio.{speaker}.webm

Una pista Opus por participante. Indexada por SSRC de WebRTC, etiquetada con nombre desde el roster de la reunión. Sin mezclas.

item

tab.video.webm

Captura de pestaña en VP9 vía x11grab. Lo que vería un espectador, incluyendo pantallas compartidas. Bitrate configurable.

item

captions.jsonl

JSON delimitado por nuevas líneas, una fila por enunciado finalizado con speakerId + ms de inicio/fin.

item

chat.jsonl

Mensajes de chat de reunión entrantes, atribuidos al remitente y con timestamp. Misma forma en Meet/Teams/Zoom.

item

manifest.json

Índice de cada archivo más roster de participantes, metadatos de reunión, sub-código de salida y un hash de contenido por artefacto.

item

POST {your-hook}

Webhook firmado (HMAC-SHA256 sobre el cuerpo) cuando el manifiesto se sube. Reintentamos en no-2xx con backoff exponencial vía la cola.