listseerr icon indicating copy to clipboard operation
listseerr copied to clipboard

Request movies & shows in Jellyseerr/Overseerr from your favorite lists

Listseerr

Listseerr

Request movies & shows in Jellyseerr/Overseerr from your favorite lists

CI GitHub Release Docker Image Ko-fi

See more screenshots β†’

🧩 How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Trakt   │◀────│           β”‚         β”‚           β”‚     β”‚   *arr    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     β”‚           β”‚ request β”‚ Jellyseerr│────▢│   stack   β”‚
β”‚ StevenLu │◀────│ Listseerr │────────▢│           β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     β”‚           β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚  MDBList │◀────│           β”‚               β–²
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β”‚ approve
β”‚  More... β”‚β—€β”€β”€β”€β”€β”˜                     β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                           β”‚   User    β”‚
                                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Listseerr fetches media from your lists β€” Connect your favorite curated lists from Trakt, MDBList, StevenLu, and more
  2. Requests are sent to Jellyseerr/Overseerr β€” Movies and shows from your lists are automatically requested
  3. You review and approve β€” Requests appear in Jellyseerr/Overseerr for you to approve (create a dedicated user without auto-approve permissions to review before downloading)
  4. Your *arr stack downloads the media β€” Once approved, Sonarr/Radarr handle the rest

Listseerr skips media that was previously rejected or is already available, so you won't see duplicate requests. Set it up once and let it run on a schedule.

πŸ”— Supported Providers

Provider Status Requirements
Trakt βœ… Supported Free API key
MDBList βœ… Supported Free API key
StevenLu βœ… Supported None
AniList βœ… Supported None
StevenLu variations πŸ—“οΈ Planned None
IMDB πŸ—“οΈ Planned β€”
Letterboxd πŸ—“οΈ Planned β€”
TheMovieDB πŸ—“οΈ Planned β€”

Listseerr uses official APIs for reliable integration and faster processing.

Want another provider? Request or vote here

πŸš€ Quick Start

1. Create a compose.yaml

services:
  listseerr:
    image: ghcr.io/guillevc/listseerr:latest
    container_name: listseerr
    ports:
      - 3000:3000
    environment:
      TZ: 'UTC'
      # (REQUIRED) Generate with: openssl rand -hex 32
      ENCRYPTION_KEY: ''
    volumes:
      - ./data:/app/data
    restart: unless-stopped

[!IMPORTANT] Remember to include the ENCRYPTION_KEY environment variable, which has no default value.

Generate a value with openssl rand -hex 32

2. Run the container

docker compose up -d

3. Start adding lists

Open http://localhost:3000 and create your account.

βš™οΈ Configuration

Variable Description Default (Docker)
ENCRYPTION_KEY Required. Generate with openssl rand -hex 32 β€”
PORT Server port 3000
DATABASE_PATH Path to SQLite database /app/data/listseerr.db
LOG_LEVEL Logging level (debug, info, warn, error) info
TZ Timezone (IANA format) UTC

Override defaults via Docker environment variables.

πŸ”‘ Password Recovery

Docker:

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

Local:

bun run password:reset

πŸ—ΊοΈ Roadmap

  • [x] Multiple provider support (Trakt, MDBList, StevenLu)
  • [x] Scheduled automatic processing
  • [x] Dark/Light theme
  • [x] 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

🀝 Acknowledgments

  • Color scheme: Flexoki by Steph Ango
  • Inspired by the amazing self-hosted community

πŸ“„ License

MIT