I Don't Want to Play the PT Game, I Just Want to Watch a Show

3 min read

Last year I sold my Synology and switched to a Mac mini as the home server, with two 2TB drives attached. The night I got Jellyfin set up again, I remembered a tool I used to run on the Synology and went looking to bring it back — it had already stopped being maintained.

I Don't Want to Play the PT Game, I Just Want to Watch a Show

Last year I sold my Synology and switched to a Mac mini as the home server, with two 2TB drives attached. The night I got Jellyfin set up again, I remembered a tool I used to run on the Synology and went looking to bring it back — turns out it had been abandoned.

The tool was called nAStool; anyone into NAS has probably heard of it. The original author went off and built a more famous project: MoviePilot.

It Didn’t Do Anything Wrong, It Just Wasn’t Made for Me

I excitedly installed MoviePilot, but got stuck halfway through the initial setup: step one asked me to connect a PT site.

The word PT — people outside the scene have probably never heard it. Roughly, it’s a “members-only tier” among torrent sites: invite-only, not something you can just sign up for. And getting in isn’t the end of it — every month there are upload-volume and seeding-time quotas, and if you don’t meet them you get banned. I understand those rules perfectly well; it’s exactly because people seed year-round that niche content survives. But understanding is one thing, and my mind was stuck on a single thought: I just want to finish dinner tonight, open Jellyfin, and hit play on the new season of Stranger Things. Whoever loves watching their upload numbers every week can go do that.

So when MoviePilot’s interface was packed with terms like downloader management, site maintenance, and ratio farming, something clicked instead: the project is not wrong at all; the problem is that I’m simply not its target user. MoviePilot serves the crowd that treats downloading as a hobby, as part of their life; I’m just someone who wants to be a viewer.

As for how files actually get into the download folder — I’ll leave that alone. Say too much and this post probably won’t get published.

What I Actually Want Comes Down to Two Things

I thought about my needs over and over, and finally narrowed it to two things:

One, tidy up the messy files in the download folder, rename them into something players recognize, and archive them into the media library; two, fetch posters and synopses so the home page isn’t a whole row of gray icons.

So Bujic Movie was born. When I wrote it, I had only one requirement: don’t make me configure anything.

When a new file lands in the download folder, it watches by itself, identifies the title and year on its own, renames everything itself, groups movies individually and shows by season, grabs posters and backdrops from TMDB along the way, and generates NFO files that Jellyfin, Emby, and Plex all understand. All I have left to do in Jellyfin is one thing: hit refresh.

Config files? There’s no config.yaml. At first even I couldn’t get used to it — every setting is changed in the web admin panel and stored in a SQLite file, so it survives restarts. The program itself is a single Go binary with the web front end embedded inside; deploying it is a docker-compose of just over ten lines. It runs quietly on the Mac mini, and it doesn’t mind the two 2TB drives hanging off it.

What Actually Annoys Me Is Subtitles

Once things are organized and the posters look nice, what really eats my evenings is subtitles.

I watch a lot of American shows, and for the popular ones it’s fine, but for the less popular ones I have to hunt for Chinese subtitles across the various subtitle sites, then check whether the version numbers match, and often they download as Traditional Chinese and need another pass to convert them. By the time one film is done, the whole evening is gone.

I tried solving the “translation” problem myself, too — I wrote a little tool called subx that used an LLM to translate subtitles. The results weren’t great, and it got stuck in two places: first, the model’s subtitle output kept breaking the format, with the timeline going haywire at the drop of a hat; second, it had no memory, so in the same show a character’s name would be translated as A in one episode and B in the next. After going in circles, I went back to the subtitle sites like a good boy.

The turning point came one night while watching the old film Bruce Almighty. I was too lazy to hunt for subtitles again, and I happened to have a subscription to an agent tool (a command-line agent like opencode), so I just had it translate for me. It connected to the media library, located the film, took the English subtitles, translated them into Simplified Chinese, and put them back in place — and in Jellyfin the Chinese subtitle track was instantly selectable. The result was far better than my subx.

Later I figured out where the gap was. Subtitle translation looks like “translation,” but doing it is really “operating on files”: you have to know which films are in the library, which file the subtitles live in, where to put them when done, and what naming rules to follow. A traditional one-shot prompt can’t do this, because the model can’t reach your file system. A modern agent with tool capabilities can call real interfaces step by step — list, fetch subtitles, upload back — and every step is orchestratable and reviewable.

So what if I froze this whole chain into a standard workflow, instead of frantically teaching it over again every time?

So I Gave It an MCP

I added an MCP endpoint to Bujic Movie, exposing 5 tools to agents: enumerate media cards, query the library list (with subtitle status), query a single film’s subtitle details, fetch subtitle content, and upload subtitles. Authentication uses a separate API Key — the agent can only touch the directories you authorize, and it can’t reach the account system in the web admin panel; each key can be disabled individually, and call records are visible in the admin panel.

I also wrote a companion subtitle translation skill that spells out every step of the “fetch English subtitles → translate into Simplified Chinese → put back into the media library” chain, so any other agent can pick it up and run without stepping on the same mines again.

The repo is at https://github.com/chao-eng/bujic-movie ; subx is on there too, for anyone who wants to compare.

This post isn’t meant to talk you into self-hosting. Honestly, after all this fuss, my biggest takeaway is probably this: I finally no longer have to burn an entire evening on subtitle sites for one film’s Chinese subtitles.

Comments