Watch Videos
webrain_watch turns any video (URL or local file) into a timestamped
transcript plus frame files the LLM can read — so it can summarize, quote,
or diagnose a video without a browser. No browser, no daemon, no PATH installs.
Install the runtime
One command bundles everything as self-contained mono packages in the webrain cache (works on any OS, nothing touches your PATH):- Transcription works locally/offline when
whisper-cli+ a model are present. Cloud fallback needs one ofGROQ_API_KEY,OPENAI_API_KEY, orFIREWORKS_API_KEY(WEBRAIN_STT_MODELto override the model). - Vision (
vision:true) needs no key at all whenwebrain install visionran — it falls back to the local Qwen3-VL-2B via bundled llama-server.
Basic use
{ transcript: [{t, text}], transcript_source, frames: [paths], ... }.
Read each frame path with the Read tool (they’re chronological, t=MM:SS) and
combine with the transcript to answer.
Detail modes
Focus on a section
Passstart / end (seconds) to trim to a range — denser, cheaper:
Batch many videos
source is one video; sources is many, processed in parallel — one result
per video:
Vision fusion (text-only clients)
vision: true samples up to 3 frames and sends them to a vision LLM — Groq
qwen3.6-27b → OpenAI gpt-4o-mini → local Qwen3-VL-2B when no key is
set — returning text captions plus a fused visual summary in vision.
Use this when the client can’t render the frame images.
Other knobs
Under the hood
The pipeline borrows from claude-video’s/watch: yt-dlp captions →
(local whisper-cli → cloud Whisper) → ffmpeg frames, implemented in Rust in
webrain-core/src/video.rs with zero new dependencies — everything that does
real work shells out to binaries already on PATH or bundled by
webrain install watch. The only network call is the Whisper REST upload (and
the optional vision request). STT keys come from env only and are never
returned or logged.
See webrain_watch in the tools reference.
