Skip to main content
Capture sessions can optionally persist media for later search and playback. Control storage per-channel and access exported assets.
Desktop capture currently supports macOS and Windows.

Quick Example


Storage Control

Per-Channel Storage

Enable/disable storage for each channel:
Export only runs if at least one channel has store: true.

What Gets Exported

Muxed Video

The default “playable recording” containing:
  • Video: Primary display (set via primary_video_channel_id)
  • Audio: All recorded audio channels mixed together
Use for:
  • Playback and sharing
  • Downstream indexing and search
  • Simple “trim and publish” workflows

Raw Channel Assets

Individual assets for each stored channel: Use for:
  • Separate audio stems (mic vs system audio)
  • Multi-track editing
  • Custom muxing strategies
  • Picture-in-picture composites

Accessing Exports

Via Webhook

The capture_session.exported webhook includes the muxed video ID:

Via RTStream

Each RTStream has an exported_asset_id after export:

Using cap.export()

You can trigger or check an export programmatically with cap.export():
Python
The returned dict contains:

Multi-Screen Export

When capturing multiple displays, each display can be exported individually by passing its video_channel_id. Use cap.displays to discover available video channels:
Python

Checking Export Status

You can track export completion via webhook or by polling:
Python

Editing with Raw Assets

Use raw assets when you need control over individual tracks.

Display Video + Mic Audio Only


After export, captured content is searchable:

Which Asset to Use?


Next Steps

Privacy Controls

Consent and redaction patterns

Capture Overview

Architecture and quickstart