Reading 'Grouping' Tag from iTunes

Reading 'Grouping' Tag from iTunes

Postby nickharambee » Thu Apr 19, 2012 1:28 pm

Hi,

I am trying to use getID3 to read the 'Grouping' tag from iTunes. It would seem that iTunes is writing these tags to my MP3 files, as, when I open them in Media Rage the Grouping Tag shows up OK. However, when I then upload the tracks to my server and use 'content_group_description' to read these tags, nothing shows up. If however, I change the Grouping Tag in Media Rage, and then re-upload, the Grouping Tag does show up.

I wonder if someone could help me troubleshoot why this is happening. I would rather not have to retag all of my files in Media Rage if possible.

Thanks,

Nick
nickharambee
User
 
Posts: 22
Joined: Sat Mar 05, 2011 4:42 am

Re: Reading 'Grouping' Tag from iTunes

Postby James Heinrich » Thu Apr 19, 2012 1:30 pm

Take a peek at what getID3 is returning (/demo/demo.browse.php is a convenient way to look at the mess of info inside most files) and see where the data is hiding.

If you can't figure it out, send me a sample file and I'll take a look.
James Heinrich
getID3() v1 developer
 
Posts: 1203
Joined: Fri May 04, 2001 11:00 am
Location: London, ON, Canada

Re: Reading 'Grouping' Tag from iTunes

Postby nickharambee » Thu Apr 19, 2012 2:51 pm

Thanks James.

I tried using demo.browse.php, but couldn't get this to work. I tried turning off magic_quotes_gpc by editing my .htaccess file, but just got an error.

Here's a link to download two versions of a file, one (the 'ok' file) that works with getID3 and another (the 'not ok' file) that doesn't:

https://files.me.com/nick_harambee/k2mwif

For both files, the grouping tag shows OK on my Mac in various programs. Perhaps you could take a look and let me know if you can see anything wrong?

Thanks,

Nick
nickharambee
User
 
Posts: 22
Joined: Sat Mar 05, 2011 4:42 am

Re: Reading 'Grouping' Tag from iTunes

Postby nickharambee » Thu Apr 19, 2012 3:00 pm

I noticed there was a feature in Media Rage to 'Show Data Dump', so thought I would include it here in case it is helpful. The 'Grouping' Tag is in frame 7 in the 'OK' file and frame 5 in the 'not OK' file. The actual data in these frames appears to be identical though.

