Install
openclaw skills install videodb-monitoringClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Screen recording capabilities. Generate stream URLs, search recordings, get transcripts.
openclaw skills install videodb-monitoringScreen recording capabilities powered by VideoDB. Use this when the user asks for screen recordings, wants to search past activity, or needs transcripts.
Run commands from {baseDir} using npx tsx videodb.ts.
Before using any commands, verify the API key is configured:
openclaw config get skills.entries.videodb-monitoring.env.VIDEODB_API_KEY
If not set or empty:
openclaw config set skills.entries.videodb-monitoring.env.VIDEODB_API_KEY 'sk-xxx'
openclaw config get skills.entries.videodb-monitoring.env.VIDEODB_IS_RUNNING
If not true, start the monitor:
cd {baseDir} && nohup npx tsx monitor.ts > ~/.videodb/logs/monitor.log 2>&1 & disown && sleep 3
Verify it started:
openclaw config get skills.entries.videodb-monitoring.env.VIDEODB_CAPTURE_SESSION_ID
If you get a session ID (e.g., cap-xxxxxxxx-...), the monitor is ready.
cd {baseDir} && npx tsx videodb.ts now
Returns current Unix timestamp (seconds since epoch).
cd {baseDir} && npx tsx videodb.ts stream <start_timestamp> <end_timestamp>
cd {baseDir} && npx tsx videodb.ts stream <start_timestamp> <end_timestamp> --title "Checkout flow" --description "OpenClaw browser run"
Creates a playable recording URL for the time range.
If --title or --description is provided, the generated player share page uses that metadata.
Start indexing only when the user asks for search, summaries, or transcripts:
cd {baseDir} && npx tsx videodb.ts start-indexing
This starts:
You can also control them individually:
cd {baseDir} && npx tsx videodb.ts start-visual-index
cd {baseDir} && npx tsx videodb.ts start-transcript
cd {baseDir} && npx tsx videodb.ts start-audio-index
Stop indexing as soon as it is no longer needed to save cost:
cd {baseDir} && npx tsx videodb.ts stop-indexing
Individual stop commands:
cd {baseDir} && npx tsx videodb.ts stop-visual-index
cd {baseDir} && npx tsx videodb.ts stop-transcript
cd {baseDir} && npx tsx videodb.ts stop-audio-index
cd {baseDir} && npx tsx videodb.ts search "user opened Amazon"
Searches indexed screen activity for matching events. If no visual index exists yet, start indexing first.
cd {baseDir} && npx tsx videodb.ts summary # last 30 minutes
cd {baseDir} && npx tsx videodb.ts summary --hours 2 # last 2 hours
cd {baseDir} && npx tsx videodb.ts transcript # last 30 minutes
cd {baseDir} && npx tsx videodb.ts transcript --hours 1 # last hour
When user requests screen recording of a task:
Capture start time:
cd {baseDir} && npx tsx videodb.ts now
Store this as start_time.
Do the work (browser actions, file editing, etc.)
Capture end time:
cd {baseDir} && npx tsx videodb.ts now
Generate stream URL:
cd {baseDir} && npx tsx videodb.ts stream <start_time> <end_time>
Optional player metadata:
cd {baseDir} && npx tsx videodb.ts stream <start_time> <end_time> --title "Task recording" --description "Captured during OpenClaw task execution"
Include URL in response:
Screen recording: https://rt.stream.videodb.io/...
If the command prints a player page URL, prefer sharing that URL with the user.
Indexing is not started automatically by the monitor. If the user also wants search, summaries, or transcripts, start indexing explicitly before those commands and stop it afterwards.
User: "Open example.com and send me the recording"
# Check prerequisites
openclaw config get skills.entries.videodb-monitoring.env.VIDEODB_IS_RUNNING
# true
# Start time
cd {baseDir} && npx tsx videodb.ts now
# 1709740800
# Do the work (open browser, navigate)
# ...
# End time
cd {baseDir} && npx tsx videodb.ts now
# 1709740830
# Generate URL
cd {baseDir} && npx tsx videodb.ts stream 1709740800 1709740830 --title "example.com walkthrough" --description "OpenClaw browser automation"
# 📹 Screen recording (30s): https://rt.stream.videodb.io/abc123
# Player page: https://player.videodb.io/watch?v=example-slug
Response:
Done! I opened example.com.
Screen recording: https://rt.stream.videodb.io/abc123
| User Request | Command |
|---|---|
| "Record my screen while you do X" | Use workflow above |
| "What did I do in the last hour?" | start-indexing, then summary --hours 1, then stop-indexing |
| "Find when I opened the spreadsheet" | start-indexing, then search "opened spreadsheet" |
| "What was said in that meeting?" | start-indexing, then transcript |
| "Get the recording from 5 mins ago" | stream with timestamps |
| "Record this and set the title/description" | stream with --title and --description |
If commands fail with "No capture session":
openclaw config get skills.entries.videodb-monitoring.env.VIDEODB_IS_RUNNINGIf summary/search/transcript say no index or no transcript:
cd {baseDir} && npx tsx videodb.ts start-indexingcd {baseDir} && npx tsx videodb.ts stop-indexing when done