Listseerr connects list providers (Trakt, MDBList, and more) to Seerr. Point it at curated lists and it creates a Seerr request for each movie and show on a schedule.
Curate and filter in the list provider. Listseerr just syncs those lists to requests.
┌──────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐
│ Trakt │◀────│ │ │ │ │ *arr │
├──────────┤ │ │ request │ │────▶│ stack │
│ StevenLu │◀────│ Listseerr │────────▶│ Seerr │ └───────────┘
├──────────┤ │ │ │ │
│ MDBList │◀────│ │ └───────────┘
├──────────┤ └───────────┘ ▲
│ AniList │◀────┘ │ approve
└──────────┘ ┌─────┴─────┐
│ User │
└───────────┘
How it works: Listseerr fetches media from your lists → creates requests in Seerr → you review and approve → your *arr stack downloads the media. Listseerr skips media you already rejected or that is already in your library.
Tip: Create a dedicated Seerr user without auto-approve permissions so you can review requests before anything gets downloaded.
| Provider | Status | Requirements |
|---|---|---|
| Trakt | ✅ | Free API key |
| MDBList | ✅ | Free API key |
| StevenLu (Popular, All, Metacritic/IMDb/RT thresholds) | ✅ | None |
| AniList | ✅ | None |
| IMDB | 🗓️ Planned | |
| Letterboxd | 🗓️ Planned | |
| TheMovieDB | 🗓️ Planned | |
| MyAnimeList | 🗓️ Planned |
Want another provider? Open an issue →
1. Create compose.yaml
services:
listseerr:
image: ghcr.io/guillevc/listseerr:latest
container_name: listseerr
ports:
- 3000:3000
environment:
TZ: 'UTC'
ENCRYPTION_KEY: '' # Required — generate with: openssl rand -hex 32
volumes:
- ./data:/app/data
restart: unless-stopped2. Start the container
docker compose up -d3. Set up your lists
Open http://localhost:3000, create your account, and start adding lists.
All configuration is done via environment variables:
| Variable | Description | Default |
|---|---|---|
ENCRYPTION_KEY |
Required. Encryption key for sensitive data. Generate with openssl rand -hex 32 |
— |
PORT |
Server port | 3000 |
DATABASE_PATH |
Path to SQLite database | /app/data/listseerr.db |
LOG_LEVEL |
debug · info · warn · error |
info |
TZ |
Timezone (IANA format) | UTC |
AUTH_DISABLED |
Skip the in-app login (for use behind a trusted reverse proxy). Only enable on a trusted network. | false |
# Docker
docker exec -it listseerr bun /app/dist/reset-password.js
# Local
bun run password:resetIf you ran with AUTH_DISABLED=true and later turn it off, the auto-created admin account has no password — run the recovery script above to set one, then log in.
If Listseerr is useful to you, consider supporting its development:

