Replies: 5 comments 5 replies
-
I agree that mixed libraries are a pain to work with, and that most people use them when they shouldn't, but there are legitimate use cases:
It doesn't make any sense, for me and anybody, to have multiple Documentaries folders because provider's shenanigans. In general, although it's not our fault (and Plex and all media servers I saw work this way), I think we're doing libraries bad. The whole concept of forcing users to do libraries is ridiculous for some people (like me): What if I don't want to separate my Movies? I'm forced to create a library for the "Movie" type with a name "Movies" (because why reinvent the wheel, right?) This is why I want to experiment in Vue to remove the concept of libraries when users only have 1 library for an specific item type. The future EFCore model in server it's already designed (or requires minor changes for this) the last time I've been thinking about this schema proposition. Key aspects:
With this, we already have quite a lot of advantages:
There is still a thing to discuss:
We can rework the current "VirtualFolder" to be more like a "Tag":
This is more less it. I probably missed some edge cases for the sake of not making a (even) bigger message, but I probably have it already covered since its a long time I've been thinking about this :). I also have more fine-grained feedback on how this can be implemented scanning-wise, but let's see what people thinks about this first!. All in all, I hope eventually Vue provides the best playground to test people's reaction to this. |
Beta Was this translation helpful? Give feedback.
-
I'm in favor of this, because not only do different media types use different providers, they are queried and displayed differently too. For instance, here's a (simplified) query I wrote a while ago to gauge the performance we can expect from the new schema: _dbContext.SeriesMetadata
.AsNoTracking()
.Where(metadata => metadata.LibraryId == 4 && metadata.Language == "eng")
.Include(md => md.Artwork.Where(art => art.Kind == ArtKind.Poster))
.Include(md => md.Series)
.Select(md => new
{
Metadata = md,
UnwatchedCount = _dbContext.Episodes.Count(ep => ep.SeriesId == md.Series.Id)
- _dbContext.UserEpisodeData.Count(ued => ued.SeriesId == md.Series.Id && ued.UserId == Guid.Empty && ued.IsWatched)
})
.OrderBy(results => results.Metadata.SortTitle)
.ToList(); This query returns a user's view for a tv library. It returns everything needed for a library page in a single query, with no in-memory processing by the server. This is basically impossible if we don't know what type of media to expect in a library, since we have different logic per type (TV has @ferferga raised the point that things like Documentaries could be either tv shows or movies, but I think that collections should be used for such groupings, and more generally, we should use different library types for semantic differences in media, while collections can be used to make logical groupings across libraries. One place I can see that might need consideration is something like TV Shows with related movies. Often, providers will include those in the specials, but they're still mostly treated as any other episode in the UI, which isn't ideal, but mostly unrelated. |
Beta Was this translation helpful? Give feedback.
-
I don't have quite as much to say on this issue as some of the others, but I would like to add a +1 to being in favor of a gradual phase out for the Mixed library type. The fact is that they are almost impossible to support, and they should, at the very least, not be provided to users as an equivalent option alongside more traditional libraries. From a support perspective, the most common advice about Mixed libraries is simply not to use them because they do not function as the overwhelming majority of users expect them to function. Jellyfin's integrated metadata retrieval simply does not retrieve metadata reliably for matching media in this structure, and the use of an external metadata tool like TinyMediaManager and NFO based metadata is practically a requirement to keep this library type functional. I think there is definitely room to explore more customizable library structures moving forward, but this particular implementation, as it presently exists, is barely functional for most users who try to use it. |
Beta Was this translation helpful? Give feedback.
-
I do think there is a valid use case for mixed libraries, and therefore disagree with their complete removal. I would propose the following instead:
|
Beta Was this translation helpful? Give feedback.
-
I agree with @felix920506 I just started using Jellyfin (long time Kodi/xbmc user) and this has been a major point of frustration. I can see the issues with it and I think the reason it is used by a few small set is that it is a busted system. I think it makes sense to remove it but it should be replaced with something better, not just taken away. As a new user with a decent sized library, there are many reasons to want/need a shows/movies selection. I hope there would be plans to implement a better solution to allow this in the future. Honestly, this is such an issue for me that I may just go back to Kodi as it is way too painful in it's current state with how much content I have that falls into this legacy library. It shouldn't be expected that the user needs to redo their library and splitting apart series or documentaries that fall into this category. I would even argue that not having movie support for a TV Series is a very limiting factor to this. Battlestar Galatica is a perfect example. The user wants to see everything for the show in a single screen. Having to hop around to find it isn't just inconvenient, it's annoying to the user. Series are very similar to collections in that aspect, just they also have a Seasons section. To continue with BSG as an example, Razor is a TV Movie. I would want to keep all the data in a single folder. I keep this inside my Series directory as this is what BSG is. I'm not against moving some stuff in the BSG folder around (like naming a folder movies or whatever) but it makes no sense to move it to another share location like Movies, it doesn't belong there. I haven't had the chance to look into plugin development for Jellyfin yet but if this can be solved by a plugin, I can take a stab at it. |
Beta Was this translation helpful? Give feedback.
-
Proposal to first retire and then remove the Mixed library type.
This type of library is by many considered legacy code, it is very prone to both User error as well as metadata lookup issues. This comes from the issue that the detection of what is series and what is film is very poorly implemented. The type is used by a very small set of users but most do eventually join on matrix and request support for it, which most experienced chat members will turn down as "Not supported". Currently and for quite some time, nobody wanted/wants to touch this feature, while it brings a lot of issues.
My proposal would be to retire that feature in steps.
This does ensure ongoing support for it while we retire this feature. A documented command line flag or environment might be added to reenable it. This could be done with the next minor version update.
Sees the removal of support for new mixed libraries. The cmd flag as well as the env. variable will be removed and an optional warning in the WebUI will overlay a warning over existing mixed libraries warning of the pending obsolescence of the type. This could be done with the next minor version update.
Complete removal of the mixed library type, with only a shim using the type to ensure breaking existing systems on a code-level. While the type will still exist in code, the warning in the WebUI will be altered to a notification that the type is no longer supported and content must be sorted into Movie and Series type libraries.
Beta Was this translation helpful? Give feedback.
All reactions