How can I export the Extended Tags (Alt+T) info ?

Hi. What I like most about MP3TAG is the ability to display any given tag when hitting alt+T ("extended tags"). I made up custom tag fields with random names in a third party program, imported the songs to mp3tag and it was able to display all of them correctly.

Now, what can I do to export all this information shown in the pop-up window ? I can neither copy the text to the clipboard nor saving the info to a file with the export function, since the export function exports only a very limited set of data - which, of course, can be extended, but the problem obviously is that tag fiels have to be defined explicitely beforehand within the export options, but I would like to export any given tag field, including custom fields, much like the extended tags work when displaying the tags ... you don't have to tell the "extended tags" function which tag fields it should display ... it displays all existing tag fields it can "see" ...

So how can I get the data out of the alt+t window and into ... somewhere else ??

I have a ScreeOCR app, but that's kind of a Schildbürger way ... :wink:

PS: Is there any way of exporting id3v1 and v2 data separately ?

Try this:
Backup and restore



It would be good if this function was mentioned in the docs rather than being kept secret!

thanks a lot for your support! I'll have a look into it and get back to you.

Sorry, had to attend to some real life troubles beforehand ....

Thanks a lot for helping me!
I tried what's suggested on that link. It pretty much works out, I'm very relieved! I used the the function $list(,==, ) which results in :
BAND==Bullyrag TITLE==Learn to Live ARTIST==Bullyrag TRACK==2/10 ..... (...continues )

The only thing I couldn't figure out yet is what to put after the second comma in order to generate a linebreak. I tried $regexp(\r\n) within the $list function and outside, but it didn't work.
I'd be very grateful if somebody can help me out here.

Besides, when following the above mentioned link I tried the code for "Export Mp3tag Tag Dump Col.mte" and the output doesn't seem to be correct, does it? Shouldn't the U+000D unicode characters be converted somehow ?
Here is the output that was generated:

_PATH:'D:\temp3\07 - frantic (Bullyrag).mp3'
ALBUM:'Songs of Praise'U+000D_U+000AARTIST:'Bullyrag'U+000D_U+000ABAND:'Bullyrag'U+000D_U+000ACOMMENT:'By EL Papy'U+000D_U+000AENCODEDBY:'Exact Audio Copy   (Mode Sécurisé)'U+000D_U+000AGENRE:'Fusion'U+000D_U+000ATITLE:'Frantic'U+000D_U+000ATRACK:'7/10'U+000D_U
+000AALBUMARTISTSORT:'Bullyrag'U+000D_U+000AMusicBrainz Album Artist Id:'48a38540-2649-4202-a37f-8de45813c496'U+000D_U+000AMusicBrainz Album Id:'3f79e58a-bfc7-49d4-848c-54e0e68e4326'U+000D_U+000AMusicBrainz Album Release Country:'US'U+000D_U+000AMusicBrainz Album Status:'official'U+000D_U+000AMusicBrainz Album Type:'album'U+000D_U+000AMusicBrainz Artist Id:'48a38540-2649-4202-a37f-8de45813c496'U+000D_U+000A$

Try $char(13)$char(10) to get a linebreak.

Yes. See Example:

UNSYNCEDLYRICS:'eng||I search for phrasesU+000DU+000ATo sing your praisesU+000DU+000ABut there aren't any magic adjectivesU+000DU+000ATo tell you all you areU+000DU+000AU+000DU+000AYou're just too marvelousU+000DU+000AToo marvelous for wordsU+000DU+000ALike glorious, glamorousU+000DU+000AAnd that old standby amorousU+000DU+000AIt's all too wonderfulU+000DU+000AI'll never find the wordsU+000DU+000AThat say enough, tell enoughU+000DU+000AI mean they just aren't swell enoughU+000DU+000AU+000DU+000AYou're much too muchU+000DU+000AAnd just to very, very --U+000DU+000ATo ever beU+000DU+000AIn Webster's dictionaryU+000DU+000AAnd so I'm borrowingU+000DU+000AA love song from the birdsU+000DU+000ATo tell you that you're marvelousU+000DU+000AToo marvelous for words'

Each Sequence of "U+000DU+000A" stands for a CR-LF-sequence.
After importing the contents into a tagfield you have to replace the "U+...." placeholder sequences with CR-LF-sequences, e. g. using an action Tagfield Format ...


... to make the linebreaks within this tagfield visible to the user.


@Florian + DetlevD:

Thanks a ton for your support. The linebreak works. I'm really happy, because I've been looking around for quite some time now and until I discovered MP3TAG I didn't find any program with such a flexible export function.

