mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-02 21:24:15 -04:00
Only set first MusicBrainz ID for audio tags (#13003)
This commit is contained in:
parent
9e61a6fd72
commit
e2434d38c5
@ -347,7 +347,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Artist Id", out musicBrainzArtistTag))
|
|| track.AdditionalFields.TryGetValue("MusicBrainz Artist Id", out musicBrainzArtistTag))
|
||||||
&& !string.IsNullOrEmpty(musicBrainzArtistTag))
|
&& !string.IsNullOrEmpty(musicBrainzArtistTag))
|
||||||
{
|
{
|
||||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzArtist, musicBrainzArtistTag);
|
var id = GetFirstMusicBrainzId(musicBrainzArtistTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||||
|
audio.TrySetProviderId(MetadataProvider.MusicBrainzArtist, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,7 +358,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Album Artist Id", out musicBrainzReleaseArtistIdTag))
|
|| track.AdditionalFields.TryGetValue("MusicBrainz Album Artist Id", out musicBrainzReleaseArtistIdTag))
|
||||||
&& !string.IsNullOrEmpty(musicBrainzReleaseArtistIdTag))
|
&& !string.IsNullOrEmpty(musicBrainzReleaseArtistIdTag))
|
||||||
{
|
{
|
||||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbumArtist, musicBrainzReleaseArtistIdTag);
|
var id = GetFirstMusicBrainzId(musicBrainzReleaseArtistIdTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||||
|
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbumArtist, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,7 +369,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Album Id", out musicBrainzReleaseIdTag))
|
|| track.AdditionalFields.TryGetValue("MusicBrainz Album Id", out musicBrainzReleaseIdTag))
|
||||||
&& !string.IsNullOrEmpty(musicBrainzReleaseIdTag))
|
&& !string.IsNullOrEmpty(musicBrainzReleaseIdTag))
|
||||||
{
|
{
|
||||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbum, musicBrainzReleaseIdTag);
|
var id = GetFirstMusicBrainzId(musicBrainzReleaseIdTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||||
|
audio.TrySetProviderId(MetadataProvider.MusicBrainzAlbum, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -377,7 +380,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Release Group Id", out musicBrainzReleaseGroupIdTag))
|
|| track.AdditionalFields.TryGetValue("MusicBrainz Release Group Id", out musicBrainzReleaseGroupIdTag))
|
||||||
&& !string.IsNullOrEmpty(musicBrainzReleaseGroupIdTag))
|
&& !string.IsNullOrEmpty(musicBrainzReleaseGroupIdTag))
|
||||||
{
|
{
|
||||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzReleaseGroup, musicBrainzReleaseGroupIdTag);
|
var id = GetFirstMusicBrainzId(musicBrainzReleaseGroupIdTag, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||||
|
audio.TrySetProviderId(MetadataProvider.MusicBrainzReleaseGroup, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -387,7 +391,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|| track.AdditionalFields.TryGetValue("MusicBrainz Release Track Id", out trackMbId))
|
|| track.AdditionalFields.TryGetValue("MusicBrainz Release Track Id", out trackMbId))
|
||||||
&& !string.IsNullOrEmpty(trackMbId))
|
&& !string.IsNullOrEmpty(trackMbId))
|
||||||
{
|
{
|
||||||
audio.TrySetProviderId(MetadataProvider.MusicBrainzTrack, trackMbId);
|
var id = GetFirstMusicBrainzId(trackMbId, libraryOptions.UseCustomTagDelimiters, libraryOptions.GetCustomTagDelimiters(), libraryOptions.DelimiterWhitelist);
|
||||||
|
audio.TrySetProviderId(MetadataProvider.MusicBrainzTrack, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -441,5 +446,18 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MusicBrainz IDs are multi-value tags, so we need to split them
|
||||||
|
// However, our current provider can only have one single ID, which means we need to pick the first one
|
||||||
|
private string? GetFirstMusicBrainzId(string tag, bool useCustomTagDelimiters, char[] tagDelimiters, string[] whitelist)
|
||||||
|
{
|
||||||
|
var val = tag.Split(InternalValueSeparator).FirstOrDefault();
|
||||||
|
if (val is not null && useCustomTagDelimiters)
|
||||||
|
{
|
||||||
|
val = SplitWithCustomDelimiter(val, tagDelimiters, whitelist).FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user