Skip to main content

Topic: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes (Read 2220 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Hi there,

I am trying to change my podcast production workflow to use LAME for encoding and tagging instead of iTunes.

The difficulty I'm having is that the LAME-created MP3, when imported into iTunes (either imported directly from a hard drive or downloaded from my server via the podcast feed), appears to have a blank Comments field.

Taking a look at the files with Tag Clinic on Windows, it appears that the comment tag created with iTunes is ID3v2.2 with the language field set to English. Created by LAME, it is ID3v2.3 with the language field showing up as blank.

To add to the confusion: when previewing the files with the MacOS X Finder ("Get Info" command), both files look fine and show the comment information I expect. When previewing the files with Windows Explorer ("Properties") command, the LAME-created file shows a comment field like I expect, and the iTunes-tagged file shows a zero or some hex data.

If anyone wants to take a shot at examining the test MP3 files I'm looking at, you can find them here. This one is generated by LAME, it looks OK with Mp3tag but the comment field is blank in iTunes:

http://thepottshouse.org/pottscasts/gapp/Conversation%20%2311_%20White%20Working%20Class%20(August%206,%202017)_LOUDER_LAME_128.mp3

Meanwhile, this one was encoded by iTunes and I tagged it manually. The comment tag shows up in Mp3tag and as I expect in iTunes (typo and all).

http://thepottshouse.org/pottscasts/gapp/Conversation%20%2311_%20White%20Working%20Class%20(August%206,%202017).mp3

The bit rate and audio quality is not final -- I'm not done screwing around with compressor/limiter settings, so please don't bother to critique that unless you are feeling very motivated.

I don't really care about who is following the most standard way to do things -- I'd just like to create MP3 files that are as compatible as possible. What's the best practice for maximum compatibility here? Is there a way to get LAME to make a comment tag that iTunes will read?

Thanks!

  • saratoga
  • [*][*][*][*][*]
Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #1
The files were huge so I just looked at the iTunes one.  It has a normal looking ID3v2.2 COM tag with that text.  I'm not sure how good iTunes compatibility is with newer ID3v2 versions, so maybe you could try forcing 2.2 and see if it works.

Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #2
Would that be using --id3v2-only? I can try that this evening and see if it fixes the problem.

  • saratoga
  • [*][*][*][*][*]
Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #3
I think that command just turns off ID3v1 tags, which probably makes no difference here.

Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #4
So how would I go about forcing LAME to use 2.2 tags? Sorry if it's obvious, but I didn't see it looking through the man pages and various online samples.

I've been looking into whether I could skip LAME for the tagging and use some other command-line tool like id3tag with id3lib. https://apple.stackexchange.com/a/16145

Maybe I will try that this evening and see if it works better.
 

  • robert
  • [*][*][*][*][*]
  • Developer
Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #5
Seemes like iTunes has still a problem when a mp3 has id3v1 and id3v2 tags.

https://discussions.apple.com/thread/4224275?tstart=0

Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #6
Last night I tried installing id3lib with Brew, which gave me a command-line utility and that wouldn't let me write a comment tag with the language set, so I tried using the id3v2 executable to set the tag. That doesn't work, and it appears I've found a possible bug in id3v2.

    id3v2 --delete-all Conversation\ #11_\ White\ Working\ Class\ \(August\ 6\,\ 2017\)_LOUDER_LAME_128.mp3
    Stripping id3 tag in "Conversation #11_ White Working Class (August 6, 2017)_LOUDER_LAME_128.mp3"...id3v1 and v2 stripped.
    id3v2 --list Conversation\ #11_\ White\ Working\ Class\ \ (August\ 6\,\ 2017\)_LOUDER_LAME_128.mp3
    Conversation #11_ White Working Class (August 6, 2017)_LOUDER_LAME_128.mp3: No ID3 tag
   id3v2 --artist "Grace and Paul Potts" --album "The Grace and Paul Pottscast" --song "Conversation #11: White Working Class (August 6, 2017)" --year `date '+%Y'` --comment "":"$LICENSE":"eng" Conversation\ #11_\ White\ Working\ Class\ \(August\ 6\,\ 2017\)_LOUDER_LAME_128.mp3
    id3v2 --list Conversation\ #11_\ White\ Working\ Class\ \(August\ 6\,\ 2017\)_LOUDER_LAME_128.mp3
    id3v1 tag info for Conversation #11_ White Working Class (August 6, 2017)_LOUDER_LAME_128.mp3:
    Title : Conversation #11: White Workin Artist: Grace and Paul Potts
    Album : The Grace and Paul Pottscast Year: 2017, Genre: Unknown (255)
    Comment: This work by Grace and Paul Po
    id3v2 tag info for Conversation #11_ White Working Class (August 6, 2017)_LOUDER_LAME_128.mp3:
    TPE1 (Lead performer(s)/Soloist(s)): Grace and Paul Potts
    TALB (Album/Movie/Show title): The Grace and Paul Pottscast
    TIT2 (Title/songname/content description): Conversation #11: White Working Class (August 6, 2017)
    TYER (Year): 2017
    COMM (Comments): ()[//c]: This work by Grace and Paul Potts is released under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license (https

Notice that it shows the language field of the comment as containing "//c" instead of "eng" -- and iTunes does not import this tag, same as before.

So right now it looks like I tried a workaround to avoid a bug in Logic, by using LAME, which generates tags incompatible with iTunes, so I tried another workaround, using id3v2, which looks like it should do what I want except for a bug.

I will try tonight and see if I can selectively delete the ID3V1 tag (I think maybe id3v2 wrote a truncated V1 tag along with the V2 tag).

It looks like it also displays the tags, such as title, truncated, even though they aren't (those tags show up in iTunes fine).

There must be a better "best practice" that I haven't found yet!
  • Last Edit: 10 August, 2017, 10:27:16 AM by paulrpotts

  • robert
  • [*][*][*][*][*]
  • Developer
Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #7
Some observations: the iTunes tagged file has an id3v2.2 tag only, no id3v1, and its characters a 8 bit Latin1. The LAME encoded file comes with id3v1 and id3v2.3 tags, the id3v2.3 tag characters are 16 bit Unicode.

You can try adding "--id3v2-only --id3v2-latin1" to your LAME commandline.
  • Last Edit: 10 August, 2017, 11:24:05 AM by robert

Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #8
Thanks Robert -- I will try the "Latin1" option this evening, although I think the issue may be the failure of LAME to set the language field (and it doesn't seem to have the option to do so).

Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #9
Well, I found a solution... I recompiled LAME with a minor change.

I wrote a blog post about the problem and solution here: https://geeklikemetoo.blogspot.com/2017/08/a-workaround-for-mp3-tagging-problem.html

Quote
When LAME writes an ID3v2 comment tag, it seems to set the language to either some unicode string, or if the command-line switch --id3v2-latin1 is used, to "XXX." There doesn't seem to be an option to set it to something else. In either case, iTunes will not import this field.

My wife Grace said "your encoder is lame."

I tried to use the id3v2 command-line tool to add the tags to my MP3 file instead. Since I'm making a script, I have no qualms about using two command-line tools instead of one, if that works. But id3v2 seems to have the same problem. It supports the --id3v2-only switch, but there does not seem to be any equivalent of the --id3v2-latin1 switch, so I can't get it to write an iTunes-compatible comment field either.

My workaround was to rebuild LAME, replacing several hard-coded instances of "XXX" with "eng." This is not exactly a bug to report, since I'm not sure that LAME is actually "wrong" per se, according to the standard. But I can't fix the issue in iTunes. And like it or not, if I want maximum compatibility, I have to generate files that work well with iTunes.

A better solution would probably be to give LAME more options. Specifically for this problem an option to set the comment language would be nice. I would hesitate to add a specific switch like --workarounditunes which just forced the comment language to "eng," but maybe the ability to set the comment language would be useful for other folks, while providing a workaround for this compatibility problem.

  • robert
  • [*][*][*][*][*]
  • Developer
Re: I Want to Use LAME to Create MP3s with Comment Fields Compatible with iTunes
Reply #10
If changing the language code to 'eng' is all it needed, well that's one of the changes 3.100 will have out of the box.