Skip to main content

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 of GROQ_API_KEY, OPENAI_API_KEY, or FIREWORKS_API_KEY (WEBRAIN_STT_MODEL to override the model).
  • Vision (vision:true) needs no key at all when webrain install vision ran — it falls back to the local Qwen3-VL-2B via bundled llama-server.

Basic use

Returns { 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

Pass start / 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-minilocal 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.