finds.dev← search

// the find

stupside/castor

★ 1,911 · Go · MIT · updated Jul 2026

Point it at any web page and it finds the video, extracts the stream, transcodes it and casts in real time to your TV. It even burns subtitles….

Castor is a terminal tool that extracts video streams from web pages via headless Chrome and CDP, transcodes with ffmpeg, and casts to DLNA or Chromecast devices. It also does local whisper.cpp subtitle transcription and burns them in. Aimed at developers comfortable in a terminal who want to cast arbitrary web video to their TV at full quality.

The CDP-based stream extraction is the clever part — instead of scraping or screen-capturing, it watches actual network traffic to find the real stream URL, which gives you the raw HLS/DASH manifest rather than a re-encoded screen. The ffmpeg integration is thoughtful: it probes the source with ffprobe, stream-copies when the TV already accepts the codec, and only transcodes when necessary. Shipping whisper.cpp as a git submodule with a bundled cgo binding and auto-downloaded model means subtitles work without any external service. The config layering (config.yaml + config.local.yaml + env vars) is a clean pattern for keeping secrets out of version control.

Chromecast support is explicitly marked experimental and untested, so half the target devices are a coin flip. Building from source requires Go 1.26+ and cmake because of the cgo whisper bindings — `go install` is broken by design, which is a friction point most Go users won't expect. The stream extractor depends entirely on a click-and-wait automation heuristic against headless Chrome, so it silently fails on any page with bot detection or non-standard player behavior, with no clear error surface. DLNA is only tested on Samsung; the protocol is notoriously inconsistent across vendors, so 'virtually every smart TV' in the docs is optimistic.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →