APEv1 specification

From Hydrogenaudio Knowledgebase

This is how information is laid out in an APEv1 tag:

The only difference between APEv1 and APEv2 is that APEv1 has no header. Therefore, it is strongly recommended that developers adopt v2 instead of v1 as standard tagging system for their formats.

APE Tag Item 1 10.. bytes
APE Tag Item 2 10.. bytes
... 10.. bytes
APE Tag Item n-1 10.. bytes
APE Tag Item n 10.. bytes
APE Tags Footer 32 bytes

APE tag items should be sorted ascending by size. When streaming, parts of the APE tags can be dropped to reduce danger of drop outs between titles. This is not a must, but strongly recommended. Actually the items should be sorted by importance/byte, but this is not feasible. Only break this rule if you add less important small items and you don't want to rewrite the whole tag. An APEv1 tag at the end of a file must have at least a footer, APEv1 tags may never be used at the beginning of a file (unlike APEv2 tags). When located at the end of an MP3 file, an APE tag should be placed after the the last frame, just before the ID3v1 tag (if any).