After the Rip: Auto-Naming a Home Media Library for Jellyfin with Python, TMDB, and ffprobe
Getting video off a disc is the part everyone talks about. The part that actually eats your evenings is everything after: a folder full of title_t00.mkv, disc1/, C3_t01.mkv files that mean nothing to a media server. Jellyfin wants very specific names and folder layouts, and if you don’t give them to it, you get “Unknown Movie,” mismatched episodes, and bonus features scattered as phantom entries.
So I extended a post-processing step into a proper Python pipeline that takes whatever came out of my ripping setup and turns it into a Jellyfin-perfect library: correct movie names with IMDb IDs, TV episodes matched to the right SxxExx, extras bucketed into the folders Jellyfin recognizes, then rsynced to the NAS and scanned in — with an ntfy ping at the end. This post is about that pipeline. It is deliberately not about disc decryption — it starts the moment you have plain .mkv files.
"My NAS Is Out of RAM and My Download Is Stuck" — Two Homelab Myths, Debunked
Two things happened on the same day that looked like problems and weren’t — at least not the problems they appeared to be. My NAS was reporting almost all its RAM in use, which sounds like a leak or an imminent crash. And a TV show I’d grabbed through LunaSea on my phone had downloaded fine but then “wouldn’t import” into the library, which sounds like a broken automation pipeline.
Both are among the most common false alarms in a self-hosted media stack. Neither was what it looked like. Here’s what was actually going on, and the real fixes.