Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've recently been ripping more of my CDs and have noticed that there seems to be no command-line tool that allows for converting to id3v2.3. The only tool I've found that can actually even properly fix my tags (The tagger rip, the script I use for ripping, uses seems to only write id3v1) is mid3v2 that uses mutagen.

The only problem? Mutagen basically tells me to choke on a phallic object if I want to use any other format than v2.4. I would have no problem with that if my mp3 player just supported said format.

I've tried id3v2 -C as well, but that seems to use an 8-bit non-unicode encoding to store the tags. This is something I would rather not do. Especially since none of my other software supports tags in this format

Basically, I'm trying to solve a very specific problem that should have a trivial solution. And I'm wondering why it doesn't.

Edit: I'm actually not sure of that non-unicode encoding right now, but it seems to double-encode; I get double characters in place of "ä"s and "ö"s

share|improve this question
up vote 4 down vote accepted
eyeD3 --set-encoding=utf8 --to-v2.3 *.mp3

(Add --remove-v1 for bonus points.)

Note that sometimes the problems are caused not by 2.3 vs 2.4, but rather by usage of UTF-16 vs UTF-8. Play around with --set-encoding.

I get double characters in place of "ä"s and "ö"s

Do they look like "in place of "ä"s and "ö"s"? If so, it's UTF-8 – a variable-width format of Unicode. ID3v2 has an "character set" marker for every textual frame, and some tag editors store UTF-8 Unicode data but mark it as ISO-8859-1, causing players to incorrectly decode the characters.

share|improve this answer
I know it's UTF-8, and by double-encoding I meant that it encodes the text as UTF-8 and then proceeds to treat it as Latin-1. I'll try eyeD3 after first bastardizing some of my tags again. – Esa Lakaniemi Oct 1 '11 at 22:04
Oh, and I already am removing v1 tags ;) – Esa Lakaniemi Oct 1 '11 at 22:05
I'll try this and if it works, mark as accepted — but I think actually patching rip to use id3v2 in the first place is the best way to go here. – Esa Lakaniemi Oct 1 '11 at 22:16
Seems to work, running a test rip to confirm – Esa Lakaniemi Oct 2 '11 at 1:05
Okay, it did work but I had to do some edits to the actual script I'm using for ripping first. Namely, I need to first convert manual input to Latin-1 and then proceed to write the tags as such, converting them into UTF-16 with eyeD3. This is a completely retarded solution but the part of it you suggested works flawlessly. Thanks. – Esa Lakaniemi Oct 2 '11 at 14:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .