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
- New CLI flag:
--record on openutter join
- Playwright
recordVideo: Pass recordVideo: { dir: "<recordings-dir>", size: { width: 1280, height: 720 } } to the browser context options
- Recording saved to:
~/.openclaw/workspace/openutter/recordings/<meeting-id>.webm
- Optional post-processing: If
ffmpeg is available, convert .webm → .mp4 for broader compatibility
- 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
Summary
Add a
--recordflag toopenutter jointhat 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
recordVideoto capture the entire session as a video file — no additional dependencies required.This makes OpenUtter a complete meeting capture tool: transcript + video.
Proposed Implementation
--recordonopenutter joinrecordVideo: PassrecordVideo: { dir: "<recordings-dir>", size: { width: 1280, height: 720 } }to the browser context options~/.openclaw/workspace/openutter/recordings/<meeting-id>.webmffmpegis available, convert.webm→.mp4for broader compatibilityCLI Usage
Changes Required
bin/openutter.mjs— Add--recordto help textscripts/utter-join.ts— Parse--recordflag, configurerecordVideoon browser context, handle post-meeting file rename/conversion, send notificationNotes
recordVideocaptures the browser viewport, so the recording shows whatever the bot sees (grid view of participants, screen shares, etc.)