Skip to content

feat: add --record flag for meeting video recording#4

Open
ocean-wave-ai wants to merge 1 commit intosumansid:mainfrom
ocean-wave-ai:feature/record-video
Open

feat: add --record flag for meeting video recording#4
ocean-wave-ai wants to merge 1 commit intosumansid:mainfrom
ocean-wave-ai:feature/record-video

Conversation

@ocean-wave-ai
Copy link

Summary

Adds a --record flag to openutter join that captures a video recording of the meeting session using Playwright built-in recordVideo API.

Closes #3

Changes

  • scripts/utter-join.ts:

    • Parse new --record CLI flag
    • Pass record option through to joinMeeting()
    • Configure recordVideo: { dir, size } on all browser context creation paths (auth, non-auth, and retry contexts)
    • After meeting ends, rename temp WebM to <meeting-id>.webm in ~/.openclaw/workspace/openutter/recordings/
    • Best-effort MP4 conversion via ffmpeg (falls back to WebM if unavailable)
    • Send channel notification with recording path
  • bin/openutter.mjs:

    • Add --record to help text and examples

Usage

# Record + transcript (auth mode)
npx openutter join https://meet.google.com/abc-defg-hij --auth --record

# Record + transcript with duration limit
npx openutter join https://meet.google.com/abc-defg-hij --auth --record --duration 60m

# Record in anonymous mode
npx openutter join https://meet.google.com/abc-defg-hij --anon --bot-name "Recorder" --record

How it works

  1. Playwright recordVideo captures the browser viewport at 1280x720
  2. The recording shows what the bot sees: participant grid, screen shares, etc.
  3. After meeting ends, the temp WebM file is renamed to <meeting-id>.webm
  4. If ffmpeg is on PATH, auto-converts to MP4 (H.264 + AAC) for broader compatibility
  5. Recording path is sent to the channel (if --channel/--target specified)

Notes

  • No new dependencies — uses Playwright built-in API + optional system ffmpeg
  • Recording files can be 50-100MB/hour — documented in the issue
  • Works with both --auth and --anon join modes
  • Recording persists across retry contexts (fresh incognito on join block)

Closes sumansid#3

- Add --record flag to openutter join CLI
- Configure Playwright recordVideo on browser context when --record is set
- Save recording as <meeting-id>.webm in ~/.openclaw/workspace/openutter/recordings/
- Auto-convert to MP4 via ffmpeg if available (best-effort)
- Send channel notification when recording is saved
- Works with both --auth and --anon modes
- Recording persists across retry contexts (fresh incognito on join failure)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Add --record flag for meeting video recording

1 participant