Part of the Jellyfin Project
Jellyfin Merge Versions plugin is a plugin that automatically groups every repeated movie and episode.
- In jellyfin, go to dashboard -> plugins -> Repositories -> add and paste this link https://raw.githubusercontent.com/danieladov/JellyfinPluginManifest/master/manifest.json
- Go to Catalog and search for the plugin you want to install
- Click on it and install
- Restart Jellyfin
- Download the .zip file from release page
- Extract it and place the .dll file in a folder called
plugins/Merge Versionsunder the program data directory or inside the portable install directory - Restart Jellyfin
- To merge your movies or episodes you can do it from Schedule task or directly from the configuration of the plugin.
- Spliting is only avaible through the configuration
Merge and split use the installed Jellyfin server's native video-version actions. No URL or API key configuration is needed. Manual operations require administrator permissions.
This does not migrate or repair local-version groups created by earlier plugin releases. Split follows Jellyfin's native behavior for linked alternate versions; it does not detach local alternate versions.
Cancellation stops the scan between groups, after the current native operation finishes.
- Clone or download this repository
- Ensure you have .NET Core SDK setup and installed
- Build plugin with following command.
dotnet publish Jellyfin.Plugin.MergeVersions/Jellyfin.Plugin.MergeVersions.csproj --configuration Release --output bin- Place the resulting .dll file in a folder called
plugins/Merge versionsunder the program data directory or inside the portable install directory
dotnet test Jellyfin.Plugin.MergeVersions.sln --configuration ReleaseThe tests cover controller discovery/dispatch using a test double, DI scope lifetime, error handling, authorization requirements, asynchronous completion and cancellation. They do not replace a merge/split smoke test against a Jellyfin test library.
The adapter discovers Jellyfin.Api.Controllers.VideosController through MVC and resolves it from Jellyfin's service container. If Jellyfin changes the action signatures, operations fail with a compatibility error instead of falling back to manual relationship changes.