Skip to content

guillevc/listseerr

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 bridges the gap between list providers (Trakt, MDBList, etc.) and your request manager (Seerr). Point it at your favorite curated lists, and it will automatically create requests for every movie and show — on a schedule, hands-free.

Filtering and curation stay where they belong: in the list provider. Listseerr focuses on doing one thing well — syncing 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. Previously rejected or already-available media is automatically skipped.

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 None
AniList None
StevenLu variations 🗓️ Planned
IMDB 🗓️ Planned
Letterboxd 🗓️ Planned
TheMovieDB 🗓️ Planned
MyAnimeList 🗓️ Planned

All integrations use official APIs for reliability and speed.

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

🔑 Password Recovery

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

# Local
bun run password:reset

🗺️ Roadmap

  • Multiple provider support (Trakt, MDBList, StevenLu, AniList)
  • Scheduled automatic processing
  • Dark/Light theme
  • Docker support
  • More list providers
  • Notifications

Have an idea? Open an issue →

💜 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

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Languages