A self-hosted web app that scans your Plex libraries and shows you exactly what's missing — which TV episodes you don't have yet, and which shows or movies are missing the audio/subtitle languages you care about.
If you keep a big Plex library, you've probably wondered "am I actually missing episodes of this show?" or "which of my movies don't have English audio?" Plex doesn't answer those questions on its own. This does — at a glance, across your whole library.
- TV gap dashboard. Point it at a Plex TV library and it checks every series against TheTVDB, then shows each show with a clear "COMPLETE" or "N MISSING" badge. Sort by most-missing, filter to only shows with gaps, and click any show to see exactly which episodes are missing, season by season.
- Language gaps tab. Scan TV or movie libraries for files that don't match your language rules — e.g. "flag anything that doesn't have an English audio track," or "find episodes that only have Japanese audio." Great for cleaning up mismatched or foreign-only files.
- One place to act. From a show's detail page you can (optionally) kick off a Sonarr search, search the Nyaa index, or send a magnet to qBittorrent — without leaving the app.
- Password-protected. The whole UI sits behind a simple login so it's not wide open on your network.
- Fast background scans that keep running even if you close the tab, with live progress.
- Python 3.8+ (download).
- A Plex Media Server you control, plus its token (how to find it).
- A free TheTVDB API key (get one here) — this powers the TV missing-episode detection. Without it, the TV dashboard can't tell what episodes should exist. (The Languages tab works without TheTVDB.)
- Sonarr — if you run it, add its URL + API key and the "Sonarr Get" buttons will trigger episode/season searches for you. Without it, those buttons simply won't do anything (the rest of the app is unaffected).
- qBittorrent (with its Web UI enabled) — enables the "Send to qBit" button to hand a magnet link straight to your client. Without it, you can still copy links or download
.torrentfiles manually. - Nyaa — the anime index search is built in and needs no key; it just won't be useful if you don't use it.
Everything runs locally on your own machine and talks directly to your own services. No cloud, no third-party accounts beyond the free TheTVDB key.
Mac: download this project (green Code button → Download ZIP), unzip it, double-click install-mac.command (first time: right-click → Open → Open), edit the new .env file with your details, then double-click start-mac.command and open http://localhost:5090.
Windows: unzip, double-click install-windows.bat, edit the .env file, double-click start-windows.bat, open http://localhost:5090.
Full step-by-step instructions (including Linux and troubleshooting) are in INSTALL.md.
All settings live in a .env file (the installer creates it from .env.example). The essentials:
AUTH_USERNAME=admin
AUTH_PASSWORD=pick_a_strong_password
PLEX_URL=http://192.168.1.10:32400
PLEX_TOKEN=your_plex_token_here
TVDB_API_KEY=your_tvdb_api_key_here
# Optional integrations — leave blank to disable:
SONARR_API_KEY=
QBIT_PASS=Your .env stays on your machine and is never uploaded.
This app is meant to run on your own trusted network:
- It has a login, but it's a single shared username/password — set a strong
AUTH_PASSWORDand don't expose the app directly to the public internet. Use a VPN or reverse proxy if you need remote access. - To restrict it to only the machine it runs on, set
HOST=127.0.0.1in.env. - It skips SSL certificate checks (normal for talking to Plex by local IP) and keeps debug mode off by default.
- The included
.gitignorekeeps your.envand any.torrentfiles out of version control.
This is a library-management tool. The optional Sonarr, qBittorrent, and Nyaa features are conveniences for managing content you have the right to obtain. You are responsible for complying with the copyright laws in your jurisdiction and for what you choose to download. Use it for content you own, public-domain material, or anything you're otherwise legally entitled to.
Common issues (Python not found, login problems, "Scan required," empty results, the Mac security prompt) are covered in INSTALL.md. If something else comes up, open an Issue on the repo.
Released under the MIT License — free to use, modify, and share. See LICENSE.
I build and share these tools for free in my spare time. If this one saved you some hassle, you can buy me a coffee — genuinely appreciated, and it helps me keep making things like this. Enjoy! 🙌
