unbinge for plex
Release your Plex shows a few episodes at a time, on the days you choose.
A free, self-hosted Docker app that turns a show you already own back into appointment TV. Pick a show, choose which days it "airs" and how many episodes drop each time. Unbinge holds the rest back and adds the next batch to Plex on schedule.
Vibe coded, tested by hand. I built Unbinge with AI coding tools and run it on my own Plex server. Bug reports and fixes are very welcome.
The Lighthouse Keepers
- tues01e07–e08next drop tonight, 9:00pm
- fris01e09–e10drops fri
- tues01e11–e12drops 13 oct
Stop binge-watching your own Plex library
Streaming services worked out that a weekly release makes a show last longer and gives you something to look forward to. When the whole box set is sitting in Plex, that's hard to recreate on willpower alone.
Unbinge does it for you. Released episodes appear in a Plex library like new ones would. The rest stay out of sight until their day comes, so there's nothing to binge.
How it works
Unbinge moves episode files between three folders, and tells Plex to rescan after each release.
- queuedPromote
Pick a show from your collection and set its release days and episodes per drop. Its files move into the vault.
- drippingDrip
On each release day, at your chosen time, the next batch moves into the folder your Plex library watches.
- cooldownCooldown
When the vault runs dry, the show waits one more cycle so you can catch up.
- completeGraduate
The whole show, specials included, moves back to your collection and the slot is free for the next one.
The three folders
| Folder | What lives there |
|---|---|
Pool (POOL_DIR) | Your full collection of shows, untouched |
Vault (VAULT_DIR) | Episodes of a dripping show that haven't been released yet |
Released (PLEX_BASE_DIR) | Episodes that have been released, watched by a Plex library |
What you get
- A dashboard of active, cooling-down and paused shows, with pause, resume and release-now
- A schedule of upcoming releases, cooldowns and graduations
- A calendar feed at
/calendar.ics, so releases show up in your calendar app - A queue to start the next show automatically when one finishes, or on a date
- A preview of the next drop, plus excluding episodes and matching oddly named files by hand
- History, with one-click undo of the last release
- Dry-run mode, to see what would happen without moving any files
- Webhook notifications and a self-updating Discord schedule message
- Optional TVDB posters, genres and recommendations from your collection
- Optional Sonarr connection to show real air dates
- Automatic database backups and missed-run detection
- Optional password login, and a
/healthendpoint for Docker
Install with Docker
You need Docker with Compose, a Plex server, and a Plex token. Keep your three folders on the same drive so moves are instant.
1. Get the code
git clone https://github.com/MOON5H1N3/Unbinge.git
cd Unbinge
2. Add your Plex details
Create a file called .env next to docker-compose.yaml:
PLEX_URL=http://192.168.1.10:32400
PLEX_TOKEN=your-plex-token
PLEX_LIBRARY_ID=5
Plex explains how to find your token. The library ID is the number after source= in the address bar when you open that library in Plex Web.
3. Point it at your media
Edit the volumes and folder paths in docker-compose.yaml. The *_DIR values are paths inside the container, so they must sit under a mounted volume:
services:
unbinge:
build: .
container_name: unbinge
restart: unless-stopped
ports:
- "5000:5000"
env_file: .env
environment:
TZ: Europe/London
POOL_DIR: /media/tv
VAULT_DIR: /media/unbinge/vault
PLEX_BASE_DIR: /media/unbinge/released
DB_PATH: /config/drip_schedule.db
volumes:
- ./config:/config
- /path/to/your/media:/media
Set TZ to your timezone. Without it the container runs on UTC and releases fire at the wrong hour for half the year.
4. Start it
docker compose up -d --build
Open http://localhost:5000, then add a Plex library that points at the released folder. Released episodes will appear there.
5. Update it later
./update.sh
The script backs up your database, pulls the latest code, rebuilds the container and waits until it's healthy again.
Optional settings
| Setting | What it does |
|---|---|
UNBINGE_PASSWORD | Turns on the login page. Leave it unset for no login. |
WEBHOOK_URL | Sends a message on each release, failure or missed run |
DISCORD_SCHEDULE_WEBHOOK_URL | Keeps a live schedule message up to date in Discord |
TVDB_API_KEY, TVDB_PIN | Posters, genres and recommendations |
SONARR_URL, SONARR_API_KEY | Shows real upcoming air dates |
The daily release time defaults to 03:00. You can change it, and the integrations, on the Settings page.
Questions
How do I release Plex episodes weekly instead of all at once?
Install Unbinge, pick a show, and choose its release days and how many episodes drop each time. Unbinge keeps the unreleased episodes in a separate folder and moves the next batch into your Plex library on each release day, then tells Plex to rescan.
Does Unbinge delete or copy my files?
Neither. It moves files between your collection, the vault and the released folder, and moves the whole show back to your collection when it finishes. You can undo the last release from the History page, and dry-run mode shows what would happen without moving anything.
Does it work with Jellyfin or Emby?
It's built for Plex. The folder moves would work with any media server that watches a folder, but only Plex is told to rescan after a release.
Do I need Sonarr?
No. Sonarr is optional and only adds real upcoming air dates. Unbinge works on shows you already have.
What happens to specials?
Specials are never released on the schedule. They move back to your collection with the rest of the show when it graduates.
What if my server was off at release time?
Unbinge notices when the last check was more than a day ago and warns you that releases may have been missed. You can release a show straight away from the dashboard.
Can I see what's coming up?
Yes. The Schedule page lists upcoming releases, cooldowns and graduations, and you can subscribe to the same schedule in your calendar app.
I used Driparr. Is this the same app?
Yes. Unbinge used to be called Driparr. Your database, settings and folders carry over, and the old DRIPARR_PASSWORD setting still works.
Is Unbinge free?
Yes. It's open source under the MIT licence. You run it on your own hardware, and nothing is sent anywhere except to the services you connect.
Was Unbinge written with AI?
Yes, it's vibe coded: written with AI coding tools, then tested by hand on a real Plex setup. The source is open, so you can read exactly what it does before you run it.