audio.{speaker}.webm
Один Opus-трек на участника. WebRTC SSRC-keyed, имя проставлено из roster встречи. Без миксинга.
01 · 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. Контейнеры ботов одноразовые и эфемерные.
что вы получаете
Один Opus-трек на участника. WebRTC SSRC-keyed, имя проставлено из roster встречи. Без миксинга.
VP9-захват вкладки через x11grab. То, что увидел бы зритель, включая шаринг экрана. Настраиваемый битрейт.
JSON, разделённый переводами строк, одна строка на финализированную реплику с speakerId + start/end ms.
Входящие сообщения чата встречи, с атрибутом отправителя и временной меткой. Та же форма для Meet/Teams/Zoom.
Индекс всех файлов плюс roster участников, метаданные встречи, sub-code на выходе и хеш контента на каждый артефакт.
Подписанный webhook (HMAC-SHA256 по телу) при загрузке манифеста. Повторяем при не-2xx с экспоненциальным backoff через очередь.