Skip to content

Repository files navigation

Listseerr

Listseerr

Sync curated movie & TV show lists to Seerr as automated requests.

CI GitHub Release Docker Image Ko-fi

More screenshots →

🧩 Overview

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.

🔗 Supported Providers

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 →

🚀 Quick Start

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-stopped

2. Start the container

docker compose up -d

3. Set up your lists

Open http://localhost:3000, create your account, and start adding lists.

⚙️ Configuration

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

🔑 Password Recovery

# Docker
docker exec -it listseerr bun /app/dist/reset-password.js

# Local
bun run password:reset

If 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.

💜 Support

If Listseerr is useful to you, consider supporting its development:

ko-fi

📄 License

MIT

About

Sync curated movie & TV show lists to Seerr as automated requests.

Topics

Resources

Stars

90 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages