2024-04-01, 03:39 AM
Why in jellyfin (and most related media software) is there such a big reliance on file naming and directory structures? The actual data model seems to be more defined by a bunch of heuristics for how to handle various objects / cases. I know it can be helpful in an initial import if you happen to have a nicely named collection already. Personally I'd rather put in the time to write nice machine-readable descriptions (like NFO) rather than renaming everything.
For movies, for example, you can add a label in the filename like "1080p" or "Director's Cut" and there is even a modified sorting so that resolutions aren't sorted alphanumerically (ie 1080p < 2160p < 720p) but numerically (720p < 1080p < 2160p). However, at least in the documentation, there's no indication that you can combine a resolution and a cut in a filename label. Of course you can put arbitrary text there, but presumably you don't get any special sorting if you add a label like "2160p Extended Edition" or "Original Cut 720p". There are two separate axes here, and trying to encode too much in a filename just requires more and more fragile text parsing.
We do have NFO files, but you can't put resolution or cut in there. You have to put version information in file name but can't but IMDB in file name, that has to go in NFO. Other metadata you may only be able to set via the API.
Also strangely, Jellyfin will write fields into a NFO that it won't read back, ie compare readable and writeable fields from this documentation. What's the point?
This is a half-baked self-righteous rant post. Does anyone know what I'm talking about though? I like jellyfin better than alternatives and use it often, but it seems like a mess. I don't want to rely on a delicate balance of various local data sources and custom tools to get metadata in order. In contrast, I see the MusicBrainz project doing really well with a consistent and explicit data model so you always know what you're dealing with and what kind of metadata you should be able to specify whether you're browsing their database in a browser or interacting with an API or some other tool.
For movies, for example, you can add a label in the filename like "1080p" or "Director's Cut" and there is even a modified sorting so that resolutions aren't sorted alphanumerically (ie 1080p < 2160p < 720p) but numerically (720p < 1080p < 2160p). However, at least in the documentation, there's no indication that you can combine a resolution and a cut in a filename label. Of course you can put arbitrary text there, but presumably you don't get any special sorting if you add a label like "2160p Extended Edition" or "Original Cut 720p". There are two separate axes here, and trying to encode too much in a filename just requires more and more fragile text parsing.
We do have NFO files, but you can't put resolution or cut in there. You have to put version information in file name but can't but IMDB in file name, that has to go in NFO. Other metadata you may only be able to set via the API.
Also strangely, Jellyfin will write fields into a NFO that it won't read back, ie compare readable and writeable fields from this documentation. What's the point?
This is a half-baked self-righteous rant post. Does anyone know what I'm talking about though? I like jellyfin better than alternatives and use it often, but it seems like a mess. I don't want to rely on a delicate balance of various local data sources and custom tools to get metadata in order. In contrast, I see the MusicBrainz project doing really well with a consistent and explicit data model so you always know what you're dealing with and what kind of metadata you should be able to specify whether you're browsing their database in a browser or interacting with an API or some other tool.