Gaming has been Samarveer’s greatest passion, and the Literature graduate in him takes immense joy in dissecting games for their themes, messages, and impact. Samarveer holds a deep appreciation of gaming, and considers the platform to be the most immersive and impactful across all media. He can be found engaging with gaming communities online, always ready to debate the finer points of ray tracing or itching to write an 8-page collegiate thesis on any game that impacts him emotionally.
I've lost count of how many times I've wanted to watch a video on my TV, only to discover that getting it there is somehow harder than finding the video itself. I'm not against screen mirroring at all, but it's never made sense to tie up my entire PC, or one of my two monitors, just to use it as a mirror for my TV — and that's before the quality loss steps in.
Thankfully, a new open-source project called Castor addresses exactly that problem. It takes a different approach to getting web video onto your TV, without having to buy into Google's or Apple's casting ecosystems. Admittedly, I did have to jump through a few nerdy hoops to get it running, but it proved to be absolutely worth every minute I spent understanding it.
Castor solves the biggest problem with screen mirroring
My TV gets the video stream while my PC retains its independence
A particularly annoying flaw with screen mirroring is that it treats an entire display as the content being watched. If I want to stream from my PC to a TV, be it a game or a video, my PC becomes occupied, and the compression often turns an otherwise crisp video into a bit of a blurry mess. It's a remarkably clumsy solution to what should be a straightforward problem.
Castor takes a wonderfully smarter route. It's a command-line tool written in Go by developer Stupside. It locates the actual video stream on a webpage, transcodes it locally (when necessary), and then sends it to any compatible receiver on your local network. With Castor, my PC doesn't broadcast my desktop. Instead, it just runs a headless Chrome instance, doing the much more sensible job of delivering a video.
Castor supports DLNA/UPnP Media Renderers, meaning it's almost certainly compatible with Samsung, LG, Sony, TCL, and other smart TVs. The tool identifies any video stream you point it at, grabs it right at the source, and then casts it straight to your TV. If there's transcoding required, Castor uses FFmpeg on the fly.
Naturally, there's a catch — Castor is a terminal-first tool, not a polished remote with oversized buttons. I had to get comfortable tinkering a little with my home network to get started, but that trade-off was well worth making.
Getting Castor running took a little terminal tinkering
Finding my TV was easy, but the streaming pipeline took some work
Getting Castor running on Windows starts with a few prerequisites. For starters, it works with Chrome (which is my default browser anyway) for extracting web streams and FFmpeg for handling video conversion. I also had to ensure Castor itself was accessible through my system's PATH, so I manually put the folder containing Castor on the PATH through Windows' Environment Variables settings.
With the prerequisites sorted, the first command worth running is castor scan. Castor searches the local network for compatible receivers, throwing up all the TVs on the network and letting me identify which one I want to target instead of fumbling around with screen-sharing menus.
This helps in building the config.yaml file, where Castor stores the receiver details and configured content sources. I followed the GitHub instructions to list my host device, its type, and its URL for Castor to target. This config file also has the casting settings like resolution and subtitles, and any API keys if you have them (more on that later).
As long as any video is legally available and free to stream, the castor cast url "url.example" command instantly throws it to your TV, without ever bothering your PC monitors or speakers with the stream. FFmpeg can transcode incompatible formats, although its version mattered more than I'd initially expected.
The important bit is that successful casting depends on more than finding a TV. Receiver configuration, audio tracks, and FFmpeg compatibility can all trip things up. Once those pieces finally began cooperating, though, my PC streamed seamlessly to my TV without sacrificing my monitor displays.
Running local videos was another little hiccup I had to learn to handle. Since Castor requires a web URL to throw at the TV, I first had to serve the file over HTTP through the command line in a separate window before asking Castor to catch that stream and point it to my TV. Just a couple of extra steps, but it sure beats having VLC taking over my entire screen, or adding the video to my Jellyfin server, re-scanning my libraries, and then manually operating the Jellyfin app on the TV.
Castor can also find movies by name
It won't supply them for you, though
One of Castor's more interesting features is its ability to find content by title instead of making me paste URLs all day. I had to register a free account on TheMovieDatabase (themoviedb.org) to get a free and instant developer API key. It went straight into the config.yaml file, and with it configured, Castor allowed me to browse movies and shows, complete with metadata and posters, all inside the terminal interface itself!
While adding sources to Castor's config file, use only sites you are authorized to use.
The clever bit is how Castor connects the dots. TMDB identifies the title, while user-configured sources determine the webpage URL Castor should inspect for its video stream. It's important to note that Castor only ships with its sources list empty. It doesn't bundle a content library or bypass DRM, leaving users to configure their own sources — the project merely provides the plumbing.
A tool such as this, capable of casting arbitrary web video, needs responsible boundaries. Castor's flexibility doesn't make every source legitimate, which means that users ultimately remain responsible for complying with applicable laws and site terms. It's a pretty useful feature, but it doesn't pretend to be a full-blown streaming service.
Castor
Castor is brilliant, but it isn't for everyone
It's not like Castor is trying to reinvent streaming or anything. All it does is take something that a PC already does well — fetching and processing video — and turn it into a much more flexible way to watch content on my TV. DLNA support also means I don't need to buy another streaming dongle just to get around any compatibility limitations.
For anyone with a home media server or a collection of direct video streams, that's a genuinely useful capability, but not without caveats. Castor depends on external tools, requires some configuration, and doesn't magically make every website's video stream compatible with every TV. Chromecast support is pretty experimental at this stage, too, so I'd stick with DLNA where possible. Plus, since Castor doesn't host content, finding legitimate sources remains entirely my responsibility.
Still, I'd much rather spend a few minutes tinkering with a command-line tool than surrender my entire desktop to screen mirroring. Castor isn't the most accessible solution, but for those willing to get their hands dirty, it's a clever little project worth keeping around.





