O'Reilly logo

QuickTime for Java: A Developer's Notebook by Chris Adamson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Reading Information from iTunes AAC Files

If you read the last lab and thought about how ID3 metadata is imported into a QuickTime movie’s UserData, you might well expect that the same thing would be true of AAC files created by iTunes: .m4a files for songs “ripped” by the user and .m4p files sold by the iTunes Music Store. In fact, because these files use an MPEG-4 file format that is itself based on QuickTime, you might think that using the same user data scheme would be a slam dunk.

But...you’d be wrong.

These AAC files do put the metadata in the user data, but they do so in a way that resists straightforward retrieval via QuickTime. Fortunately, it’s not too hard to get the values out with some parsing.

Note

Buckle up, this one is rough.

How do I do that?

For once, theory needs to come before code—you need to see the format to understand how to parse it. Here’s a /usr/bin/hexdump of an iTunes Music Store AAC file from my collection, Toto Dies.m4p:

0000b010 00 3d 5f 3c 00 3d 7d 5e 00 3d 9a fb 00 03 18 da |.=_<.=}^.=......| 0000b020 75 64 74 61 00 03 18 d2 6d 65 74 61 00 00 00 00 |udta....meta....| 0000b030 00 00 00 22 68 64 6c 72 00 00 00 00 00 00 00 00 |..."hdlr........| 0000b040 6d 64 69 72 61 70 70 6c 00 00 00 00 00 00 00 00 |mdirappl........| 0000b050 00 00 00 03 11 9b 69 6c 73 74 00 00 00 21 a9 6e |......ilst...!.n| 0000b060 61 6d 00 00 00 19 64 61 74 61 00 00 00 01 00 00 |am....data......| 0000b070 00 00 54 6f 74 6f 20 44 69 65 73 00 00 00 24 a9 |..Toto Dies...$.| 0000b080 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required