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);