winzip icon

Classes for Reading ID3 and WMA Tags

Submitted on: 1/5/2015 2:13:00 PM
By: Herbert N Swearengen III (from psc cd)  
Level: Intermediate
User Rating: By 5 Users
Compatibility: VB.NET
Views: 7233
     Here are a set of classes for extracting most of the common information, including pictures, from both MP3 ID3 tags and WMA tags. There is also a class to read MP3 file properties and there is a demo program show how to use the classes. These classes are read-only: you can't change any of the properties. The WMA class was derived from a C# console application included in the Windows Media Format SDK. I translated the code to VB and created a class with properties from the example. I added the ability to extract the picture as an image you can display in a picture box. The ID3 tag reader was written from scratch. It supports ID3V1.0/1.1 or ID3V2.3/2.4. ID3V2.2 is NOT supported--the tags are totally different from 2.3 and 2.4 and this version seems unsupported on The reason I wrote this from scratch was that none of the simpler examples I found worked with modern tags. ID32.3 and ID3V2.4 allow for ANSI, UTF-8, UTF-16BE or UTF-16LE encoding within any frame. Some of the tags on my music files have ANSI encoding for some properties and UTF-16LE for others! My class properly reads the text encoding bytes and decodes each frame properly. The frame size is also calculated for each frame because, for some encoding methods, there is no trailing zero for strings!

winzip iconDownload code

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
  1. Re-scan downloaded files using your personal virus checker before using it.
  2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.

If you don't have a virus scanner, you can get one at many places on the net

Other 21 submission(s) by this author


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Intermediate category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)

Other User Comments

8/3/2016 12:13:25 AMAndrew(New Zealand)

Thanks Herbert, I might find this useful.
(If this comment was disrespectful, please report it.)


Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)

To post feedback, first please login.