How can I use ID3V2 to remove embedded artwork and add a link to artwork on my hard drive?

I want to organize my music library to include links to artwork but not embed same in the .mp3 file itself.

As the title implies, I want to use a command-line interface. With over 2000 tracks in my collection, I really don't have time for endless pointing and clicking. I want to set this up in a shell script and run it through all at once.

Which tag is embedded artwork contained in? Which tag contains a link to a file with artwork? Can the latter point to a file in the music directory, rather than to a web site?

What ID3V2 commands would I use specifically? (I've been using basic commands to manipulate the title and artist tags rather successfully.)

I don't need to use any automatic web-based art finders. I will find what I want myself.


There is no command line interface for this purpose.

Oh, well ...

I don't understand. MP3tag offers functions for direct manipulation and scripting functions. What could a ID3V2 command be?

Which player would support such a function? I do not know any (which does not mean that there is not.

What should the links look like? HTML? Winhelp? File system path?

You can export embedded covers with an action. See the help on actions

There is no tag-field for this and I don't know a player that shows a cover-file if it finds a link in a tag-field.
But most players are able to show a picture if they find a file in a directory called folder.jpg or sometimes cover.jpg.

@ohrenkino -- you mentioned an MP3tag scripting function. Could I create a script and run it through MP3tag, so I don't have to update songs one at a time?

I don't want to export the embedded covers; I want to delete them, and set up links to art of my own choosing (so I only need one of each picture).

I was thinking of using artist art rather than cover art. Most songs on my big computer are in /ddisk/m/main, so the link (file system path) would look something like ../art/Smokie.jpg .

If necessary I will WRITE a program to manipulate the .mp3 file itself. But I'm hoping I don't have to do that.


If you want to remove all embedded pictures,
simply load all files,
Press Alt-T to open the extended tags dialogue,
click on the red x next to the picture symbol
click OK.

TheID3 standard suggests a field called LINK that can be used to save links.
I do not think that MP3tag supports this field.
The ID3 standard actually recommends to use this field only for read only storages so that the link cannot be broken ...
THere is also a special MIME type that requires a URL: " There is the possibility to put only a link to the image file by using the 'MIME type' "-->" and having a complete URL instead of picture data. The use of linked files should however be used sparingly since there is the risk of separation of files."
I do not think that MP3tag supports this MIME type.

Yes, that is the purpose of actions.
See the help on actions:
See also the FAQs on actions:
Actions and batch-operations

@ohrenkino -- Thanks for the information on Alt-T/red x.

I was reading through the standard you referred me to and here's what I found:

(1) Find the character string ID3 in the audio file.

(2) Five bytes past that are some flags. Most important is the \0x40 flag, which indicates the presence of an extended header.

(3) In the next four bytes is the size information. It's a big endian binary number with the MSB of each byte skipped over (so it's a 28-bit number). This size indicates the aggregate length of the ID3 tag BEYOND this point.

(4) Then comes the optional 10-byte extended header. After this point the frames begin.

(5) I can add a new frame as follows: "APIC" followed by another size field, followed by \0x0000 (flags). The size field is the size of the frame AFTER the flags.

(6) Now comes \0x00, "-->", \0x00, \0x08, "Smokie", \0x00, "../art/Smokie.jpg", \0x00.

(7) Then just copy the rest of the file -- pre-existing tags and the music (can't forget THAT now, after all that work). And of course, increase the size in step (3) by the amount added to the file.

It should work (fingers crossed).

Thanks for the info.