This Python script migrates users and their media requests from Overseerr to Jellyseerr.
- Python 3.x with
requestslibrary - API access to both Overseerr and Jellyseerr instances
- IMPORTANT: To maintain Jellyfin/Emby login functionality, you MUST import users from Jellyfin/Emby into Jellyseerr BEFORE running this script. Otherwise, users will be created as local accounts.
- IMPORTANT: Jellyseerr requires email notifications to be enabled in global settings. You can enable this with dummy SMTP settings if you don't need actual email functionality.
python3 overseerr-migration-script.py -s SOURCE_URL -k SOURCE_API_KEY -t TARGET_URL -a TARGET_API_KEY [-m TMDB_API_KEY] [-d]-sor--source: URL of the source Overseerr instance-kor--source_api_key: API key for the source Overseerr instance-tor--target: URL of the target Jellyseerr instance-aor--target_api_key: API key for the target Jellyseerr instance-mor--tmdb_api_key: (Optional) TMDB API key for fetching media names-dor--debug: (Optional) Enable debug logging for troubleshooting
python3 overseerr-migration-script.py \
-s https://your-overseerr.example.com \
-k YOUR_OVERSEERR_API_KEY \
-t https://your-jellyseerr.example.com \
-a YOUR_JELLYSEERR_API_KEY \
-m YOUR_TMDB_API_KEY- ๐ฅ Migrates user accounts and their unfulfilled media requests
- ๐ Detects and uses existing Jellyfin/Emby users with matching emails
- ๐ฌ Preserves request details including seasons for TV shows
- ๐ซ Skips existing users and requests to prevent duplicates
- ๐ง Temporarily disables notifications during migration
- ๐ Debug mode for troubleshooting issues
- Use the
-dflag to enable detailed debug logging - Check the
migration.logfile for detailed information