Retrieve Recordings

Download meeting audio and video after the bot leaves
View as Markdown

Once a bot leaves a meeting and processing completes, every artifact is one GET away. All download links are presigned S3 URLs — no extra auth needed, but they expire, so fetch fresh links rather than storing them.

Mixed audio

$curl "https://api.meetstream.ai/api/v1/bots/<BOT_ID>/get_audio" \
> -H "Authorization: Token <YOUR_API_KEY>"
1{ "audio_url": "https://ms-s3-bucket.s3.amazonaws.com/audio.wav" }

The link is valid for 1 hour. Mixed audio is always produced, even when per-participant streams are enabled.

Video

$curl "https://api.meetstream.ai/api/v1/bots/<BOT_ID>/get_video" \
> -H "Authorization: Token <YOUR_API_KEY>"

The response carries the presigned video_url (valid 10 minutes) plus a video_info block with duration, size, resolution, fps, and processing stats — useful for sanity-checking a recording before you pipe it downstream.

Recording video is opt-in on create_bot. Audio-only bots skip video capture entirely, which reduces bandwidth and processing time — the right default for transcription-first products.

Per-participant streams

With audio_separate_streams / video_separate_streams enabled at create time:

ArtifactEndpointLink lifetime
Per-participant audio (WebM/Opus)GET /bots/{bot_id}/get_audio_streams10 minutes
Per-participant video + screen shares (WebM/VP8)GET /bots/{bot_id}/get_recording_streams10 minutes

Full capture details, platform isolation levels, and segment semantics: per-participant audio and video.

Handling 202 (still processing)

Media endpoints return HTTP 202 while the bot is still in the meeting or post-call processing is running — per-participant video responses include a stage field showing where the pipeline is. Poll again after 10–30 seconds, or skip polling entirely by acting on the audio.processed / video.processed webhook events.

Lifetimes cheat sheet

LinkValid for
get_audio1 hour
get_video10 minutes
Per-participant streams10 minutes
Transcription downloads (/transcriptions)1 hour

Expired link? Just call the endpoint again. Retention and deletion behavior: Usage & Retention. Want recordings written straight into your own bucket instead? Custom Storage (BYO S3).