This software library enables ID3v1 and ID3v2 tagging for music files. It allows users to organize their music collections with proper metadata and supports different types of data such as album covers, lyrics, and artist info.

The component comes with numerous features such as loading of ID3v1, Lyrics3v2, ID3v2.2, ID3v2.3, and ID3v2.4 tags as well as saving of ID3v1, Lyrics3v2, ID3v2.3, and ID3v2.4 tags. Additionally, it includes iTunes compatible reading-writing for WAV (including RF64) and AIFF/AIFC ID3v2 tags, support of DSD .dsf and .dff audio files, Pure Delphi code with no external dependencies, unsynchronization and compression/decompression of frames, and access directly to all frames as a TMemoryStream with full control of the frame contents.
Moreover, the ID3v2 Library provides full Unicode support and compatibility with Delphi XE2 64bit and OSX as well as Delphi XE5 iOS and Android. It is also Lazarus/Free Pascal compatible, and with its Cross-platform FireMonkey example, developers can easily incorporate the library into their software.
Lastly, the ID3v2 Library supports Unicode file names and tags with formats read including ASCII format ISO-8859-1, UTF-16 with BOM, UTF-16BE without BOM, and UTF-8. Overall, the ID3v2 Library is a powerful component for support of ID3v1, Lyrics3v2, and ID3v2.3, ID3v2.4 tags designed to meet the needs of developers building audio and music software across multiple platforms.
Version 2.0.69.174: Speed-up with buffered streams when loading/saving much data.
Version 2.0.68.172: Added average bit rate reporting for VBR MPEG files.
Version 2.0.67.171: Added complete parsing of 'Xing' and 'Info' MPEG headers and playtime and sample count calculation should be more precise when the above headers exist in the file.
Version 2.0.63.159: Fixes and improvements.
Version 2.0.62.158: Fixed Lazarus/FPC compatibility.
Version 2.0.61.157: Fixed ID3v1 Lyrics tag size.
Version 2.0.60.156: Fixed possible floating point division by zero for playtime.
Version 2.0.59.155: Fixed, added sanity check for DeleteFrame() so now should be compatible with previous implementations.
Version 2.0.58.154: Fixed writing 'DataLengthIndicator' for compressed frames, changed 'Frames' array to a TList class, added ReIndexAllFrames() method and removed InsertFrame() function, use Frames.Move() and then call ReIndexAllFrames() method.
Version 2.0.57.151: Fixed saving tags on NEXTGEN when the destination file needs to be re-created.