nicfit / eyeD3

eyeD3 is a Python module and command line program for processing ID3 tags. Information about mp3 files (i.e bit rate, sample frequency, play time, etc.) is also provided. The formats supported are ID3v1 (1.0/1.1) and ID3v2 (2.3/2.4).
http://eyed3.nicfit.net/
GNU General Public License v3.0
532 stars 58 forks source link

Apple's "grouping" #609

Open WGroleau opened 9 months ago

WGroleau commented 9 months ago

Apple's Music.app (formerly iTunes) has a "Grouping" tag that I would like to be able to read/remove/alter by shell script.

exiftool can read it. I think the tag they use is GRP1; od -xc & sdiff show:

2230420      6d61    726f    0a2e    5247    3150    0000    0b00    0000  | 2230420      6d61    726f    0a2e    5054    3145    0000    0c00    0000
           a   m   o   r   .  \n   G   R   P   1  \0  \0  \0  \v  \0  \0   |            a   m   o   r   .  \n   T   P   E   1  \0  \0  \0  \f  \0  \0
2230440      6c00    6e61    3a67    7020    3b74    5400    4550    0031  | 2230440      5900    756f    6556    7372    6f69    006e    5054    3245
          \0   l   a   n   g   :       p   t   ;  \0   T   P   E   1  \0   |           \0   Y   o   u   V   e   r   s   i   o   n  \0   T   P   E   2

id3/apple.py includes GRP1_FID = b"GRP1" but it is not displayed.

WGroleau commented 9 months ago

I see the apple.py comment

Here lies Apple frames, all of which are non-standard. All of these would have
been standard user text frames by anyone not being a bastard, on purpose.

I might suggest  :-)  … Don't assume malice when it could just be stupidity. Don't assume stupidity when it could be just ignorance. Don't assume ignorance when it could just be misunderstanding. Blessed are the peacemakers.  :-)

WGroleau commented 9 months ago

I was not aware of the text-frame option, but this didn't work:

WGroleau@MBP ~ % eyeD3 --encoding utf8 --to-v2.4 --text-frame 'GRP1:lang\\: el;' /Users/WGroleau/Downloads/FPB.mp3
/Users/WGroleau/Downloads/FPB.mp3                                             [ 1.49 MB ]
------------------------------------------------------------------------------------------
Setting b'GRP1' text frame to 'lang\: el;'
Invalid frame-id for text frame