Skip to content

Feature: Add --record flag for meeting video recording #3

@ocean-wave-ai

Description

@ocean-wave-ai

Summary

Add a --record flag to openutter join that captures a video recording of the Google Meet session alongside the transcript. This enables tl;dv/Fireflies-style meeting playback.

Motivation

OpenUtter already joins meetings via a headless Playwright browser and captures captions. Since the browser renders the full Meet UI (participant tiles, screen shares, chat), we can leverage Playwright built-in recordVideo to capture the entire session as a video file — no additional dependencies required.

This makes OpenUtter a complete meeting capture tool: transcript + video.

Proposed Implementation

  1. New CLI flag: --record on openutter join
  2. Playwright recordVideo: Pass recordVideo: { dir: "<recordings-dir>", size: { width: 1280, height: 720 } } to the browser context options
  3. Recording saved to: ~/.openclaw/workspace/openutter/recordings/<meeting-id>.webm
  4. Optional post-processing: If ffmpeg is available, convert .webm.mp4 for broader compatibility
  5. Channel notification: Send a message when recording is saved (like transcripts do)

CLI Usage

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

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

Changes Required

  • bin/openutter.mjs — Add --record to help text
  • scripts/utter-join.ts — Parse --record flag, configure recordVideo on browser context, handle post-meeting file rename/conversion, send notification

Notes

  • Playwright recordVideo captures the browser viewport, so the recording shows whatever the bot sees (grid view of participants, screen shares, etc.)
  • WebM is the native format; MP4 conversion is best-effort (requires ffmpeg)
  • Recording files can be large (~50-100MB/hour) — users should be aware of disk usage

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions