Rhythmbox ID3 Tag Issues

Posted by admin on July 8, 2008 under Tech Tips | 11 Comments to Read

So I recently noticed that Rhythmbox was behaving strangely when reading the ID3 tags of my MP3 collection purchased online via Amazon.com. No matter what ID3 tag editor I used to try to correct the issue, Rhythmbox appeared to be displaying tag information that didn’t seem to match any of the values they should be. Artist names would not appear as I set them. Track numbers and genres would display as blank values. ‘What gives?’, I thought.

So I decided to use “strings” to take a look inside the MP3′s and find out what’s going on. It turns out my MP3′s were double tagged with v1 metadata and it was screwing up Rhythmbox’s organizational skills! Boo!

Some brief background info on ID3 tagging is needed before we continue. ID3 v1.x tags are located at the tail end of an MP3, whereas v2.x tags are located at the beginning of the file. To view the raw tag data, open up a terminal window and use the strings command to parse the mp3 for text.

$ strings songname.mp3 | head
$ strings songname.mp3 | tail

Here’s an example of the output obtained from one of my problematic tracks. I wanted the artist name to appear as “Bob Marley”, but Rhythmbox insisted on displaying “Bob Marley & The Wailers”.

$ strings 01 - Is This Love.mp3 | tail
J/q:
X0aZ
-g%U
TAGIs This Love
Bob Marley & The Wailers
Legend
TAGIs This Love
Bob Marley
Legend
2002Amazon.com Song ID: 20254105

In this example, you can see I have two ID3v1.x tags at the end of the file. Each tag starts with “TAG”, immediately followed by the track name, artist and album. Rhythmbox was only reading the first one, but all of the tag editors I tried were working with the last one.

Solution:
Simply remove all ID3v1.x tags twice, then re-write them if you wish. An easy command line application for this job is “eyeD3“. Others may work as well, but of course your mileage may vary.

Install eyeD3 from repositories if you use Debian/Ubuntu.

$ sudo apt-get install eyed3

Display the outer-most ID3v1.x tag

$ eyeD3 -1 01 - Is This Love.mp3

Remove the outer-most ID3v1.x tag twice, or until they’re all gone. I trimmed the output below for brevity.

$ eyeD3 --remove-v1 01 - Is This Love.mp3 1>/dev/null
Removing ID3 v1.x tag: SUCCESS
$ eyeD3 --remove-v1 01 - Is This Love.mp3 1>/dev/null
Removing ID3 v1.x tag: SUCCESS

Doing so immediately resolves the Rhythmbox tag display issue, as it reverts back to using the v2.x tags at the beginning of the file.

Fixing the problem in bulk:
If you want to fix all of your MP3′s fast, you can use any of the following methods. Remember, you must run them at least twice, or until all v1.x tags have been removed. The commands listed below use "1>/dev/null" to remove all standard output, but still allows standard error messages to be shown. Interestingly, the SUCCESS messages eyeD3 uses are written to standard error, so you’ll see those too.

If all your MP3′s are in the same directory:

$ for i in *.mp3 ; do eyeD3 --remove-v1 "$i" 1>/dev/null ; done

If all your MP3′s span multiple subdirectories:

$ find . -type f -name *.mp3 -exec eyeD3 --remove-v1 '{}' 1>/dev/null ;

Alternatively, you can use a python script written by UlyssesR, originally contributed on the Ubuntu Forums here. The script has the advantage of only needing to be run once and it is relatively safe to use. I actually used it on my entire collection before using eyeD3 in this manner with no problems. I then reapplied my tags using EasyTag.

Be Sociable, Share!

Comments

  • mas7ro.p!no said,

    Thx mate, I really need this because I have the same issue, I write the tag with easytag but RB continues to display a wrong tag!

    Thanks from Sicily :D

  • Russell said,

    Thanks a lot for this. i knew my mp3s had more than one ID3 tag but didn’t know how to resolve it. Your solution in very helpful

  • raf82 said,

    Very Useful post!
    See also http://ubuntuforums.org/showthread.php?t=1013374 about removing APE tags which can lead to the same Rhythmbox behavior.

  • Andrea R said,

    Thanks!
    It’s “Bob Marley & The Wailers” or (just “The Wailers” until 1974) though, not “Bob Marley”, unless for a couple singles from 1962. :-D

  • gmendoza said,

    Haha!! I love that you cared enough about the topic to share that. :-P

  • Shane D said,

    Great post! Here are a few additions:

    To automagically re-add the v1 tags (based on the v2 tags):
    eyeD3 –to-v1.1 SONG_FILE

    Here’s a script (fix_amazonmp3.sh) to do it all in one file:
    #!/bin/bash
    IFS=$’n’
    eyeD3 –remove-v1 $1
    eyeD3 –remove-v1 $1
    eyeD3 –to-v1.1 $1

    To convert all mp3s at or below current directory using the above script:
    find . -iname ‘*.mp3′ -exec fix_amazonmp3.sh {} ;

  • Sam said,

    There are plenty of tag editors that will merge duplicate fields. Personally, I use windows-based mp3tag
    http://www.mp3tag.de/en/

    I am concerned that it seems to be rhythmbox that is causing these duplicates.

  • Alan said,

    Oooh… thanks. I have had the APE tag issue with Rhythmbox before, but I’ve never run into the multiple sets of ID3 tags before! Man, what a waste of three hours trying to figure that out! In my case they were APE + ID3v1 + ID3v2 + ID3v2… AHAHAAHA.

  • happyfish said,

    The only thing that’s working for me to solve this problem- and I’ve tried all night- is using a WINE run of SongBird Portable to edit the id3 tags… I’ve used several command line programs, VLC, Rhythmbox itself, puddlemp3… Nothing else is working. :S I have no idea why…

  • Antares said,

    The id3.v1 problem can be fixed using id3v2 using the -s option

    id3v2 -s

    Regards.

  • Juliana said,

    Thank you so much! It work perfectly!! :)

Add A Comment