Skip to main content

Quick Example

import videodb

conn = videodb.connect()
coll = conn.get_collection()

# Get existing stream
rtstream = coll.get_rtstream("rts-xxx")

# Control lifecycle
rtstream.stop()   # Pause ingestion
rtstream.start()  # Resume ingestion

Lifecycle Control

Start/Stop

# Pause ingestion (stream remains configured)
rtstream.stop()

# Resume ingestion
rtstream.start()

Status Values

StatusDescription
connectedActively ingesting
stoppedPaused, can resume
errorConnection issue

Index Lifecycle

Indexes can also be started/stopped independently:
scene_index = rtstream.get_scene_index(index_id)

# Pause indexing (stream continues)
scene_index.stop()

# Resume indexing
scene_index.start()

Meeting Recording

Record from Zoom, Google Meet, or Microsoft Teams. A bot joins your meeting, records, and uploads directly to VideoDB. Roadmap to AI teammates showing the meeting recording workflow

Start Recording

meeting = conn.record_meeting(
    meeting_url="https://meet.google.com/abc-defg-hij",
    bot_name="Meeting Recorder",
    bot_image_url="https://your-domain.com/bot-avatar.jpg",
    meeting_title="Weekly Standup",
    callback_url="https://your-backend.com/webhooks/meeting",
    callback_data={"internal_id": "123"}
)
print(f"Recording started: {meeting.id}")

Recording to Collection

coll = conn.get_collection("your-collection-id")

meeting = coll.record_meeting(
    meeting_url="https://zoom.us/j/123456789",
    bot_name="Team Recorder",
    meeting_title="Sprint Planning",
    callback_url="https://your-backend.com/webhooks"
)

Track Recording Status

# Poll status
meeting.refresh()
print(f"Status: {meeting.status}")

# Wait for completion
if meeting.wait_for_status("done", timeout=3600, interval=60):
    print("Recording complete!")
    video = coll.get_video(meeting.video_id)

Recording Status Values

StatusDescription
initializingBot is being set up
processingActively recording
doneRecording complete
failedRecording failed

Callback Payload

Success:
{
  "success": true,
  "message": "Meeting recording completed.",
  "data": {
    "video_id": "m-xxx",
    "speaker_timeline": [
      {"speaker_name": "Alice", "start_time_seconds": 9.94}
    ],
    "stream_url": "...",
    "player_url": "..."
  }
}
Failure:
{
  "success": false,
  "message": "Failed to record meeting."
}

Access Recording

meeting = coll.get_meeting("meeting-id")

# Get the recorded video
video = coll.get_video(meeting.video_id)

# Now searchable, indexable, etc.
video.index_spoken_words()

Supported Platforms

PlatformURL Format
Google Meethttps://meet.google.com/xxx-xxxx-xxx
Zoomhttps://zoom.us/j/123456789
Microsoft TeamsTeams meeting link

Meeting Features

  • Brand-able Bot - Custom name and avatar
  • Speaker Timeline - Per-speaker timestamps (Google Meet)
  • Webhook Callbacks - Get notified on completion
  • Collection Storage - Video lands directly in your collection
Upcoming features for meeting recorder

Next Steps