-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Issue]: Invalid MusicBrainz track ID values in song/track metadata #11020
Comments
@felix920506 Hi, is there anything I can do to (help) fixing this issue for the upcoming release? Or is it too late? I wouldn't mind implementing the eventual fix, but it'd be nice to have some conversation going first and agree on a solution before doing that. |
Your issue report suggests that the issue is in taglib. If that is the case, there is nothing we can do about it other than fix taglib. |
I am aware. But as the taglib did not have a release for almost two years and the fix is not merged as well, I wouldn't place any hopes on fixing that. Unless the development is happening somewhere else, in which case updating the package could be enough. If not, then one solution would be to have it forked and then maintain it - in similar fashion to ffmpeg. But I don't think this is something the Jellyfin team is interested in, so I thought it'd be good to discuss other options. I think the best solution for now would be to add the ffprobe reading back and then use taglib as the primary source for metadata and ffprobe as secondary - in this specific case the track MBID value from ffprobe would be used for track MBID metadata instead. What do you think? |
The main issues we have with tags right now is that a) ffprobe is unreliable for some types of tags b) apparently taglib is not maintained and is also unreliable |
Ah, I see. That's unfortunate.
Interesting, I did not know that would be possible. But I agree this sounds like quite a bit of work. I also noticed Lidarr uses taglib as well, but they seem to have their own fork. Unfortunately the version they use in the current code is not publicly available, so I was not able to test that. Wouldn't it be better to at least not set the ID at all if it's known it's not valid? |
Might be the best to not set the ID by tags then and fallback to ffprobe. |
This is more or less what I proposed earlier. I assumed the problems with ffprobe were possibly related to the way the tags were written, or is that not the case? |
Afair issue was that it didn't work properly for all the supported tag formats |
Please describe your bug
During file scan, Jellyfin incorrectly sets a MusicBrainz
recording
ID to atrack
ID field in song/track metadata (these are not the same, the hierarchy is explained here).In Jellyfin
10.8.x
, the value is set correctly, as that one uses older method of getting the metadata, which was then refactored for10.9.x
in #7514After looking into it, it seems that
TagLib
incorrectly reads the values from the file and then returns a MusicBrainzrecording
ID value as atrack
ID. This can be seen when debuggingAudioFileProber
, specifically looking into thetags
variable just afterTagLib
reads the metadata:jellyfin/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
Lines 231 to 264 in 2bd85df
And there's an issue report in the taglib-sharp repository as well - which looks like has a pull request with a fix, but as the repository does not seem very active, I guess there's not much hope getting the fix merged.
Reproduction Steps
Jellyfin Version
Unstable (master branch)
if other:
commit 03ef9ae
Environment
Jellyfin logs
There's not much to show, apart from scanning the file, which does not produce any errors.
FFmpeg logs
Issue is not related to playback.
Please attach any browser or client logs here
Issue is not related to UI/UX or playback.
Please attach any screenshots here
Side-by-side view of values in Jellyfin in comparison to what's written in the file metadata:
Code of Conduct
Edit: formatting
The text was updated successfully, but these errors were encountered: