# Mp3/id3 field for free keywords/tags

**URL:** <https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081>\
**Category:** Help\
**Created:** [April 26, 2022, 8:32am UTC](https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081 "2022-04-26T08:32:44Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![halloleo](https://avatars.discourse-cdn.com/v4/letter/h/ccd318/32.png) [@halloleo](https://discourse.beets.io/u/halloleo)\
**Post date:** [April 26, 2022, 8:32am UTC](https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081/1 "2022-04-26T08:32:44Z")

</div>

Hi! I’m not deep into mp3 metadata manipulation and have used beets only a little bit.

To my mp3s I would like to add a **keyword** field were I can assosiate some free keywords like ‘_listened-to_’, ‘_lively_’, ‘_dark_’ or similar.

Is this possible with beets? Does the id3 standard even allow for something like this?

Also, it would be great if I somehow could write a play coun to the mo3s, but that’s not as important.

Any pointers are much appreciated!

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [April 26, 2022, 4:10pm UTC](https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081/2 "2022-04-26T16:10:14Z")

</div>

The easy thing to do is to use this field within the beets database. Check out this guide to flexible attributes:  
[https://beets.readthedocs.io/en/stable/guides/advanced.html#store-any-data-you-like](https://beets.readthedocs.io/en/stable/guides/advanced.html#store-any-data-you-like)

To map these values to ID3 tags, that’s a bit harder but also possible. You’ll need to make a custom plugin that comes with a “tag mapping” for your flexible attribute:  
[https://beets.readthedocs.io/en/stable/dev/plugins.html#extend-mediafile](https://beets.readthedocs.io/en/stable/dev/plugins.html#extend-mediafile)

---

<div class="post-metadata">

**Author:** ![halloleo](https://avatars.discourse-cdn.com/v4/letter/h/ccd318/32.png) [@halloleo](https://discourse.beets.io/u/halloleo)\
**Post date:** [April 28, 2022, 8:53am UTC](https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081/3 "2022-04-28T08:53:00Z")

</div>

Cool. Thanks @adrian !

using flexible attributes looks reasonably easy: I can just issue

```
beet modify keywords='lively,listened-to' artist:"Susana Baca"

```

For the 2nd idea, to make this persistent in the media files, I need to implement a tag mapping, you say. Do I have to map my `keywords` tag to an _existing_ ID3 tag? Which one should I use?

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [April 28, 2022, 11:28am UTC](https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081/4 "2022-04-28T11:28:19Z")

</div>

You can use an existing one or invent a new “TXXX” field, which admits user-specified description strings, as in the example in the docs linked above.

---

<div class="post-metadata">

**Author:** ![halloleo](https://avatars.discourse-cdn.com/v4/letter/h/ccd318/32.png) [@halloleo](https://discourse.beets.io/u/halloleo)\
**Post date:** [May 1, 2022, 8:37am UTC](https://discourse.beets.io/t/mp3-id3-field-for-free-keywords-tags/2081/5 "2022-05-01T08:37:43Z")

</div>

Thanks. Will meep it in mind.

For the moment I’m just write my own attribute to beets database. 🙂
