# Extrafiles vs. copyartifacts plugin or something else for lyrics?

**URL:** <https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171>\
**Category:** Help\
**Created:** [October 1, 2022, 1:16pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171 "2022-10-01T13:16:59Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Casual\_Tea](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/casual_tea/32/677_2.png) [@Casual\_Tea](https://discourse.beets.io/u/Casual_Tea)\
**Post date:** [October 1, 2022, 1:16pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/1 "2022-10-01T13:16:59Z")

</div>

First time beets user here.  
I’ve got a mountain of ~2TB of music with inconsistent folder structure, naming and tags before me that I want to conform to the rest of my library with as little manual effort as possible.

I’m trying to achieve that .lrc files that are stored in the album folder are not only copied into the new folder that beets creates while importing but also renamed to preserve the relationship between .lrc file and corresponding song.

For example:  
0105 - THE GHOST OF YOU WALKS.flac  
0105 - THE GHOST OF YOU WALKS.lrc  
should end up as  
05 The Ghost of you Walks.flac  
05 The Ghost of you Walks.lrc  
in my folder structure.

Has anyone achieved that? I don’t want to end up with  
05 The Ghost of you Walks.flac  
0105 - THE GHOST OF YOU WALKS.lrc  
as that would break the connection between song and lyrics and I’d have to go through all of them and rename them.

In a perfect world the plugin would first check if each .lrc file has the same name as a song and if it does, rename the .lrc file using the same pattern that beets uses to rename the song while copying them to the new folder. If no corresponding song is found, ideally the plugin would move the .lrc file into a new subfolder named “LRC\_unrel” to make it obvious after the fact that those lyrics need manual work.

Neither

> **[GitHub - adammillerio/beets-copyartifacts: A plugin for beets that moves...](https://github.com/adammillerio/beets-copyartifacts)**
>
> A plugin for beets that moves non-music files during the import process. - GitHub - adammillerio/beets-copyartifacts: A plugin for beets that moves non-music files during the import process.

nor

> **[GitHub - Holzhaus/beets-extrafiles: A plugin for beets that copies additional...](https://github.com/Holzhaus/beets-extrafiles)**
>
> A plugin for beets that copies additional files and directories during the import process. - GitHub - Holzhaus/beets-extrafiles: A plugin for beets that copies additional files and directories duri...

has been updated in the last 2 years. Are there alternatives I’m not aware of? Is anyone still using either with a current version of beets? Can they do what I want to achieve?

Another point I’m uncertain about is errorhandling with either of these plugins. beets-copyartifacts seems to be able to rename file types using a pattern. Log files are used as an example:  
paths:  
ext:log: $albumpath/$artist - $album  
But what happens if there’s a folder with 2 different files with the same extension? If someone kept the original .cue file for an album that was ripped as a single flac file and then also stored a new .cue file after splitting that file into multiple songs, what would happen?

I’ve been tinkering with my config file for the last few days trying to come up with most of the common pitfalls and ways to avoid them gracefully, but some stuff remains unclear to me.  
I want to get it right before I work my way through the 2TB musc mountain, any help is appreciated.

---

<div class="post-metadata">

**Author:** ![RollingStar](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/rollingstar/32/728_2.png) [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Post date:** [January 21, 2023, 6:20pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/2 "2023-01-21T18:20:45Z")

</div>

Anyone know the state of extra files in 2022? @jojo?

---

<div class="post-metadata">

**Author:** ![Casual\_Tea](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/casual_tea/32/677_2.png) [@Casual\_Tea](https://discourse.beets.io/u/Casual_Tea)\
**Post date:** [January 22, 2023, 9:12am UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/3 "2023-01-22T09:12:55Z")

</div>

As no one ever reacted to my questions I switched over to using mp3-tag and solved most of my issues with actions I created with the help of the very active forum. It’s sad because other than this I was pretty happy with beets.

---

<div class="post-metadata">

**Author:** ![jojo](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/jojo/32/709_2.png) [@jojo](https://discourse.beets.io/u/jojo)\
**Post date:** [March 13, 2023, 12:31pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/4 "2023-03-13T12:31:39Z")

</div>

I’m sorry for not replying sooner. I checked extrafiles a couple of months ago and it seemed to be broken. Wrote about it in this error report that I found existing already: [Installing extrafiles causes other beets plugins to fail · Issue #27 · Holzhaus/beets-extrafiles · GitHub](https://github.com/Holzhaus/beets-extrafiles/issues/27)

---

<div class="post-metadata">

**Author:** ![jojo](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/jojo/32/709_2.png) [@jojo](https://discourse.beets.io/u/jojo)\
**Post date:** [March 15, 2023, 7:26am UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/5 "2023-03-15T07:26:35Z")

</div>

I just found out that [GitHub - adammillerio/beets-copyartifacts: A plugin for beets that moves non-music files during the import process.](https://github.com/adammillerio/beets-copyartifacts) had recent activity (beginning of 2023) and the owner of the fork states at least some commitment for maintaining it.

Everyone who stumbles over this thread: From those two plugins in question, `beets-copyartifacts` seems to be the one that might be more worth trying at the moment.

---

<div class="post-metadata">

**Author:** ![Tritones](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/tritones/32/725_2.png) [@Tritones](https://discourse.beets.io/u/Tritones)\
**Post date:** [May 12, 2023, 6:32pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/6 "2023-05-12T18:32:36Z")

</div>

I had some very specific needs and did a fair bit of work starting last year that resulted in a fork for copyartifacts, named [beets-filetote](https://github.com/gtronset/beets-filetote/). One of the features I added directly addresses @Casual_Tea need to bring along files but rename them to match the new name of the media file (look for “pairs” in the README). I’ll soon also be adding pattern-matching (akin to how extrafiles is configured) to provide the best of both of those plugins.

---

<div class="post-metadata">

**Author:** ![ImpulsivE](https://avatars.discourse-cdn.com/v4/letter/i/df705f/32.png) [@ImpulsivE](https://discourse.beets.io/u/ImpulsivE)\
**Post date:** [May 13, 2023, 7:58am UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/7 "2023-05-13T07:58:37Z")

</div>

You’re a life saver…

After trying to get extrafiles and another plugin to work as I wanted I stumbled across yours by accident. And it seems to work just as it should!

---

<div class="post-metadata">

**Author:** ![Casual\_Tea](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/casual_tea/32/677_2.png) [@Casual\_Tea](https://discourse.beets.io/u/Casual_Tea)\
**Post date:** [May 13, 2023, 1:17pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/8 "2023-05-13T13:17:55Z")

</div>

Looks very promising, good job! Sadly I’ve moved on from beets to mp3-tag where I created custom actions to cater to my specific needs. I also process a lot of bootlegs that aren’t in musicbrainz anyways so it’s faster overall if I do it all in mp3-tag instead of automating what I can in beets and then having to finish off the obscure stuff in mp3tag anyways.

---

<div class="post-metadata">

**Author:** ![Tritones](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/tritones/32/725_2.png) [@Tritones](https://discourse.beets.io/u/Tritones)\
**Post date:** [May 13, 2023, 2:43pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/9 "2023-05-13T14:43:58Z")

</div>

Great to hear! Please post any issues you encounter in the GitHub repo!

---

<div class="post-metadata">

**Author:** ![indotoonster](https://avatars.discourse-cdn.com/v4/letter/i/d2c977/32.png) [@indotoonster](https://discourse.beets.io/u/indotoonster)\
**Post date:** [January 5, 2024, 12:11pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/10 "2024-01-05T12:11:48Z")

</div>

Sorry for bumping up this old thread, but just wanted to say thanks for creating this – I just returned to beets after a long hiatus and found extrafiles was messing up my setup. I haven’t tried it yet, but will definitely give beets-filetote a try!

---

<div class="post-metadata">

**Author:** ![Casual\_Tea](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/casual_tea/32/677_2.png) [@Casual\_Tea](https://discourse.beets.io/u/Casual_Tea)\
**Post date:** [January 7, 2024, 5:46pm UTC](https://discourse.beets.io/t/extrafiles-vs-copyartifacts-plugin-or-something-else-for-lyrics/2171/11 "2024-01-07T17:46:10Z")

</div>

Just for the sake of having all information:  
I’ve succeeded in convincing the mp3tag dev to implement the feature that .lrc files with the same name as a song get moved and renamed alongside it in mp3tag versions v3.21h and newer.  
So in addition to using beets you can also use mp3tag and be sure that the link between songs and external lyrics won’t break.
