Updating Information stored in an MP3 File

Category: visual studio vb


PreservationProgrammer on Mon, 14 Jul 2014 21:42:05

When I look at the Properties for an MP3 audio file, specifically the Details tab, there are sections of Property/Tag combinations that display.

I'm looking for a way to update this information in vb.net, perhaps using the FileSysytemObject class? I've poked around a bit but am not seeing anything that looks promising.

Please let me know if anyone knows of a way to accomplish this task.

Thank you, Herb



Mr. Monkeyboy on Tue, 15 Jul 2014 06:05:02

If you are refering to the extended properties that video and audio files seem to have which contain information such as their length in time or data rate or title, etc I have VB.Net code that can get that information.

I've just now found a possible way to alter that information. However it will be some time tomorrow before I can test the possibility of it working.

Then there's also the issue of, for a specific file type such as .MP3 or .Wav sound or .WMV video, whether a location provided information is used by that filetype. For example one .MP3 file may have a bunch of information in its extended attributes while another could have just a little bit. And without know which "index" (probably wrong terminology) of the files extended attributes to place specific information in then when that file is played by a program that displays the attribute information then maybe things will show up in the wrong place or not at all.

Such as the information displayed by Windows Media Player for a file being played when its properties were selected. Note in the images some fields are blank.

Mr. Monkeyboy on Wed, 16 Jul 2014 00:49:51

Currently I'm attempting to alter powershell script to vb.net code. Most of the script appears after a fashion as the vb.net code for retrieving audio and video file extended attributes. Then the powershell script goes on to alter specific attributes listed if the user chooses to do so.

However I have to set my computer, using powershell, to allow scripts to run unrestricted  in order to test the script and then restrict scripts from running to set the pc back to that.

The script stops running now because it doesn't  have access to the path and filename of the file to perform the operation on. Though the scripts writer advised that powershell would ask the user for that input. Also powershell has to be running in admin mode to set unrestricted and restricted for scripts.

So once I get the script working with powershell I will reverse engineer the part that sets attributes to vb.script. As there is information for changing vb.script to powershell script so obviously that process can be reversed. Then alter vb.script to vb.net. Then test the code.

It may take another day or maybe only a few hours for all I know.

So that's where it stands now.

I also found a Russian Website that has a C# or C++ .Dll that can be used for doing this. I downloaded that file but it's an executable and even though I virus scanned it it's not from a valid source so I'm not sure I want to run the .exe. But as a last resort I'll provide you with that link if necessary and you can try it if you want. :)

IronRazerz on Wed, 16 Jul 2014 01:48:04


 There are a few classes (dll files) that you can use to do this that are already made. You just need to add a reference to the dll files and perhaps import a NameSpace to use them in your project. Below are a few of them.

 This one from CodeProject is only for Id3v1 tags. It has the project that you can download or the code you can copy and build the class yourself. It also has a basic code example of how to use use it.

Reading and writing MP3 ID3v1 tags

 The following is another one on CodeProject that will edit Id3v1 and Id3v2 tags. It is in C# but, you can use some online C# to VB converters if needed to help convert the code.

Do Anything With ID3

 And here is an open source class called id3lib on sourceforge that will also edit Id3v1 and Id3v2 tags. It comes with a Com wrapper (id3com) which allows it to be used in VB which is explained in the Features section at the link.