I'm all new to the program, and I'm trying to find the info on my own as well, but there 3 points, where I'm stuck:

(1) That's actually the only really important one: $list exports - at least I hope it does - all the tag fields, no matter if it's a common tag field name or if it's a custom tag field with an entirely random name. So far so good. But I would need to export all fields of ALL TAGS, but $list apparently exports only one tag (with APEv2 and id3v2 taking precedence over id3v1 for example). I would need to do this in one run and - preferably - export everything to the same file. Is there a way to export all tags ? (2) Ok, the second point really is not important, if you don't happen to know it anyway, just don't bother with it. I was just curious if there were a "padding function" for letters (much like $num(x,y) for digits) ?

I would like to arrange the $list output ....

... like this: GENRE == Fusion

             ENCODEDBY == Exact Audio Copy (Mode Sécurisé)
       ALBUMARTISTSORT == Bullyrag
MusicBrainz Album Type == album
(3) And talking about $functions .... Where can I find information about the scripting functions available in MP3TAG? I only found but $num and other functions I've seen in the forum are not mentioned there ... (4) Ok, so actually, it's 4 points .... :stuck_out_tongue: ...

I'm still a bit confused about this U+000D stuff .... I mean, you took lyrics as an example, it's normal that there are linebreaks inside the field, because it's a multiline field, but as for the other fields .... ? And when you say "After importing the contents into a tagfield", do you mean importing via Convert/Text File->Tag (alt+F4) ? And so does your code ... $replace(%tagfield%,U+000DU+000A,$char(13)$char(10)) ... go into the alt+F4-import-dialog-window or should it rather be part of the .mte file you posted here ? And I couldn't find %tagfield% in the linke I posted in (3) .... ? And what is an "action Tagfield Format" ...? I'm sorry if all of these might be stupid questions, I'm just not yet quite familiar with all of that ...
And thanks again, the info you gave me already has helped me a great deal so far !

PS: .... hm, as for the "action tagfield format" ... I think I've found that in the FAQ, it's "convert>>actions (alt+F5)" right? I think I still have a long way to study in front of me ...

  1. No.

  2. E.g. $repeat(.,$sub(45,$len(%genre%)))

  3. If you look at the top of options_export.html you should see a link "Built in scripting commands"

  4. The export script of DetlevD replaces all line breaks when exporting with the string "U+000D..." to remember that there are line breaks in a tag field. If the real lb were exported, the tag import feature "text file - tag" could not be used because it needs the information to be in 1 line per file.
    If you don't need tag import of this export, then you must change the mte to stop the replacement of line breaks.
    After you have used "text file - tag" you can convert these lb markers back to real lb in the tag with an action "Format value" (that's the correct name) available at Convert > Actions.
    %tagfield% is just an example, replace it with your needed tag field.

Thanks a lot for your comments. Everything is much clearer for me now. I'll comment on the other points later on ...

.... in the meanwhile, for point (1), as this is most important for me :

At the moment, I use $filename(all_tag_fields.txt,ANSI)$loop(%_path%)

$list(, == ,$char(13)$char(10))


This gives me ALL the fields for ONE tag. So at the moment, when I have for ex. a .mp3 file with id3v1 + id3v2 + APEv2 tag, I do an export, than go to options and change the preference as to which tags should be displayed, than export the 2nd tag, change the options again, export the 3rd tag and finally change the options back to what they were before. When exporting, I choose append, so finally I end up with having what I want : all the fields of all the tags in one text file. But it's quite cumbersome, especially for many files. Is this the best I can do, or am I missing something maybe ?

Well done, it sounds to me like the most practical way for now.


Florian, dano, chrisjj, DetlevD ... thank you, you were such a wonderful help to me. Everything works now.

You Can select multiple files & Then Export Tags. just saying coz u said u appended the info.
BTW it was useful Thanks to all!!

Edit: I just have one problem using this, the UNSYNCEDLRYCS field is multiline & I was just wondering could every line be after the == sign??

Can Anyone answer This Question???

The question of the open poster 'chrizoo' has been answered in full depth already at July 16 2011, 16:02.
Your added question seems to be a new case.
Please open a new thread and elaborate what you want to achieve.


have you tried it with the mentioned scripts?

Yes, I tried the last script mentioned in this thread. I was trying to use the data I exported to a excel table, & the Question I asked was the first problem i faced.

What script exactly?

This thread and also the linked threads contain much information how to handle carriage return - linefeed sequences (CRLF) within a tag-field, to circumvent problems, when using the $list() function with tag-fields having multiline content.

Please elaborate, what you want to achieve in relation to the topic of this thread.