OK FILE:
Code: Select all
-- MP3Tag --

    originalVersion   = 0x04
    originalRevision  = 0x00
    originalFlags     = 0x00
    v1Version         = 0x10
    originalSize      = 615770
    musicDataStart    = 615770
    musicDataSize     = 3636998
    frameCount        = 10

    -- frame 1 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54454E43
        v3ID          = TENC
        v2ID          = TEN
        originalFlags = 0x00000000
        dataSize      = 12
        dataPtr       =
    0000: 00416D61 64657573 2050726F          |^Amadeus Pro````|

    -- frame 2 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x41504943
        v3ID          = APIC
        v2ID          = PIC
        originalFlags = 0x00000000
        dataSize      = 605220
        dataPtr       =
    0000: 00696D61 67652F70 6E670000 0089504E |^image/png^^^^PN|
    0010: 470D0A1A 0A000000 0D494844 52000002 |G^^^^^^^^IHDR^^^|
    0020: 58000002 51080200 0000160B 5E430000 |X^^^Q^^^^^^^^C^^|
    0030: 0A316943 43504943 43205072 6F66696C |^1iCCPICC Profil|
    0040: 65000048 899D9677 5453D916 87CFBD37 |e^^H^^^wTS^^^^^7|
    0050: BD509210 8A94D06B 68520248 0DBD4891 |^P^^^^^khR^H^^H^|
    0060: 2E2A3109 104AC090 00223644 54704451 |.*1^^J^^^"6DTpDQ|
    0070: 91A60832 28E080A3 4391B122 8A850151 |^^^2(^^^C^
    -- frame 3 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54495432
        v3ID          = TIT2
        v2ID          = TT2
        originalFlags = 0x00000000
        dataSize      = 20
        dataPtr       =
    0000: 00646A65 6D706C61 6E672062 616E676B |^djemplang bangk|
    0010: 6F6E6700                            |ong^````````````|

    -- frame 4 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54504531
        v3ID          = TPE1
        v2ID          = TP1
        originalFlags = 0x00000000
        dataSize      = 16
        dataPtr       =
    0000: 00646564 65206B75 726E6961 73696800 |^dede kurniasih^|

    -- frame 5 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54434F4D
        v3ID          = TCOM
        v2ID          = TCM
        originalFlags = 0x00000000
        dataSize      = 16
        dataPtr       =
    0000: 00646564 65206B75 726E6961 73696800 |^dede kurniasih^|

    -- frame 6 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54414C42
        v3ID          = TALB
        v2ID          = TAL
        originalFlags = 0x00000000
        dataSize      = 19
        dataPtr       =
    0000: 00657863 61766174 65642073 68656C6C |^excavated shell|
    0010: 616300                              |ac^`````````````|

    -- frame 7 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54495431
        v3ID          = TIT1
        v2ID          = TT1
        originalFlags = 0x00000000
        dataSize      = 11
        dataPtr       =
    0000: 00696E64 6F6E6573 696100            |^indonesia^`````|

    -- frame 8 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54445243
        v3ID          = TDRC
        v2ID          =
        originalFlags = 0x00000000
        dataSize      = 6
        dataPtr       =
    0000: 00313934 3800                       |^1948^``````````|

    -- frame 9 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54434F4E
        v3ID          = TCON
        v2ID          = TCO
        originalFlags = 0x00000000
        dataSize      = 7
        dataPtr       =
    0000: 00617369 616E00                     |^asian^`````````|

    -- frame 10 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x434F4D4D
        v3ID          = COMM
        v2ID          = COM
        originalFlags = 0x00000000
        dataSize      = 93
        dataPtr       =
    0000: 00656E67 006C6162 656C3A65 78636176 |^eng^label:excav|
    0010: 61746564 20736865 6C6C6163 20206C61 |ated shellac  la|
    0020: 62656C3A 6E757361 6E746172 61202063 |bel:nusantara  c|
    0030: 6F756E74 72793A69 6E646F6E 65736961 |ountry:indonesia|
    0040: 20207375 6267656E 72653A37 38732020 |  subgenre:78s  |
    0050: 73756267 656E7265 3A6F6C64 00       |subgenre:old^```|

--


NOT OK FILE:
Code: Select all
-- MP3Tag --

    originalVersion   = 0x02
    originalRevision  = 0x00
    originalFlags     = 0x00
    v1Version         = 0x00
    originalSize      = 615994
    musicDataStart    = 615994
    musicDataSize     = 3031249
    frameCount        = 13

    -- frame 1 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54495432
        v3ID          = TIT2
        v2ID          = TT2
        originalFlags = 0x00000000
        dataSize      = 20
        dataPtr       =
    0000: 00646A65 6D706C61 6E672062 616E676B |^djemplang bangk|
    0010: 6F6E6700                            |ong^````````````|

    -- frame 2 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54504531
        v3ID          = TPE1
        v2ID          = TP1
        originalFlags = 0x00000000
        dataSize      = 16
        dataPtr       =
    0000: 00646564 65206B75 726E6961 73696800 |^dede kurniasih^|

    -- frame 3 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54434F4D
        v3ID          = TCOM
        v2ID          = TCM
        originalFlags = 0x00000000
        dataSize      = 16
        dataPtr       =
    0000: 00646564 65206B75 726E6961 73696800 |^dede kurniasih^|

    -- frame 4 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54414C42
        v3ID          = TALB
        v2ID          = TAL
        originalFlags = 0x00000000
        dataSize      = 19
        dataPtr       =
    0000: 00657863 61766174 65642073 68656C6C |^excavated shell|
    0010: 616300                              |ac^`````````````|

    -- frame 5 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54495431
        v3ID          = TIT1
        v2ID          = TT1
        originalFlags = 0x00000000
        dataSize      = 11
        dataPtr       =
    0000: 00696E64 6F6E6573 696100            |^indonesia^`````|

    -- frame 6 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54594552
        v3ID          = TYER
        v2ID          = TYE
        originalFlags = 0x00000000
        dataSize      = 6
        dataPtr       =
    0000: 00313934 3800                       |^1948^``````````|

    -- frame 7 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54434F4E
        v3ID          = TCON
        v2ID          = TCO
        originalFlags = 0x00000000
        dataSize      = 7
        dataPtr       =
    0000: 00617369 616E00                     |^asian^`````````|

    -- frame 8 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x434F4D4D
        v3ID          = COMM
        v2ID          = COM
        originalFlags = 0x00000000
        dataSize      = 93
        dataPtr       =
    0000: 00656E67 006C6162 656C3A65 78636176 |^eng^label:excav|
    0010: 61746564 20736865 6C6C6163 20206C61 |ated shellac  la|
    0020: 62656C3A 6E757361 6E746172 61202063 |bel:nusantara  c|
    0030: 6F756E74 72793A69 6E646F6E 65736961 |ountry:indonesia|
    0040: 20207375 6267656E 72653A37 38732020 |  subgenre:78s  |
    0050: 73756267 656E7265 3A6F6C64 00       |subgenre:old^```|

    -- frame 9 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x434F4D4D
        v3ID          = COMM
        v2ID          = COM
        originalFlags = 0x00000000
        dataSize      = 16
        dataPtr       =
    0000: 00656E67 6954756E 50474150 00300000 |^engiTunPGAP^0^^|

    -- frame 10 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x54454E43
        v3ID          = TENC
        v2ID          = TEN
        originalFlags = 0x00000000
        dataSize      = 15
        dataPtr       =
    0000: 00695475 6E657320 31302E36 2E3100   |^iTunes 10.6.1^`|

    -- frame 11 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x434F4D4D
        v3ID          = COMM
        v2ID          = COM
        originalFlags = 0x00000000
        dataSize      = 104
        dataPtr       =
    0000: 00656E67 6954756E 4E4F524D 00203030 |^engiTunNORM^ 00|
    0010: 30303230 33312030 30303030 30303020 |002031 00000000 |
    0020: 30303031 44434439 20303030 30303030 |0001DCD9 0000000|
    0030: 30203030 30304132 33452030 30303030 |0 0000A23E 00000|
    0040: 30303020 30303030 37464646 20303030 |000 00007FFF 000|
    0050: 30303030 30203030 30303531 33392030 |00000 00005139 0|
    0060: 30303030 30303000                   |0000000^````````|

    -- frame 12 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x434F4D4D
        v3ID          = COMM
        v2ID          = COM
        originalFlags = 0x00000000
        dataSize      = 130
        dataPtr       =
    0000: 00656E67 6954756E 534D5042 00203030 |^engiTunSMPB^ 00|
    0010: 30303030 30302030 30303030 32313020 |000000 00000210 |
    0020: 30303030 30423431 20303030 30303030 |00000B41 0000000|
    0030: 30303036 35454641 46203030 30303030 |00065EFAF 000000|
    0040: 30302030 30324533 30374420 30303030 |00 002E307D 0000|
    0050: 30303030 20303030 30303030 30203030 |0000 00000000 00|
    0060: 30303030 30302030 30303030 30303020 |000000 00000000 |
    0070: 30303030 30303030 20303030 30303030 |00000000 0
    -- frame 13 --
        flags         = 0x00000001
        category      = 0x00000000
        kind          = 0x41504943
        v3ID          = APIC
        v2ID          = PIC
        originalFlags = 0x00000000
        dataSize      = 605213
        dataPtr       =
    0000: 00504E47 00008950 4E470D0A 1A0A0000 |^PNG^^^PNG^^^^^^|
    0010: 000D4948 44520000 02580000 02510802 |^^IHDR^^^X^^^Q^^|
    0020: 00000016 0B5E4300 000A3169 43435049 |^^^^^^C^^^1iCCPI|
    0030: 43432050 726F6669 6C650000 48899D96 |CC Profile^^H^^^|
    0040: 775453D9 1687CFBD 37BD5092 108A94D0 |wTS^^^^^7^P^^^^^|
    0050: 6B685202 480DBD48 912E2A31 09104AC0 |khR^H^^H^.*1^^J^|
    0060: 90002236 44547044 5191A608 3228E080 |^^"6DTpDQ^^^2(^^|
    0070: A34391B1 228A8501 51B1EB04 1944D471 |^C^^"^^^Q^
--
nickharambee
User
 
Posts: 22
Joined: Sat Mar 05, 2011 4:42 am

Re: Reading 'Grouping' Tag from iTunes

Postby James Heinrich » Thu Apr 19, 2012 3:26 pm

If I understand you correctly, you're looking for the contents of the TT1 frame, which can be found in $data['id3v2']['TT1'][x]['data'], or in $data['tags']['id3v2']['description'][x]
Attachments
TT1.png
TT1.png (8.11 KiB) Viewed 1035 times
James Heinrich
getID3() v1 developer
 
Posts: 1203
Joined: Fri May 04, 2001 11:00 am
Location: London, ON, Canada

Re: Reading 'Grouping' Tag from iTunes

Postby nickharambee » Thu Apr 19, 2012 3:54 pm

I am wanting to use 'content_group_description' to read the Grouping Tag of my files, using this line in my PHP script:

$fileinfo[$read]['grouping']=$ThisFileInfo['comments_html']['content_group_description'][0];

It works fine with the original MP3 from iTunes, the 'OK' file, but not the file converted and exported by iTunes, the 'Not OK' file.
nickharambee
User
 
Posts: 22
Joined: Sat Mar 05, 2011 4:42 am

Re: Reading 'Grouping' Tag from iTunes

Postby James Heinrich » Fri Apr 20, 2012 7:36 am

The difference between the two files is the version of the ID3v2 tag: OK is ID3v2.4, not-OK is ID3v2.2, both of which are fine, except the field names are defined differently in each version: the content you're looking for is in the "TT2" field of not-OK, and "TIT2" field of OK.

Simple fix, which will be included in v1.9.4: around line 3200 of module.tag.id3v2.php, change "TT1<tab>description" to "TT1<tab>content_group_description" and then both files will have the data in the same place.
James Heinrich
getID3() v1 developer
 
Posts: 1203
Joined: Fri May 04, 2001 11:00 am
Location: London, ON, Canada

Re: Reading 'Grouping' Tag from iTunes

Postby nickharambee » Sat Apr 21, 2012 2:06 am

Thanks a lot James. That worked fine.

Nick
nickharambee
User
 
Posts: 22
Joined: Sat Mar 05, 2011 4:42 am


Return to Support 1.x (resolved)

Who is online

Users browsing this forum: No registered users and 0 guests

cron