# How to get a list of all current tags from a mp3 file?

**URL:** https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535
**Category:** Support
**Created:** [February 27, 2007, 7:26pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535 "2007-02-27T19:26:23Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [February 27, 2007, 7:26pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/1 "2007-02-27T19:26:23Z")

</div>

How to get a list of all current tags from a mp3 file?

Does someone know a possibility in Mp3tag to get a report of **all tag contents** out of a mp3 file regardless of their names (complete tag dump)?  
This output what 'extended tags' displays but redirected by script export into a file?  
Is there any way to use wildcards to select a group of tags e.g. all tags looking like 'A\*'?

Kennt jemand eine Möglichkeit in Mp3tag, mittels Exportskript **alle Taginhalte** aus einer mp3 Datei auszugeben ungeachtet ihrer Namen (kompletter tag dump)?  
Also das was 'Erweiterte Tags' anzeigt mittels Exportskript in eine Datei ausgeben?  
Gibt es so etwas wie einen Joker, z.B. für eine Liste aller Taginhalte, die mit 'A' beginnen ('A\*')?

DD.20070227.2125

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [February 28, 2007, 12:41pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/2 "2007-02-28T12:41:06Z")

</div>

> [@DetlevD](#):
>
> How to get a list of all current tags from a mp3 file?
> 
> Does someone know a possibility in Mp3tag to get a report of **all tag contents** out of a mp3 file regardless of their names (complete tag dump)?  
> This output what 'extended tags' displays but redirected by script export into a file?  
> Is there any way to use wildcards to select a group of tags e.g. all tags looking like 'A\*'?
> 
> DD.20070227.2125

[I've asked for this in the past](https://community.mp3tag.de/t/1853/6), I'd still like to see it implemented.

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [March 3, 2007, 11:44am UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/3 "2007-03-03T11:44:33Z")

</div>

You can try the undocumented scripting function $list:  
$list(,: ,$char(10))

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [March 3, 2007, 1:11pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/4 "2007-03-03T13:11:07Z")

</div>

> [@Florian](#):
>
> You can try the undocumented scripting function $list: $list(,: ,$char(10))

```
$filename(Mp3tag.tagdump.col.txt,ANSI)$list(%%,%%: '',''$char(13)$char(10))

$filename(Mp3tag.tagdump.row.txt,ANSI)$list(%%,%%:'',''|)

```

Florian, das sieht ja schon recht vielversprechend aus!  
Wenn du jetzt nur noch ein anderes Zeichen als Platzhalter erfindest - eben nicht das Komma (!) - dann könnte man vielleicht die Ausgabe sogar noch ansehnlich in Spalten formatieren.

DD.20070303.1510

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [March 3, 2007, 5:34pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/5 "2007-03-03T17:34:16Z")

</div>

It would be great if we can stick to English in the international forums.

Can you please explain your problem with the comma separator? What output format do you want to achieve?

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [March 3, 2007, 5:46pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/6 "2007-03-03T17:46:34Z")

</div>

> [@Florian](#):
>
> You can try the undocumented scripting function $list:
> 
> ```
> $list(,: ,$char(10))
> 
> ```

 

Florian -

 

I tested your example and it worked perfectly.

 

This is just what I was looking for, thanks!

 

_(I don't suppose there are any other 'undocumented' functions out there, are there?)_

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [March 3, 2007, 6:31pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/7 "2007-03-03T18:31:41Z")

</div>

> [@Florian](#):
>
> It would be great if we can stick to English in the international forums. Can you please explain your problem with the comma separator? What output format do you want to achieve?

Ok, back to english language.  
In the expression **$list(,,)** the comma character has in fact not the meaning of a separator but it is really a placeholder.  
The first comma is replaced by tag name and the second comma is replaced by tag value.  
The function only works when there are coded two comma characters, no one less, no one more.  
It seems so that you replace the comma placeholders by your internal processing with the actually contents.

Belonging to the underlying context of your script language this is totally weird functionality.

Concrete example: Output of tagvalue is wanted to be limited to 10 characters ...  
**$list(,$left(,,10))**  
... this does not work, because there are three comma characters in the expression,  
and no one can imagine what exception would be thrown when using such an expression at other places in Mp3tag.

Or look at this wild thing, that gives really readable output: **$list(,$left,(10))**

So what can we do to get something of a tagdump function seamlessly integrated into the global Mp3tag context?

I think it should simply read like 'foreach tag do' ...

**$loop(%\_tag\_mask%)  
TagName: %\_tag\_name%  
TagValue: %\_tag\_value%**

 **$loopend()**

... with limitation for the case, if %\_tag\_value% contains binary data, then output should be suppressed or replaced by a special symbol [#BINDATA#] or something else,  
... with ability to set %\_tag\_mask% to something like 'ARTIST\*', so it should be a function $SetTagMask('ARTIST\*').

**$loop($SetTagMask('ARTIST\*'))  
TagName: %\_tag\_name%  
TagValue: %\_tag\_value%**

 **$loopend()**

DD.20070303.2030

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [March 3, 2007, 6:36pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/8 "2007-03-03T18:36:08Z")

</div>

The syntax of the $list function is

$list(, , )

So there is no weird replacing of commas. But you're right: you can't apply scripting functions to the various field names and values (and this won't be possible in future versions of Mp3tag).

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [March 3, 2007, 6:51pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/9 "2007-03-03T18:51:11Z")

</div>

> [@Florian](#):
>
> The syntax of the $list function is
> 
> $list(, , )
> 
> So there is no weird replacing of commas. But you're right: you can't apply scripting functions to the various field names and values (and this won't be possible in future versions of Mp3tag).

Ooohh yesss, my analysis and thoughts were totally weird ...

DD.20070303.2051

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [March 4, 2007, 9:42pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/10 "2007-03-04T21:42:14Z")

</div>

Well, I reply to myself, got this so far ...

Mp3tag Tag Dump Row

```
$filename(Mp3tag.tagdump.row.txt,ANSI)$loop(%_path%)^|_MD5AUDIO:''%_md5audio%''|_MD5:''%_md5%''|_PATH:''%_path%''|$regexp($list(,:'',''|),\r\n,U+000DU+000A)$$$char(13)$char(10)$loopend()

```

Mp3tag Tag Dump Col

```
$filename(Mp3tag.tagdump.col.txt,ANSI)$loop(%_path%)^
_MD5AUDIO:''%_md5audio%''
_MD5:''%_md5%''
_PATH:''%_path%''
$regexp($regexp($list(,:'',''$char(13)_$char(10)),\r\n,U+000DU+000A),\r_\n,\r\n)$$

$loopend()

```

... first steps to support development of a handy backup/restore environment for Mp3tag?

DD.20070304.2342

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [March 4, 2007, 10:03pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/11 "2007-03-04T22:03:06Z")

</div>

backup/restore, save tags off when transcoding, export file for a db.... Possibilities are endless

---

<div class="post-metadata">

### Author: ![Ydope](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/y/6f9a4e/32.png) [@Ydope](https://community.mp3tag.de/u/Ydope)
#### Post date: [March 5, 2007, 3:09pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/12 "2007-03-05T15:09:25Z")

</div>

Sorry for going off-topic, but does md5audio do what i would expect: to give a checksum just for the audio part of an mp3, meaning that I can change tags without the md5 changing?

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [March 5, 2007, 3:29pm UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/13 "2007-03-05T15:29:30Z")

</div>

Yes , I think so.  
The md5audio hash is the checksum referring only to the audio stream part of the mp3 file.  
The md5 hash is the checksum overall of mp3 file including tags.

It think it should be possible to detect stream duplicates by their identically md5audio checksum (having a totally clean unchanged identical mp3 stream in both files which are compared).  
Please try it out for yourself and share the result with us.

DD.20070305.1729

---

<div class="post-metadata">

### Author: ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)
#### Post date: [November 10, 2025, 10:58am UTC](https://community.mp3tag.de/t/how-to-get-a-list-of-all-current-tags-from-a-mp3-file/4535/14 "2025-11-10T10:58:00Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
