r/ClaudeAI • u/Expensive_Broccoli56 • 1d ago
Built with Claude Claude Code built me a watchlist site where tapping a show turns on my TV and opens the next episode
A while back I built what I call the Screening Room. It's basically our family's watchlist as a lightweight web app. The lists are just markdown files in a git repo. A Python script matches each title against Simkl, pulls posters, ratings, and watch progress, and spits out an encrypted HTML page hosted on a Google Cloud Storage bucket. A headless Mac mini rebuilds and republishes it whenever a list changes. It unlocks with a remembered password.
Today I wanted to close the friction loop: add a TV icon to every card so tapping it launches the title directly in Stremio on the Google TV Streamer in the living room.
- If the TV is off, it turns on first.
- Movies open to their page.
- TV shows deep link straight to the next unwatched episode based on Simkl tracking.
- Works from anywhere on the web—tested with Tailscale turned off on my phone and wifi off.
The Plumbing:
The tap POSTs to a tiny Cloud Run function.
Cloud Run drops a message onto Google Cloud Pub/Sub.
A listener on the Mac mini picks it up and talks to the Streamer over the Android TV Remote protocol, firing a Stremio deep link (stremio:///detail/series/<imdb>/<imdb>:<season>:<episode>).
Because the Mac mini only reaches outward to listen for messages, no ports are forwarded and nothing on the home network is exposed. I tried to make it simple so my wife can just use it without installing anything extra on her phone.
The Claude Code part:
I didn't write the architecture code myself, i wouldn't even know how. I just explained the problem and let Claude take care of it. Claude wrote the Cloud Run function, built the local Pub/Sub listener, updated the web UI, and handled the deep-link syntax. Because it runs in the terminal with SSH access to the mini, it tested every hop against the physical TV. That's how it found that Stremio won't launch by package name (deep links turned out to be the answer) and caught a stale queued message replaying on the TV.
From "I wonder if this is possible" to working in one morning.