How to Use video-use for Live Streaming: A Complete Workflow Guide
You can use video-use for live streaming by capturing the stream to disk with ffmpeg, transcribing segments with the ElevenLabs-powered transcribe helper, generating an edit plan with Claude, and rendering the final output for rebroadcast.
The video-use repository from browser-use provides a CLI-driven skill framework for automated video editing with Claude Code. While primarily designed for post-production, the same architecture supports live streaming workflows by processing incoming video segments in real time. This guide walks through the complete pipeline from capture to broadcast using the actual source files and helper scripts found in the repository.
Prerequisites
Before streaming, install ffmpeg and set your ElevenLabs API key. According to install.md in the repository root, ffmpeg is a required dependency, and helpers/transcribe.py requires the ELEVENLABS_API_KEY environment variable to generate word-level timestamps.
The Live Streaming Workflow
Step 1: Capture the Live Stream to Disk
Use ffmpeg to write the incoming RTMP or HTTP stream to a local MP4 file. The +faststart flag ensures the file is readable even if processing begins while recording continues.
ffmpeg -i <STREAM_URL> -c copy -f mp4 -movflags +faststart live_capture.mp4
Step 2: Generate Word-Level Transcripts
Run helpers/transcribe.py to call the ElevenLabs API and produce a timestamped JSON transcript. This script accepts a video path and optional speaker count, creating the data foundation for Claude's editing decisions.
python helpers/transcribe.py live_capture.mp4 \
--language en \
--num-speakers 2
Step 3: Create the Edit Plan
Claude Code reads the transcript output and proposes cuts, overlays, and arrangements. As documented in SKILL.md, the skill writes the approved edit plan as a JSON file to <videos_dir>/edit/.
Step 4: Render the Final Cut
Execute helpers/render.py to process the edit plan. This script uses ffprobe to read source video properties and ffmpeg to compile the final output according to the JSON specifications.
python helpers/render.py <videos_dir>/edit/plan.json \
--output final_stream.mp4
Step 5: Broadcast to Your Platform
Stream the rendered file using ffmpeg's RTMP output. This step pushes the edited video to Twitch, YouTube Live, or any RTMP-compatible server.
ffmpeg -re -i final_stream.mp4 -c copy -f flv rtmp://live.twitch.tv/app/<STREAM_KEY>
Continuous Chunk Processing for 24/7 Streams
For ongoing live streams, process video in timed segments rather than single files. This approach lets you transcribe and edit previous chunks while new ones record.
while :; do
ts=$(date +%s)
ffmpeg -i rtmp://example.com/live/stream -t 300 -c copy "chunk_${ts}.mp4"
python helpers/transcribe.py "chunk_${ts}.mp4" --language en &
# Once Claude generates edit/plan_${ts}.json:
# python helpers/render.py edit/plan_${ts}.json --output "final_${ts}.mp4"
done
Key Source Files and Architecture
Understanding the repository structure helps customize the workflow:
helpers/transcribe.py: Implements the ElevenLabs API integration for speech-to-text with word-level timestamps. Located at the repository root, this is the entry point for all transcription tasks.helpers/render.py: Consumes JSON edit plans and orchestrates ffmpeg/ffprobe commands to produce final video files. The script handles resolution filtering and codec selection via command-line arguments.SKILL.md: Defines the skill layout, environment variables, and the expected directory structure for<videos_dir>/edit/.install.md: Documents ffmpeg installation and theELEVENLABS_API_KEYrequirement.pyproject.toml: Contains package metadata confirming the project name asvideo-use.
Summary
- Capture live streams using ffmpeg with
-movflags +faststartfor immediate processing compatibility. - Transcribe captured segments using
helpers/transcribe.py, which requires theELEVENLABS_API_KEYenvironment variable. - Edit by letting Claude generate JSON plans stored in
<videos_dir>/edit/as described inSKILL.md. - Render final output using
helpers/render.py, which leveragesffprobefor metadata and ffmpeg for compilation. - Stream the result to RTMP endpoints using standard ffmpeg broadcast commands.
Frequently Asked Questions
Can video-use process a live stream in real time without saving to disk?
No, the current architecture in browser-use/video-use requires local file access. helpers/transcribe.py and helpers/render.py operate on file paths, not network streams. You must buffer segments to disk using ffmpeg before processing.
What API key is required for transcription?
The transcription helper requires an ELEVENLABS_API_KEY environment variable to authenticate with the ElevenLabs API for word-level timestamp generation. This is documented in install.md and enforced in helpers/transcribe.py.
How does the render script handle video formats?
helpers/render.py uses ffprobe to introspect source video properties automatically, then invokes ffmpeg with appropriate codecs and filters based on the edit plan JSON. You can override resolution and other parameters using command-line flags like --filter.
Where does Claude store the edit plans during live streaming?
According to SKILL.md, Claude writes approved edit plans to the <videos_dir>/edit/ directory as JSON files. The helpers/render.py script expects this path as its primary argument to locate the cut list and arrangement instructions.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →