meetbot.dev

03 · mobile recording sdk

выходит Q3 2026 · только встраиваемый SDK

Мобильная запись, честно.

A Swift framework and a Kotlin module you embed in your app. Captures the ambient mic during a meeting and uploads to your tenant. iOS + Android land Q3 2026 — and we're upfront about what mobile OSes will and won't let us do.

обзор

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

Прочтите перед интеграцией. ReplayKit Apple и MediaProjection Android оба фундаментально блокируют захват VoIP-аудио других приложений. Это значит, что на iOS мы не можем записать то, что вы слышите от Zoom, Meet или Teams, запущенных в другом приложении — а Android блокирует USAGE_VOICE_COMMUNICATION для AudioPlaybackCapture на тех же основаниях. Любой, кто продаёт вам «захват системного аудио» на mobile, либо лжёт, либо имеет квалификатор «jailbroken-устройство», который не указывает.

Что мы можем делать: захватывать ambient-микрофон с метаданными встречи, которые передаёт ваше приложение, прогонять его через Whisper (хостинг или BYOK) и выдавать одно-трековый транскрипт с разумной диаризацией speakers. Для очных встреч это весь продукт. Для удалённых встреч это «ваша сторона разговора, транскрибированная». Честно об ограничениях, выпускаем всё равно.

iOS. Нативный Swift, распространяется через Swift Package Manager + CocoaPods. Background audio mode (UIBackgroundModes: ["audio"]), красная пилюля статус-бара, чтобы пользователь всегда знал, что запись идёт (App Store guideline 5.1.1), и одноразовая модалка «у меня есть согласие всех участников», которую обязан показать интегратор — двенадцать штатов США требуют двустороннего согласия. Android. Kotlin-модуль на Maven Central, foreground service типа microphone, MediaCodec в Opus, тот же путь загрузки. Reference-приложения под MIT в github.com/meetbot/samples.

планируемая поверхность

Spec, открытый.

item

Meetbot.start(meta:)

Открывает аудио-сессию, пишет Opus-чанки на диск, загружает через background URLSession upload task.

item

Meetbot.stop()

Финализирует + эмитит completion delegate. Идентификатор записи совпадает с тем, что приходит на webhook.

item

Meetbot.requestPermissions()

Разрешение на микрофон с текстом, который ваше приложение может переопределить. Проверка entitlement background-audio в том же вызове.

item

Two-party-consent modal

UI-промпт первого запуска, который ваше приложение показывает один раз за сессию. Off-by-default в юрисдикциях, где это не требуется.

item

Kotlin parity module

Maven Central. Foreground service на основе MediaProjection (тип microphone), Opus-кодирование через MediaCodec.

item

samples/mobile-meeting-recorder

End-to-end демо-приложения для iOS + Android. MIT. Показывает поток загрузки, модалку согласия и поведение resume-on-resume-from-background.