Castor – Real‑Time Video Casting from Any Web Page to DLNA/UPnP TVs
Castor – Real‑Time Video Casting from Any Web Page to DLNA/UPnP TVs
Castor delivers real‑time, full‑quality video casting without a Chromecast or AirPlay
Castor captures the actual video stream from any web page, transcodes it on the fly, and streams it to any DLNA/UPnP‑compatible TV. The result is lag‑free, high‑resolution playback that beats screen‑mirroring and proprietary casting solutions.
How Castor works: headless Chrome + network sniffing
- Castor launches a headless Chrome instance with a randomized fingerprint and stealth scripts to avoid bot detection.
- It monitors all network traffic via the Chrome DevTools Protocol, capturing the video URL as soon as the page loads.
- An action pipeline clicks the page, navigates into the largest iframe, solves a Cloudflare Turnstile if present, and retries the click as a fallback.
- The captured stream is passed to ffmpeg for optional transcoding, then served to the TV through a DLDL/UPnP replay server.
"Castor launches headless Chrome with a randomized fingerprint and stealth scripts to hide automation. It watches all network traffic over the Chrome DevTools Protocol to capture the video stream…" – Castor README
The approach works on most streaming sites, though sophisticated anti‑bot measures can still block it.
Installation options – native binary, Homebrew, Docker, or source
| Method | Platform | Notes |
|---|---|---|
| Native binary (recommended) | macOS, Linux, Windows (via WSL) | Requires Chrome/Chromium, ffmpeg, and ffprobe on PATH. |
| Homebrew cask | macOS | brew install --cask stupside/tap/castor |
Docker image ghcr.io/stupside/castor |
Linux hosts | Bundles Chrome, ffmpeg, ffprobe. Must run with --network host; Docker Desktop on macOS/Windows cannot reach the TV. |
| From source | Any Go 1.26+ system | Run make to build the vendored Whisper bindings and the binary. |
"Docker can only reach your TV from a Linux host on the same LAN. Discovery is SSDP multicast… on macOS/Windows, run the native binary instead." – Castor README
Supported devices – DLNA/UPnP and experimental Chromecast
- DLNA/UPnP MediaRenderer:1 – works with virtually every smart TV released in the last decade (Samsung, LG, Sony Bravia, Panasonic, Philips, Hisense, TCL, VIZIO, Sharp) and network players such as Kodi, VLC, and Plex.
- Chromecast – implementation exists but is untested; contributions are welcome.
Run castor scan to discover all renderers on your network.
Quick start – casting by IMDB/TMDB ID
- Discover your TV
Copy the exact device name from the output.castor scan - Create a minimal
config.yamldevice: name: "Living Room TV" # exact name from `castor scan` type: dlna sources: - proxies: ["https://vidsrc-embed.ru"] templates: movie: "/embed/movie/{itemID}" episode: "/embed/tv/{itemID}/{season}-{episode}" - Cast a movie
The tool resolves the ID against the proxy URLs, extracts the stream, and sends it to the TV.castor cast movie tt12300742
If you add a TMDB API key to config.yaml, you can use the interactive TUI (castor cast) to browse titles, filter by genre, and select episodes.
Advanced usage – casting arbitrary URLs and subtitles
- Cast a raw stream URL
castor cast url https://example.com/stream.m3u8 - Burn auto‑generated subtitles (optional Whisper integration)
When enabled, Castor runs Whisper to generate subtitles and burns them into the video before streaming.whisper: enable: true # language: "en" # model_path: "" # defaults to tiny English model (~75 MB)
Community feedback from Hacker News
- Alternative approaches – A commenter mentioned TV Explorer, a web‑based HLS aggregator that bypasses the need for a local extractor.
- Legal concerns – Some users flagged the potential for piracy, noting that Castor itself hosts no content and the responsibility lies with the user to respect copyright.
- Device compatibility – Users reported successful casting to a 15‑year‑old Samsung TV, confirming broad DLNA support.
- Docker on macOS/Windows – Multiple comments highlighted that Docker Desktop cannot discover TVs due to network isolation, reinforcing the README warning.
- Technical curiosity – One comment asked whether the Turnstile bypass is simply a click simulation, indicating interest in the robustness of the anti‑bot evasion.
Limitations and caveats
- Bot protection – Castor’s headless‑Chrome approach can be thwarted by sophisticated anti‑bot systems; it may fail on sites with aggressive fingerprinting.
- Source reliability – The
proxiesURLs inconfig.yamlare external and can go offline without notice; users must maintain them. - Docker networking – On non‑Linux hosts, Docker cannot reach the TV without a bridged Linux VM, making the native binary the practical choice.
Contributing and further development
- The project welcomes contributions, especially for the experimental Chromecast backend and improvements to Turnstile handling.
- See
CONTRIBUTING.mdin the repository for guidelines.
Bottom line
Castor turns a laptop into a real‑time video caster that streams the original quality directly to any DLNA/UPnP TV, eliminating the need for expensive IPTV boxes or proprietary casting hardware. Its open‑source nature, flexible configuration, and optional Whisper subtitle generation make it a powerful, cost‑effective tool for anyone looking to bridge web video and home entertainment.