meetbot.dev

01 · meeting bot api

доступно сегодня

Meeting Bot, API.

$0.30/hr flat. Per-speaker audio, captions, chat — to your bucket. POST a Google Meet, Microsoft Teams, or Zoom URL; get clean recordings back via signed webhook.

обзор

Зачем это существует.

Это то, что мы поставляем сегодня. Один REST-endpoint, который принимает URL встречи и возвращает идентификатор задачи. За ним: оркестратор Bun + Drizzle отправляет Puppeteer-управляемого Chrome-бота внутри Docker-контейнера, бот заходит во встречу как обычный гостевой участник, захватывает аудио по каждому участнику через WebRTC SSRC mapping, скрапит субтитры (или читает data-канал Meet там, где он есть) и загружает всё в S3-совместимый bucket, который вы указали при создании аккаунта.

Когда хост покидает встречу, бот выгоняется или встреча заканчивается, вы получаете один подписанный webhook с путём к манифесту. Никакого проприетарного формата контейнера. Никаких «зайдите в наш портал, чтобы скачать». Файлы живут в вашем bucket, по вашей политике удержания, под вашими KMS-ключами. Мы биллим по минуте встречи, а не по встрече — звонок в 17 минут стоит 8.5 цента.

Anti-bot — то, о чём никто другой не говорит. Мы крутим ротационный пул Workspace-аккаунтов ботов, чтобы пройти апрельский 2026 dual-queue admit screen Google. Каждая повторная попытка использует более стелсовый отпечаток Chrome через эскалацию тиров в конфиге задачи Trigger.dev — никаких самописных циклов retry, никаких хрупких for-loop вокруг fetch. Контейнеры ботов одноразовые и эфемерные.

что вы получаете

Контракт, по пунктам.

item

audio.{speaker}.webm

Один Opus-трек на участника. WebRTC SSRC-keyed, имя проставлено из roster встречи. Без миксинга.

item

tab.video.webm

VP9-захват вкладки через x11grab. То, что увидел бы зритель, включая шаринг экрана. Настраиваемый битрейт.

item

captions.jsonl

JSON, разделённый переводами строк, одна строка на финализированную реплику с speakerId + start/end ms.

item

chat.jsonl

Входящие сообщения чата встречи, с атрибутом отправителя и временной меткой. Та же форма для Meet/Teams/Zoom.

item

manifest.json

Индекс всех файлов плюс roster участников, метаданные встречи, sub-code на выходе и хеш контента на каждый артефакт.

item

POST {your-hook}

Подписанный webhook (HMAC-SHA256 по телу) при загрузке манифеста. Повторяем при не-2xx с экспоненциальным backoff через очередь.