# New plugin ready: selectivetagging

**URL:** <https://discourse.beets.io/t/new-plugin-ready-selectivetagging/512>\
**Category:** Help\
**Created:** [November 2, 2018, 6:37pm UTC](https://discourse.beets.io/t/new-plugin-ready-selectivetagging/512 "2018-11-02T18:37:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mattbarnicle](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/mattbarnicle/32/166_2.png) [@mattbarnicle](https://discourse.beets.io/u/mattbarnicle)\
**Post date:** [November 2, 2018, 6:37pm UTC](https://discourse.beets.io/t/new-plugin-ready-selectivetagging/512/1 "2018-11-02T18:37:32Z")

</div>

i’ve just finished up a rough working version of a plugin that allows you to selectively choose which tags to over-write (based on your existing ID3 tag metadata) on import. it’s a little rough around the edges but so far it’s working well for me. the github repo is here:

> **[mattbarnicle/beetsplug](https://github.com/mattbarnicle/beetsplug)**
>
> Various plugins for beets media organizer. Contribute to mattbarnicle/beetsplug development by creating an account on GitHub.

currently there are no command-line options, so you have to set it up using the config file. there are example configs for all options in the `config_examples` folder. here are a couple usage examples:

```
# example: only allow empty tags to be overwritten
selectivetagging:
  only_empty_tags: yes

# example: only allow whitelisted tags to be overwritten
selectivetagging:
  whitelist_tags: artist album year label title

# example: do not allow blacklisted tags to be overwritten
selectivetagging:
  blacklist_tags: genre year

```

note that you can also combine `only_empty_tags` with either `whitelist_tags` or `blacklist_tags` to get the exact combination you want.

i had some trouble getting the code to work with singletons, so this plugin won’t work on singletons currently. would appreciate getting some advice on that if someone can help. i have read all the docs and tried several coding variations to no avail.

also i don’t understand how to enable the config options on the command-line during the import process. would appreciate advice on that also. i have read all the docs on this too.

i hope people get some good use out of this. and let me know if you have any suggestions for improvement or additions to the config options.

---

<div class="post-metadata">

**Author:** ![mattbarnicle](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/mattbarnicle/32/166_2.png) [@mattbarnicle](https://discourse.beets.io/u/mattbarnicle)\
**Post date:** [November 2, 2018, 6:45pm UTC](https://discourse.beets.io/t/new-plugin-ready-selectivetagging/512/2 "2018-11-02T18:45:20Z")

</div>

for your consideration: @burkhard @firewater @dudido @unnilennium

---

<div class="post-metadata">

**Author:** ![dorade](https://avatars.discourse-cdn.com/v4/letter/d/b3f665/32.png) [@dorade](https://discourse.beets.io/u/dorade)\
**Post date:** [November 2, 2018, 7:32pm UTC](https://discourse.beets.io/t/new-plugin-ready-selectivetagging/512/3 "2018-11-02T19:32:32Z")

</div>

Thanks, Matt. Flexibility is always good, though I can hardly see how selective tagging may be useful to me. My main use for beets is to enforce uniformity MusicBrainz-style.

---

<div class="post-metadata">

**Author:** ![mattbarnicle](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/mattbarnicle/32/166_2.png) [@mattbarnicle](https://discourse.beets.io/u/mattbarnicle)\
**Post date:** [November 3, 2018, 6:21pm UTC](https://discourse.beets.io/t/new-plugin-ready-selectivetagging/512/5 "2018-11-03T18:21:44Z")

</div>

@xyuusha this wasn’t the exact scenario you described in post [Field overriding](https://discourse.beets.io/t/field-overriding/280) but i think it will solve your particular problem
