aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2026-03-06 00:16:04 +0100
committerShadowghost <Ghost_of_Stone@web.de>2026-03-06 00:16:04 +0100
commit268f23f39ac18e783156b91b575ee6a105b6937c (patch)
treee09b0dd1801dd6738135e30101dce34242eebec8
parent744c5539d8471addca131c9d9f7e8c4e30f8c4b5 (diff)
Fix trickplay generation for parts and alt versions
-rw-r--r--Jellyfin.Server.Implementations/Item/BaseItemRepository.cs2
-rw-r--r--Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs3
-rw-r--r--MediaBrowser.Controller/Entities/InternalItemsQuery.cs6
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs1
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs6
5 files changed, 14 insertions, 4 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
index 6b575fbad3..23a426ac58 100644
--- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
@@ -3583,7 +3583,7 @@ public sealed class BaseItemRepository
.Where(e => e.OwnerId == null);
}
}
- else if (filter.OwnerIds.Length == 0 && filter.ExtraTypes.Length == 0)
+ else if (filter.OwnerIds.Length == 0 && filter.ExtraTypes.Length == 0 && !filter.IncludeOwnedItems)
{
// Exclude alternate versions from general queries. Alternate versions have
// OwnerId set (pointing to their primary) but no ExtraType.
diff --git a/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs b/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs
index 0f55465e86..79a8f9577c 100644
--- a/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs
+++ b/Jellyfin.Server/Migrations/Routines/MoveTrickplayFiles.cs
@@ -57,7 +57,8 @@ public class MoveTrickplayFiles : IMigrationRoutine
MediaTypes = [MediaType.Video],
SourceTypes = [SourceType.Library],
IsVirtualItem = false,
- IsFolder = false
+ IsFolder = false,
+ IncludeOwnedItems = true
};
do
diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
index 23fce3f368..53acaf123a 100644
--- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
+++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
@@ -360,6 +360,12 @@ namespace MediaBrowser.Controller.Entities
public bool? HasOwnerId { get; set; }
+ /// <summary>
+ /// Gets or sets a value indicating whether to include items with an OwnerId
+ /// (additional parts, alternate versions) that are normally excluded from general queries.
+ /// </summary>
+ public bool IncludeOwnedItems { get; set; }
+
public bool? Is4K { get; set; }
public int? MaxHeight { get; set; }
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs b/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs
index 81dcbf893e..6ea05c6471 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs
@@ -79,6 +79,7 @@ public class TrickplayImagesTask : IScheduledTask
IsVirtualItem = false,
IsFolder = false,
Recursive = true,
+ IncludeOwnedItems = true,
Limit = QueryPageLimit
};
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs b/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs
index c0b8a8c75c..03bb5ff397 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayMoveImagesTask.cs
@@ -70,7 +70,8 @@ public class TrickplayMoveImagesTask : IScheduledTask
SourceTypes = [SourceType.Library],
IsVirtualItem = false,
IsFolder = false,
- Recursive = true
+ Recursive = true,
+ IncludeOwnedItems = true
});
var trickplayQuery = new InternalItemsQuery
@@ -78,7 +79,8 @@ public class TrickplayMoveImagesTask : IScheduledTask
MediaTypes = [MediaType.Video],
SourceTypes = [SourceType.Library],
IsVirtualItem = false,
- IsFolder = false
+ IsFolder = false,
+ IncludeOwnedItems = true
};
do