meetbot.dev

03 · mobile recording sdk

shipping Q3 2026 · embedded SDK only

Mobile capture, honest.

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.

overview

Why this exists.

Read this before you integrate. Apple's ReplayKit and Android's MediaProjection both fundamentally block capture of other apps' VoIP audio. That means on iOS we cannot record what you hear from Zoom, Meet, or Teams running in another app — and Android blocks USAGE_VOICE_COMMUNICATION for AudioPlaybackCapture on the same grounds. Anyone selling you "system audio capture" on mobile is either lying or has a jailbroken-device qualifier they aren't surfacing.

What we can do: capture the ambient microphone with the meeting metadata your app passes us, upload it to your tenant. From there you pipe it into the transcription provider of your choice (Whisper, Deepgram, AssemblyAI, etc.) — our hosted Whisper option is on the same Q3 2026 timeline. For in-person meetings this is the entire product. For remote meetings it's "your side of the conversation, captured." Honest about the limits, ship anyway.

iOS. Native Swift, distributed via Swift Package Manager + CocoaPods. Background audio mode (UIBackgroundModes: ["audio"]), red status-bar pill so the user always knows recording is on (App Store guideline 5.1.1), and a one-time "I have consent from all participants" modal the integrator must surface — twelve US states require two-party consent. Android. Kotlin module on Maven Central, foreground service of type microphone, MediaCodec to Opus, same upload path. MIT-licensed reference apps in github.com/meetbot/samples.

planned surface

Spec, in the open.

item

Meetbot.start(meta:)

Opens the audio session, writes Opus chunks to disk, uploads via background URLSession upload task.

item

Meetbot.stop()

Finalizes + emits the completion delegate. The recording id matches what comes back over the webhook.

item

Meetbot.requestPermissions()

Mic permission with copy your app can override. Background-audio entitlement check in the same call.

item

Two-party-consent modal

First-run UI prompt your app surfaces once per session. Off-by-default in jurisdictions that don't require it.

item

Kotlin parity module

Maven Central. MediaProjection-based foreground service (type microphone), Opus encoding via MediaCodec.

item

samples/mobile-meeting-recorder

End-to-end iOS + Android demo apps. MIT. Shows the upload flow, the consent modal, and the resume-on-resume-from-background behavior.