This application provides a simple Web Interface to detect and merge duplicate episodes of TV Shows in your Jellyfin library (e.g., grouping a 1080p version and a 4K version into a single item).
It uses the official Jellyfin API to perform the merge cleanly without direct database manipulation.
Important
Series Only: Currently, this tool only supports TV Shows. Movies are not yet supported.
No File Management: This tool does not move, rename, or download files.
You must manually place the different versions (e.g., S01E01 - 1080p.mkv and S01E01 - 4K.mkv) in your library folders.
Jellyfin must have scanned them and show them as separate episodes before this tool can merge them.
Create a docker-compose.yml file:
services:
jellymerger:
image: ghcr.io/garnajee/jellymerger:latest
container_name: jellymerger
restart: unless-stopped
ports:
- "8000:8000"
environment:
- JELLYFIN_URL=http://192.168.1.10:8096
- JELLYFIN_API_KEY=your_jellyfin_api_key
# - JELLYFIN_USER_ID=optional_user_idRun it:
docker compose up -dAccess the interface at http://your-server-ip:8000.
Clone the repo:
git clone https://github.com/garnajee/jellymerger.git
cd jellymergerInstall dependencies (using uv):
uv syncConfigure Environment: Create a .env file in the root directory:
JELLYFIN_URL=http://localhost:8096
JELLYFIN_API_KEY=your_api_key
Run:
uv run uvicorn main:app --reloadOpen the web interface.
Search for a TV Show (e.g., "The Witcher").
The tool will scan all seasons and detect episodes that exist in multiple versions but are not yet merged.
Review the list and click Merge to group them in Jellyfin.
Distributed under the MIT License. See LICENSE for more information.
