A Discord bot for requesting movies and TV shows through Seerr (the unified successor to Overseerr/Jellyseerr), with self-service Plex account linking so that each user's requests are attributed to their Seerr account and their per-user quotas/limits are respected.
📖 Full documentation lives on the wiki — setup guides, the full configuration reference, feature deep-dives, and troubleshooting.
Tools like requestrr attribute a request to the right Seerr user by matching a Discord ID that an admin has to hand-enter into each Seerr user's notification settings. After the Overseerr → Seerr migration those IDs are typically empty, so every request falls through to a single default user (or fails) and per-user quotas stop working.
VaultRequestrr fixes this without any admin busywork: the first time a user requests something, the bot asks for their Plex username/email, resolves it to a Seerr user, remembers the link, and from then on submits every request as that user.
- Per-user attribution — quotas and permissions come from each user's own Seerr account (Account Linking)
- Requests with availability at a glance — ✅ / 🟡 / ⏳ / 🕒 badges on search results and the season picker (Requests and Approvals)
- Approval workflow — pending requests DM the admins with persistent
Approve/Decline buttons, plus
/pendingand a dashboard queue - Issue reporting with automated re-grab — users report bad video/audio/subtitles; one button blocklists the bad release, grabs a replacement, and watches it through import (Issue Reporting and Re-grab)
- DM notifications — on availability, decline, and issue resolution — even for requests made in the Seerr web UI (Notifications)
- Plex invites — linked users can invite friends, with per-user caps (Plex Invites)
- Anime routing —
/animetargets dedicated anime Sonarr/Radarr instances (Anime Requests) - Admin dashboard — health, links, activity, approvals, issues, invites, live logs, and live-editable settings (Admin Dashboard)
| Command | Description |
|---|---|
/movie <title> |
Search for and request a movie |
/tv <title> |
Search for and request a TV show (with season selection) |
/anime <title> |
Search anime and route it to the anime library (when configured) |
/issue <title> |
Report a Video/Audio/Subtitle/Other problem with media on the server |
/invite |
Invite a friend to Plex by email (linked users; admin-enabled) |
/quota |
Show your remaining request quota and when it resets |
/myrequests |
List your recent requests and their current status |
/pending |
(Admin) Review, approve, and decline requests awaiting approval |
/linkstatus |
Show which Seerr account you're linked to |
/unlink |
Remove your link (you'll be asked again on the next request) |
- Create a Discord bot at https://discord.com/developers/applications, copy the
bot token, and invite it with the
applications.commandsandbotscopes (no privileged intents needed). - Grab a Seerr admin API key (Seerr → Settings → General → API Key).
- Configure and run:
cp .env.example .env
# edit .env: DISCORD_TOKEN, SEERR_URL, SEERR_API_KEY
# set DISCORD_GUILD_ID for instant slash-command registration
docker compose up -d --buildOr run the published image directly:
docker run -d --name vaultrequestrr --restart unless-stopped \
-e DISCORD_TOKEN=... \
-e SEERR_URL=http://10.10.0.10:5055 \
-e SEERR_API_KEY=... \
-e DISCORD_GUILD_ID=... \
-v /path/to/data:/data \
ghcr.io/vancityactivist/vaultrequestrr:latestSet WEB_PASSWORD (and publish port 5056) to enable the admin dashboard.
More options — bare Python and a ready-made Unraid template — are on the Installation page, and every environment variable is documented in the Configuration reference.
pip install -r requirements.txt pytest
pytestSee Development for the project layout and CI/release notes.