Plugins

ID3 Locator supports add-ins that can be used to enhance its functionality in reading and writing music tags from files other than MP3 and WMA and in searching the internet using sites other than AllMusic.com, and Amazon.com.

Music Tags – Different music file formats use different tags. For example the MP3 format uses ID3v1 and ID3v2 and WMA uses a proprietary tag format. Other formats such as Ogg Vorbis are not natively supported by ID3 Locator, but support can easily be added by submitting a add-in.

Internet Search – There are a lot of music information sites out there besides  AllMusic.com and Amazon.com. Any of them can be supported if you submit a add-in for them.

 

Music Tag Add-In Specification

Filename: Anything you want, as long as it is .exe.

Path: must be placed in the “addin\ff” subfolder of the ID3 Locator install directory.

Command-line arguments: myaddin.exe [ -r  -w  |  -s  | -i  ]

-r
This argument cannot be used in conjunction with -w, or -s. When the add-in receives this argument it must read the file “musicfiles.xml” in the install directory and find all the tags for files of its type that do not already have a tag listed (this is a speed issue more than anything, since reading from 1000 files when only 200 don’t have a tag already is a big waste of time). When it reads the tags from the music files it must place them into the XML file. More on the XML data structure below.

-w
This argument may not be used in conjunction with -r or -s. The argument -w specifies that the program is to write tags from “musicfiles.xml” to the music files themselves. Your program must read the writetag field to determine whether to write the tag.

Example

myaddin.exe -w
This line should cause your program parse “musicfiles.xml” and write to the files that match your program’s extension and where the writetag field is true. If the writetag field is not there your program must treat it as if it is false.

-s
This argument may not be used in conjunction with the others. When the add-in receives this argument it must show a settings dialog. An example of a setting to use is whether to write ID3v1, ID3v2 or both tags when writing to music files. If your add-in does not have any settings then it should show an about box (for those who don’t want to bother creating a window just use a message box).

-i
This argument may not be used in conjunction with the others. When the add-in receives this argument it must write the information about itself to the file “ffaddin.xml” <more on this later>

XML “musicfiles.xml” data structure

Before reading:

<musicfile>
<path>C:\Music\Sting – Fragile.mp3</path>
<Artist></Artist>
<Album></Album>
<Title></Title>
<Genre></Genre>
<Year></Year>
<Track></Track>
<readtag>true</readtag>
<writetag>false</writetag>
<searchtag>false</searchtag>
</musicfile>

After reading:

<musicfile>
<path>C:\Music\Sting – Fragile.mp3</path>
<Artist>Sting</Artist>
<Album>All This Time</Album>
<Title>Fragile</Title>
<Genre>Adult Alternative Pop/Rock</Genre>
<Year>2001</Year>
<Track>1</Track>
<readtag>false</readtag>
<writetag>false</writetag>
<searchtag>false</searchtag>
</musicfile>

I think this is pretty self-explanatory. There are a bunch of these structures in the file, usually without any of the information there except the path. Your program looks at the path, checks if it’s the right file type, if it is it will do it’s job on that file, be that reading or writing.