ListSync automatically syncs your watchlists from IMDb, Trakt, and Letterboxd with Overseerr/Jellyseerr. No more manual adding - just add movies and shows to your favorite watchlist, and they'll appear in your media server automatically.
Key Features:
- 🔄 Automatic synchronization
- 🎬 Support for multiple watchlist platforms
- 🖥️ Compatible with Overseerr and Jellyseerr
- ⚡ Easy setup with Docker
- 🚀 Installation Guide
- 📋 List Setup Guide
- 🛠️ Troubleshooting
- 📖 Documentation
- 🌉 SeerrBridge Integration
For the most stable experience, use the source code from the latest release here.
How Does It Work?
ListSync seamlessly syncs your watchlists with your media server in three simple steps:
ListSync retrieves your watchlists from IMDb, Trakt or Letterboxd using Selenium web scraping techniques.
ListSync searches for each item on your media server (Overseerr or Jellyseerr) using its API. It handles edge cases like special characters or multiple results for accurate matches.
ListSync checks if the media is already available or requested. If not, it automatically requests the item:
- For Movies, it requests the title.
- For TV Shows, it requests all available seasons.
Why Use ListSync?
- Save Time: Automates adding movies and TV shows to your media server.
- Stay Organized: Keeps your media server in sync with your watchlists.
- Flexible: Works with IMDb, Trakt, Letterboxd, Overseerr, and Jellyseerr.
- Customizable: Set sync intervals to match your preferences.
You can run ListSync in two primary modes: Interactive Mode and Automated Mode.
The quickest way to get started is by using our Docker one-liner, which runs ListSync in Interactive Mode. This option will prompt you for all the necessary information during setup:
Installation Method | Command |
---|---|
docker pull ghcr.io/woahai321/list-sync:main && docker run -it --rm -v "$(pwd)/data:/usr/src/app/data" -e TERM=xterm-256color ghcr.io/woahai321/list-sync:main |
For a seamless experience, you can run ListSync in Automated Mode using a .env file and Docker Compose. This mode eliminates the need for manual inputs each time you run the script by automatically pulling list IDs and configurations from your .env
file:
Expand for Docker Compose Instructions 🐳
Create a .env
file: Configure your settings in a .env
file with the following template:
# Overseerr Configuration
OVERSEERR_URL=https://your-overseerr-instance
OVERSEERR_API_KEY=your-api-key-here
OVERSEERR_USER_ID=1
# Set to true for automated mode (recommended for Docker)
AUTOMATED_MODE=false
# Sync interval in hours (default: 24)
SYNC_INTERVAL=24
# Request Quality Profile (true for 4K, false for standard)
OVERSEERR_4K=false
# Lists Configuration (comma-separated)
# Examples:
IMDB_LISTS=ls123456789,ur123456789,top,boxoffice,https://www.imdb.com/list/ls123456789/
TRAKT_LISTS=12345,67890,https://trakt.tv/users/username/lists/listname
LETTERBOXD_LISTS=https://letterboxd.com/username/list/listname/
Create a docker-compose.yml
file:
version: "3.8"
services:
listsync:
image: ghcr.io/woahai321/list-sync:main
container_name: listsync
environment:
- OVERSEERR_URL=${OVERSEERR_URL}
- OVERSEERR_API_KEY=${OVERSEERR_API_KEY}
- OVERSEERR_USER_ID=${OVERSEERR_USER_ID:-1}
- SYNC_INTERVAL=${SYNC_INTERVAL:-24}
- AUTOMATED_MODE=true
- OVERSEERR_4K=${OVERSEERR_4K:-false}
- IMDB_LISTS=${IMDB_LISTS}
- TRAKT_LISTS=${TRAKT_LISTS}
- LETTERBOXD_LISTS=${LETTERBOXD_LISTS}
volumes:
- ./data:/usr/src/app/data
- ./.env:/usr/src/app/.env
restart: unless-stopped
Run using Docker Compose:
Installation Method | Command |
---|---|
docker-compose up |
This setup will trigger Automated Mode, meaning it will automatically pull in the added lists based on your configuration, streamlining the syncing process.
You can also set up ListSync manually if you prefer a more hands-on approach:
Expand for Manual Installation Instructions 🛠️
Refer to our Installation Guide for detailed instructions.
SeerrBridge is our companion application that provides an alternative to traditional *arr stack (Radarr/Sonarr) setup. It works alongside ListSync to create a complete media management solution:
- Automated Processing: When ListSync adds requests to Jellyseerr/Overseerr, SeerrBridge automatically processes them
- Browser Automation: Uses Selenium to automate media fetching through Debrid Media Manager
- Simplified Setup: Eliminates the need for complex *arr stack configuration
- Real-Debrid Integration: Direct integration with Real-Debrid for content retrieval
- ListSync adds media requests to Jellyseerr/Overseerr
- SeerrBridge detects the requests via webhook
- SeerrBridge automatically processes the requests through DMM
- Media becomes available in your library
For detailed information about SeerrBridge, visit the SeerrBridge Repository.
Service | Status | Notes |
---|---|---|
✅ Supported | Currently supported | |
✅ Supported | Currently supported | |
✅ Supported | Currently supported |
ListSync supports IMDb, Trakt, and Letterboxd lists. You can add them using either the raw URL or the list ID.
📋 IMDb List ID or URL
- Navigate to your IMDb list in your browser.
- Copy the URL from the address bar. Examples:
- Custom lists:
https://www.imdb.com/list/ls012345678/
- IMDb charts:
https://www.imdb.com/chart/top/
(Top 250),https://www.imdb.com/chart/boxoffice/
(Box Office) - Watchlists:
https://www.imdb.com/user/ur12345678/watchlist
- Custom lists:
- Paste the URL directly into ListSync.
- Look at the URL:
- Custom lists:
ls012345678
- IMDb charts: Use the chart name (e.g.,
top
,boxoffice
) - Watchlists:
ur12345678
- Custom lists:
- Use the list ID in ListSync.
top
(Top 250 Movies)boxoffice
(Box Office)moviemeter
(MovieMeter)tvmeter
(TVMeter)
📋 Trakt List ID or URL
- Navigate to your Trakt list in your browser.
- Copy the URL from the address bar. Example:
https://trakt.tv/users/username/lists/example-list
- Paste the URL directly into ListSync.
- Click the "Share" button on your Trakt list.
- Copy the link, which will look like:
https://trakt.tv/lists/12345678
- The list ID is the number at the end (e.g.,
12345678
).
📋 Letterboxd URL
- Navigate to your Letterboxd list in your browser.
- Copy the URL from the address bar. Example:
https://letterboxd.com/user/list/example-list/
- Paste the URL directly into ListSync.
When inputting list IDs or URLs, you can add multiple lists by separating them with commas:
- Example:
ls012345678,12345678,https://www.imdb.com/chart/top/,ur987654321,https://letterboxd.com/user/list/example-list/
This allows you to sync multiple lists at once, whether they are custom lists, charts, or watchlists.
- Security Best Practices: Please read scripts you find online before running them.
- API Credentials: Always keep your API credentials secure.
- Rate Limiting: Be mindful of Overseerr's rate limiting policies during imports.
- Permissions: Only import and manage media you have the rights to handle.
If you find ListSync useful and would like to support its development, consider making a donation:
- BTC (Bitcoin):
bc1qxjpfszwvy3ty33weu6tjkr394uq30jwkysp4x0
- ETH (Ethereum):
0xAF3ADE79B7304784049D200ea50352D1C717d7f2
Thank you for your support!
For detailed information on how ListSync works, please refer to our How it Works document.
If you encounter any issues while using ListSync, please check our Troubleshooting Guide for solutions to common problems.
To see our plans for future development and features, visit our Roadmap.
We welcome contributions! For guidelines on how to contribute, please see our Contributing Guide.
This project is licensed under the MIT License. Review the LICENSE file for more details.
For important legal information about using ListSync, please refer to our Legal Disclaimer.