Video Proof
Compiled RobotRoss knowledge page generated from RobotRoss source code, architecture notes, and operational documentation.
Video Proof Subsystem
1. Role
The Video Proof subsystem automatically records drawing sessions and uploads them to YouTube as "proof-of-work" for the customer.
2. Key Components
- Recording: OBS Studio (WebSocket port 4455) records the drawing job.
- Scene Switching:
obs_manager.pyswitches between "Workspace" (intro/outro) and "Artist" (arm camera + status) scenes. - Post-Processing:
ffmpegis used to trim dead air and remux the video (MOV to MP4) for optimal YouTube upload. - Upload:
youtube_upload.pyuses the Google OAuth2 API to upload the video and retrieve the public URL.
3. Workflow
- Start Recording:
bob_ross.pytriggers OBS at the start of the job. - Scene Control:
obs_manager.pyhandles scene transitions at specific job milestones. - Stop Recording:
bob_ross.pystops OBS after the job and narration finish. - Processing:
ffmpegremuxes the file to.mp4. - Publish:
youtube_upload.pyuploads the video and records the URL in the Order Management.
4. Notes and Open Points
- Storage Management: The source code does not mention a pruning strategy for local MOV/MP4 files in
~/Movies/. Over time, this could fill the Mac Mini's disk. - Upload Reliability: If the YouTube upload fails, there is no documented automatic retry mechanism. The job URL in the Salesman API might remain blank or incorrect.
Sources:
~/.openclaw/workspace/skills/robot-ross/obs_manager.py~/.openclaw/workspace/skills/robot-ross/youtube_upload.pyAGENTS/CONTEXT/robot_ross_artist.md