| 
					
				 | 
			
			
				@@ -347,7 +347,8 @@ namespace MediaBrowser.Providers.MediaInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                      || track.AdditionalFields.TryGetValue("MusicBrainz Artist Id", out 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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     && !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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     && !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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     && !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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     && !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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |