Hidden Artist in m4a

I have a .m4a music file that evidently has two Artist tags. I can see both tags using the exiftool to show the tags. They both appear to be linked to the Quicktime group with a frame ID of "©ART".

When I load the file in mp3tag, I can only see one of the tags. The second tag does not show up in Windows Explorer nor in foobar2000 properties dialog. However, when I upload the track to music.youtube.com, youtube uses the hidden artist tag.

How can I get the hidden Quicktime Artist ("©ART") tag to be shown in mp3tag so that I can remove it?

Is it really uppercase and is the other one lowercase? What does the extended tag dialog (Alt+T) show?

Thank you (very much) for such a prompt response and an interest in helping me out.

In mp3tag, the extended tag dialog only shows one of the two tags. The Artist tag that is shown was actually the artist value I set using mp3tag. I was completely unaware of the "hidden" Artist tag until I uploaded the track and saw that the "wrong" artist was attributed to the track..

Both artists tags appear to have the same frame / tag ID, all upper-case, of @ART.

Below is a fragment of the output from exiftool showing the two Artist tags. Based on this listing it would appear the two tags are not part of the Quicktime group as I previously stated, but the ItemList group ... I honestly am not sure how to use the exiftool to dump the needed information, nor how exiftool determines a "group" name.

<ItemList:TrackNumber et:id='trkn'>2 of 14</ItemList:TrackNumber>
<ItemList:Genre et:id='gnre'>Country</ItemList:Genre>
<ItemList:ContentCreateDate et:id='\xa9day'>1993</ItemList:ContentCreateDate>
<ItemList:Title et:id='\xa9nam'>Getting Over You (duet with Bonnie Raitt)</ItemList:Title>
<ItemList:Artist et:id='\xa9ART'>Willie Nelson</ItemList:Artist>
<ItemList:Album et:id='\xa9alb'>Across the Borderline</ItemList:Album>
<ItemList:CoverArt et:id='covr'>(Binary data 714689 bytes, use -b option to extract)</ItemList:CoverArt>
<ItemList:Artist et:id='\xa9ART'>Willie Nelson &amp; Bonnie Raitt</ItemList:Artist>
<ItemList:Title et:id='\xa9nam'>Getting Over You</ItemList:Title>
<ItemList:Genre et:id='\xa9gen'>Country</ItemList:Genre>
<ItemList:Album et:id='\xa9alb'>Across the Borderline</ItemList:Album>

The "\xa9" represents the ASCII decimal character 169 which is the copyright, ©, character.

As I mentioned, the only way I knew I had a duplicate tag was after uploading the track and seeing the "wrong" artist. Nothing I could do would show me the second Artist tag in mp3tag, foobar2000, nor Windows Explorer. I used a hex editor to confirm that the second Artist tag physically existed in the file and then figured out how to dump all the tags, including duplicates, using exiftool.

Although I found this problem on over 50 albums, the number of artists affected was closer to 20. With the relatively few artists involved, I was able to use the exiftool to remove all Artist tags and then use mp3tag to re-add the desired (single) Artist tag. For the "Various Artists" albums, I was able to use the Convert > Filename - Tag option to set the Artist tag based on the filename.

So, although I am still interested in how to reveal these "hidden" tags in mp3tag, I believe I was able to work-around my immediate problem using the combination of exiftool and mp3tag. I still need to sample these tracks and make sure that the exiftool did not corrupt the audio portions of the files as this tool is supposed to be used for image files, not specifically mp4 audio files.

I’ve never seen an artist tag that mp3tag couldn’t at least display in the extended tags dialog. How did these get populated in the first place?

I, mostly, agree with you. Over the last couple decades, mp3tag has proven invaluable in helping to organize my collection of audio files. That said, I know there are some "tags" that are not shown. For instance, .flac files have a FLAC-specific cuesheet that does not show-up in mp3tags. This is most likely because this tag is not an ID3 tag, but a FLAC-specific cuesheet frame that contains only information related to playback.

My surprise in finding out that the file had a tag that mp3tag did not show is what prompted me to think that perhaps this tag is some Apple iTunes specific tag and caused me to look into it closer. When I saw that the two artist tags appear to be exactly the same, I was really confused.

The source of the track is from Apple iTunes and this hidden Artist tag was part of the original .m4a file. If I use mp3tag to add another Artist, I will see both of the Artist tags added using mp3tag, but, the original, hidden, artist tag from Apple iTunes is still not shown.

After sampling a few tracks, it appears that the exiftool was able to correctly remove all of the Artist tags without corrupting the audio stream.

I was able to use the exiftool to recurse through my music directories and remove all Artist tags on the .m4a tracks (with no check first to see if there was more than one Artist tag):

C:\RootMusicFolder> exiftool -overwrite_original -a -Artist= -ext "m4a" -r C:\Music

I then loaded all the tracks into mp3tag, sorted by artist and removed those tracks that still had an artist. Using the option Convert > Tag - Tag and setting %ARTIST% to %_parent_directory% (my folder structure is "\<album artist><album>"), I was able to re-add the, one, correct artist. I had to use the Convert > Filename - Tag for the various artists albums as the directory name is the album artist.

When I initially thought this was limited to just a handful of tracks, I wrote a simple batch file to identify (and later to strip) all artist tags from an .m4a file, only if the file had more than one artist tag. But, upon running this in non-update mode, I quickly determined that the problem was effectively all tracks obtained from iTunes. I also had concerns of some artist/album/track names with special characters that might cause the batch file to go haywire. For the curious at not-so-faint-of-heart, here is the batch file:

CHCP 1252>nul 2>nul

::Set or unset _removeTags to remove tags (update files)
:: or to just list the problem tracks.
SET _removeTags=1
SET _removeTags=

::Change these folders to a "root" (parent) folders for your .m4a collections
FOR %%A IN ("C:\rootMusicFolder";"D:\alternateRootMusicFolder") DO CALL :checkRootFolder "%%~A"


::Checks all .m4a files, recursively, from the provided root directory
ECHO Checking root music folder: %1
FOR /R %1 %%B IN (*.m4a) DO CALL :checkTrack "%%~B"
ECHO   Done.

::Checks a specific track to see if it has more than 1 Artist tag
FOR /F "usebackq" %%C IN (`exiftool -a -artist "%~1" ^| find /C /I "Artist                          :"`) DO IF %%~C GTR 1 CALL :fixTrack "%~1"

::Logs a track that needs to be fixed and if _removeTags is set will remove all Artists tags
ECHO   Fixing: "%~1"
IF DEFINED _removeTags exiftool -overwrite_original -a -Artist= "%~1"

The above batch file worked for me, but, if you have any tracks with special characters (e.g., "&"), you may need to ENABLEDELAYEDEXPANSION or otherwise fiddle with it.