From f19b06363abb491c2b23777e220347159914f9a9 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Fri, 5 Jun 2026 19:40:17 +0200 Subject: [PATCH] Skip local alternates of the primary when merging versions --- Jellyfin.Api/Controllers/VideosController.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Jellyfin.Api/Controllers/VideosController.cs b/Jellyfin.Api/Controllers/VideosController.cs index ed6d3f5bde..d22e78ee36 100644 --- a/Jellyfin.Api/Controllers/VideosController.cs +++ b/Jellyfin.Api/Controllers/VideosController.cs @@ -216,9 +216,17 @@ public class VideosController : BaseJellyfinApiController } var alternateVersionsOfPrimary = primaryVersion.LinkedAlternateVersions.ToList(); + var localAlternateIds = _libraryManager.GetLocalAlternateVersionIds(primaryVersion).ToHashSet(); foreach (var item in items.Where(i => !i.Id.Equals(primaryVersion.Id))) { + if (localAlternateIds.Contains(item.Id)) + { + // Already a local (file-based) alternate of the primary; linking it would + // wrongly mark the group as user-merged (splittable). + continue; + } + item.SetPrimaryVersionId(primaryVersion.Id); await item.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);