Skip to main content
Version: 1.0.x

Recording

Recording capabilities in VideoSDK Agents allow you to capture and store meeting conversations, enabling features like conversation analysis, compliance documentation, and quality assurance. VideoSDK provides three distinct recording approaches, each suited for different use cases and requirements.

Recording Types Overview

VideoSDK offers three types of recording functionality:

  1. Participant Recording - Built-in automatic recording managed by the agent framework
  2. Track Recording - Individual audio/video track recording with granular control
  3. Meeting Recording - Complete meeting session recording with composite output

1. Participant Recording (Built-in)

Participant recording is the simplest approach, automatically managed by the VideoSDK Agents framework when you enable the recording parameter.

How It Works

When recording=True is set in RoomOptions, the system automatically:

  • Starts recording when the agent joins the meeting.
  • Starts recording for each participant as they join.
  • Stops and merges recordings when the session ends.

Basic Setup

main.py
from videosdk.agents import JobContext, RoomOptions

def make_context():
return JobContext(
room_options=RoomOptions(
room_id="your-room-id",
auth_token="your-auth-token",
name="Recording Agent",
recording=True # Enable automatic participant recording
)
)

Fine-grained Control with RecordingOptions

RecordingOptions lets you opt in to additional streams beyond audio when recording=True. Audio is always recorded via the track API when recording=True.

ParameterTypeDefaultDescription
videoboolFalseRecord the agent's camera video track (composite audio+video participant recording)
screen_shareboolFalseRecord the screen-share track. Requires vision=True in RoomOptions.
main.py
from videosdk.agents import JobContext, RoomOptions, RecordingOptions

# Audio only (default — recording_options omitted)
def make_context():
return JobContext(
room_options=RoomOptions(
room_id="your-room-id",
recording=True,
)
)

# Audio + camera video (composite participant recording)
def make_context():
return JobContext(
room_options=RoomOptions(
room_id="your-room-id",
recording=True,
recording_options=RecordingOptions(video=True),
)
)

# Audio + screen share
def make_context():
return JobContext(
room_options=RoomOptions(
room_id="your-room-id",
vision=True, # required for screen share recording
recording=True,
recording_options=RecordingOptions(screen_share=True),
)
)
note

recording_options.screen_share=True requires vision=True because vision subscribes to the video/share streams. Setting screen_share=True without vision=True raises a ValueError at startup.

2. Track Recording

Track recording provides granular control over individual audio and video tracks, allowing you to record specific streams with custom configurations.

When to Use Track Recording

  • Need to record specific audio/video tracks separately
  • Require custom recording configurations per track
  • Want to control recording start/stop timing manually
  • Need different quality settings for different tracks

Key Features

  • Individual Control: Start/stop recording for specific tracks
  • Custom Configuration: Set different recording parameters per track
  • Flexible Output: Choose output formats and quality settings
  • Manual Management: Full control over recording lifecycle

API References for Track Recording

3. Meeting Recording

Meeting recording captures the entire meeting session as a single composite recording, including all participants and their interactions.

When to Use Meeting Recording

  • Need a single recording file for the entire meeting
  • Want automatic mixing of all audio/video streams
  • Require meeting-level recording controls
  • Need simplified post-processing workflow

Key Features

  • Composite Output: Single recording file with all participants
  • Automatic Mixing: Audio/video streams automatically combined
  • Meeting-level Control: Start/stop recording for entire meeting
  • Simplified Management: One recording per meeting session

API References for Meeting Recording

Choosing the Right Recording Type

Use CaseRecommended TypeReason
Agent conversations with automatic managementParticipant RecordingBuilt-in automation and channel separation
Custom recording workflowsTrack RecordingGranular control over individual streams
Simple meeting archivalMeeting RecordingSingle composite file for entire meeting
Compliance and audit trailsParticipant RecordingAutomatic lifecycle management
Advanced post-processingTrack RecordingIndividual track access and control

Best Practices

Recording Management

  • Choose the appropriate recording type based on your use case
  • Ensure proper authentication tokens for recording API access
  • Monitor recording status and handle errors gracefully
  • Plan for adequate storage capacity

Privacy and Compliance

  • Inform participants that sessions are being recorded
  • Implement proper data retention and deletion policies
  • Ensure compliance with local privacy regulations
  • Use appropriate recording type for your compliance requirements

Got a Question? Ask us on discord