Drip-feed IMDb CSV lists to Radarr in small, controlled batches.
I made this with Visual code and Codex to solve my own problem of not being able to add huge lists of movies to my radarr/qbittorent without clogging up qbit with 100 queue items.
If you loath people 'vibecoding' just leave this page. I had a problem and saw a solution, something I couldn't solve myself without Visual Code.
So give it a try, Much appriciated. Kind regards from the Netherlands. Xander.
Driparr is a small self-hosted web app for people who keep large IMDb watchlists and want Radarr to add movies gradually instead of all at once.
Import an IMDb CSV, review the queue, choose how quickly items should drip into Radarr, and let Driparr handle the pacing. It can also skip movies that Radarr already knows about and, in sync mode, wait for its own active Driparr item to finish before adding the next item. The liveblog explains what Radarr is reporting, with varied status updates in Dutch, English, and German.
Important
Driparr is intentionally focused on IMDb CSV to Radarr. It is built for predictable, visible drip-feeding rather than broad list-sync automation.
- Avoid bulk-import spikes in Radarr.
- Keep a visible queue of what will be added next.
- Add only a small number of movies per interval.
- Skip duplicates already present in Radarr.
- Use sync mode for a one-at-a-time flow.
- Run it easily in Docker or Portainer.
- IMDb CSV import for movie and series exports.
- First-run onboarding checklist.
- Radarr connection test from the web UI.
- Quality profile and root folder selection.
- Queue overview with readable status and reasons.
- Livelier liveblog with varied Radarr status messages and translated runtime text.
- Duplicate protection for existing Radarr movies.
- Timed drip mode with configurable interval and batch size.
- Sync drip mode that waits for Driparr's own active item to complete.
- Run history for imported lists.
- Optional webhook notifications.
- Mock Radarr test stack for trying Driparr without a real Radarr instance.
Choose one:
- Safe test mode with mock Radarr.
- Real Radarr setup.
The repository includes a mock Radarr stack for browser testing. This is the safest way to try Driparr without touching a real Radarr instance.
docker compose -f docker-compose.test.yml up -d --buildOpen:
http://localhost:8090
Test login:
- username:
admin - password:
admin
Stop the test stack:
docker compose -f docker-compose.test.yml downCreate a folder for Driparr:
mkdir -p ./driparr/data
cd ./driparrCreate docker-compose.yml:
services:
driparr:
image: ghcr.io/sander1384/driparr:v0.1.18
container_name: driparr
restart: unless-stopped
ports:
- "18080:8080"
environment:
TZ: Europe/Amsterdam
DRIPARR_ADMIN_USERNAME: admin
DRIPARR_ADMIN_PASSWORD: "CHANGE_ME_STRONG_PASSWORD"
DRIPARR_SESSION_SECRET: "CHANGE_ME_RANDOM_SECRET"
volumes:
- ./data:/app/dataStart Driparr:
docker compose up -dOpen:
http://localhost:18080
Change DRIPARR_ADMIN_PASSWORD and DRIPARR_SESSION_SECRET before first use.
You can generate a random 64-character session secret with the
IT Tools token generator.
Use docker-compose.portainer.yml as a ready-to-edit Portainer stack.
Change at least:
DRIPARR_ADMIN_PASSWORDDRIPARR_SESSION_SECRET- the host volume path, for example
/volume1/docker/driparr/data:/app/data
Deploy through:
Portainer -> Stacks -> Add stack -> Web editor
Then open:
http://<NAS-IP>:18080
- Log in with the admin username and password from your compose file.
- Enter your Radarr URL, for example
http://radarr:7878orhttp://radarr.local:7878. - Paste your Radarr API key.
- Click
Testto fetch Radarr options. - Choose the Radarr quality profile and root folder.
- Import an IMDb CSV from the
Listspage. - Enable the worker when you are ready for Driparr to start adding items.
| Mode | Behavior |
|---|---|
| Timed | Adds up to maxItemsPerRun items every configured interval. |
| Sync | Waits for Driparr's own current Radarr item to complete before adding the next item. External downloads do not block the queue. |
Use Timed for predictable batches. Use Sync when you want a slower one-at-a-time flow.
| Type | Supported |
|---|---|
| List input | IMDb CSV export |
| Media manager | Radarr |
| Deployment | Docker Compose, Portainer |
| Image registry | GitHub Container Registry |
| Test mode | Mock Radarr stack |
Driparr is not meant to replace Radarr import lists, Overseerr, Jellyseerr, Trakt sync tools, or general request systems.
It is meant for controlled, visible, temporary processing of IMDb CSV exports into Radarr.
Found a bug or confusing behavior? Please open an issue and include:
- Driparr version.
- Docker, Portainer, NAS, or local setup.
- Radarr version.
- Whether you used mock Radarr or real Radarr.
- What you expected.
- What happened.
- Relevant logs or screenshots.
Please remove API keys, passwords, tokens, private URLs, and personal data before posting.
For stable releases, update the image tag in your compose file when a new release is available.
For automatic latest builds from main, use:
image: ghcr.io/sander1384/driparr:latestOlder stacks that still use ghcr.io/sander1384/seerrdripfeed:latest are also updated,
but new installs should use the driparr image name.
Then pull and restart:
docker compose pull
docker compose up -d- Check that Driparr can reach the Radarr URL from inside Docker.
- Use a container name such as
http://radarr:7878when both apps are on the same Docker network. - Use the NAS or server IP when Radarr runs outside the Driparr stack.
- Verify the Radarr API key.
- Confirm the queue contains
todoitems. - Confirm the worker is enabled.
- Check whether items were skipped because they already exist in Radarr.
- In sync mode, check whether Driparr still has one of its own queue items active.
- Restart the container after changing
DRIPARR_SESSION_SECRET. - Make sure the admin password in your compose file is the value you expect.
- Do not publish real Radarr API keys.
- Do not commit
.env, local config files, cookies, or data volumes. - Rotate keys or passwords that were used during testing before opening the app to other users.
Driparr was shaped with inspiration from the self-hosted Arr ecosystem and release-page structure from projects such as Cleanuparr.
It is also a hobby project built with love, fully vibe-coded in Visual Studio Code together with ChatGPT.







