Cast Gorilla
Point it at a file, pick your TV, press play. Cast Gorilla only changes what stands between the file and the screen.
The question I was chasing
Could casting to a Chromecast feel as simple as pressing play, and still handle the files the TV quietly refuses?
My NAS had been down for a while, and casting local media to the TV was broken. VLC works if you enjoy a flight deck. Videostream is no longer supported. Chromecast is fussy about codecs and containers, and when it refuses you get a spinner and silence, not a useful error. Most answers are either "convert the whole file first" or "run a full media server". I wanted neither.
I also did not want another technical player. The product had to feel calm and deliberate, closer to Chatterfox and Beamo than to VLC: cool typography, a simple surface, and the heavy lifting kept out of the way. Point at a file, pick a device, press play. Only change what actually has to change.
The constraints
Chromecast-class devices on the same LAN, driven from a Mac on Apple Silicon. The expensive path had to run on VideoToolbox and AudioToolbox, so the app stays local and keeps up with real files. The planner had to prefer cheap paths in a strict order: stream the original when the device can take it, remux when the container is the only problem, re-encode audio before ever touching video. And every claim had to survive a human watching a real TV, not a log that looked green. NVIDIA Shield and Chromecast HD were the hardware gates from day one.
The decisions that mattered
A four-tier planner as a pure function: probe the file, decide the cheapest legal delivery for the device in front of you, serve it over the LAN, then drive the Cast session. It carries capability profiles for Chromecast gen 1 through 3, Chromecast Ultra, Google TV and the Nvidia Shield, and falls back to a conservative profile for anything it does not recognise. The plan comes with a plain-English reasons trail, so you can see why a file remuxes, why audio gets rebuilt, or why video finally has to. That transparency is the product, not a debug mode.
The hard-won constraint: HLS segments on the Google Cast Default Media Receiver must be MPEG-TS, never fMP4. Even Apple's own reference fMP4 wedges the receiver: it fetches segments, emits no error, and goes silent. Same device, same network, Apple's MPEG-TS reference plays. So the planner emits TS unless a device profile positively proves fMP4 support. Untested is not "probably fine".
The consequence of that, plus another hardware finding: HEVC cannot ride MPEG-TS to this receiver either. Any HEVC file that cannot direct-play has to be re-encoded to H.264. That is expensive and quality-lossy, so the planner only does it after every copy path has been ruled out for a stated reason.
Subtitles get picked, not guessed: files baked into the container play as they are, and a subtitle file sitting next to the video shows up as a choice before playback starts.
On the surface: rejected the first wave of AI design slop, kept a simple media-player layout, and treated the UI as something you reach for mid-evening rather than configure. On distribution: MIT source, and the official signed, notarized Mac build available on Gumroad, so the free repo never becomes an accidental binary dump.
Built with: TypeScript, Electron, ffmpeg (VideoToolbox + AudioToolbox), CASTV2, Claude Code, Cursor
Where it landed
A core 24-hour sprint got the engine and app standing; the testing and bug-fixing is the longer stretch. All four tiers play on an NVIDIA Shield TV and a Chromecast HD, including a 7.9 GB H.264 MKV with surround and subtitles, and a 1080p HEVC file that has to take the full video-transcode path. Seek from the TV remote works. The session survives the Mac going to sleep and picks up where it left off.
The landing page is live at castgorilla.com. The signed, notarized 1.0.0 DMG ships with a bundled ffmpeg, so buyers don't need Homebrew, and it's live on Gumroad now. The source is public under MIT as planned. It is the clearest recent proof I have that a solo, agent-assisted build can still earn its keep against fussy hardware, as long as the judgment stays on the planner and the product refuses to feel like VLC.
Part of the Rolling Waves work archive.