How to batch embed WMP / WinExplorer cover art in MP3?

I think this is a rare question because my all day searching found very little about it.

I've been using MP3 files for many years -- mp3tag no so much. I didn't like mp3tag until I figured out how it works. Now I love it! So I'm cleaning up my library and am trying to make it work well with VLC for Android. The cover art is the problem.

Because I've used WMP and Groove for a long time, they have downloaded and somehow attached art to my mp3 files. This art is not embedded. Microsoft is using some oddball hidden method to correlate jpg files it downloaded into my music folders with the mp3 files. This of course doesn't work with VLC, but it works in Windows Explorer and Windows players.

For the most part I am happy with the art Microsoft found. I would like to keep it on a per track basis. So what I would like to do is embed all of the art Microsoft found into the corresponding mp3 files. There are thousands so a batch method is needed. Then for the tracks that don't have embedded art, I can use MP3TAG to add art. I don't need help with that. I know how to do that.

I tried many tools, and none of them can discover the art Microsoft is using. Is there a way to do this in an automated way? All I found are drag and drop methods.

Any ideas?

In your file,Explorer, go into the settings, and enable the hidden system files. You will then be able to see the jpg images that WMP has placed in each album folder. You will see both a larger and smaller file, you can use either and embed these if you want.

Right, thanks for your suggestion. I enabled hidden and system files in my explorer many decades ago, and can always see everything. This approach leads me to a drag and drop method that I mentioned. It also requires that I figure out which picture goes with which mp3 file. That's not too terribly difficult because I can do that with visual matching. But there are thousands of files. That's the hard part.

You can run the action Import Cover from File. If each cover is stored in a folder structure that is consistently defined using the fields from your metadata,you can use these In the format string. For example you could use something like this;
%albumartist%\%album%\largecover.jog

Unfortunately, no. Windows uses some internal magic to associate art files with their corresponding mp3 file. The file names are random. For example, an mp3 file for a song has this corresponding art file, "AlbumArt_{B5020207-474E-4720-B165-332E743FFA00}_Large.jpg". So I can tell which jpg file goes with which mp3 by looking at their thumbnails. I can't find anything anywhere that links those two together. That's exactly what I'm hoping to find.

Foobar2000 has a feature of reading album art from various parts of a file, even its icon. I was hoping that's where the corresponding jpg file's name was, but no cigar. These mp3 files have no info about their cover art.

So to embed Windows thumbnail art in an mp3 file, I need to find the path to the corresponding thumbnail. Does anyone know how to do that?

This is a real puzzler. I can also see a 200x200 versions of these jpg files in the "C:\Users\my_user_name\AppData\Local\Microsoft\Media Player\Art Cache\LocalMLS" folder. Again there's nothing there that ties the jpg to an mp3. And these files have seemingly unrelated file names.

The action "Import Cover from File" allows wildcards.
Maybe you can use %_folderpath%*.jpg for the format string of the image path.

This is only stored in the WMP database.

But then, I bet, you need a separate folder for each file that should get a different picture.
Otherwise all files in the same folder get the same picture.

indicates that you have several different covers for files in the same folder - if you don't know how to relate the pictures to the files - how is MP3tag supposed to do it?

To reduce the number of files that you have to treat:
Try the filter
%_covers% MISSING
which should show all the files where there is no embedded picture.
The select all the files that should get the same picture and right-click on the cover area of the tag panel where you can add a picture with the help of the file browser. - or use drag&drop from the WE.
Still, I would not rely on the already existing picture files. The have usually the dimensions of just 200x200 which is not really nice to look at on higher resolution screens.
So, you probably have to start from scratch.

Yes, there are many, many different jpg files in the same folder. Each one corresponds to one (or maybe more) mp3 file. I'm not blaming mp3tag, it's a phenomenal tool and I love it. I was hoping someone here might know how WE knows which file goes with which mp3. If I knew that I could possibly write a script to pull out the file name and feed it to mp3tag to do the import.

I think this is the same as including the "Cover" column in the display view. I have used this feature before to select only the mp3's without embedded art. The problem is that none of these files have embedded art. This is what I'm trying to fix by imbedding the corresponding WE/WMP art image. I am trying to add cover to files that don't have WMP covers. And I'm trying to embed the WMP art into the mp3 tracks where available.

I realize mp3tag doesn't do this. But this is the most knowledgeable community about mp3 tags, and I'm hoping someone here knows how Windows figures out which thumbnails to use for media files. (FYI, there are no thumbs.db files in these folders.)

There was once a program called AlbumArtFixer which checked files known to WMP and see if they had any cover.
Perhaps that program helps you to embed the pictures - which, I think, had an option to embed the pictures as well ...
I haven't used it for years, so ... no guarantee here.

Use a wildcard like *_Large.jpg and maybe that will get a good portion of them?

I don't see how that will import the correct cover in the mp3 file. Wouldn't that import many covers into each mp3 file?

Tie all of these suggestions together. So something like this.
%albumartist%\%album%\*_Large.jpg

If each file you have selected pulls this image from the folder indicated by their tags, this should do the trick. Of course you may have to change the folder tags to suit your structure. But this is just guidance that you can use in your own scenario.

It would import the first picture files that fits the pattern.

I thought, you had several picture files with _large.jpg in 1 folder and they all look different?
If you have each album in a separate folder and also the corresponding pictures, then it should be easy to use an action of the type "Import cover" with
Format string: folder.jpg
or
Format string: *large*.jpg

Thank you all very much for helping. I found a different way to skin the cat, and am writing a summary right now. The reason that these last suggestions won't work is because how a part of my library consists of custom compilations, many of which I received from friends, and I want to keep them together. The bulk of my library is organized exactly as you say, Artist/Album/, and the tools in MP3TAG were great for organizing those.

But some of my library are custom compilations organized like "Various Artists"/<custom_compilation_name>/. This is where MP3 files are a jumbled collection of sources. I haven't found tools that can help organize that. MP3TAG is the best and can do most of what I need. WMP over time filled in some art, and changed my Album tags. I want the album tags to be my custom compilation name and that's easy enough to fix, but the art is not embedded and can't be fixed. But I found a way to do this. It lets me keep my collections together and adds original art for each MP3 in the collection. More soon...

That was a promising suggestion. I tried to install AlbumArtFixer, but it requires .NET 1.1 which I couldn't find easily. This program hasn't been touched in over 8 years, and looks like a dead end.

These are the cases you will have to deal with manually. But is does seem to me that you already have a consistent file structure
Various Artists/<custom_compilation_name>/
That should be able to work.