Installing extrafiles plugin on Synology NAS

Hi there, I’ve been struggling with the setup of Beets on my Synology NAS for the past day now, but finally got it tagging and renaming the folders and tracks as I wished and transferred to my desired folder (I was looking for a more specific naming structure than Lidarr offers which I achieved).

However, I realised Cue, Log and M3u files are not copied over though and that would be the cherry on the cake if I could get those transferred to the new library folder.

I did some research and came across the extrafiles plugin: GitHub - Holzhaus/beets-extrafiles: A plugin for beets that copies additional files and directories during the import process.

I installed it using: pip install beets-extrafiles

And then added added this to my config file:

directory: /volume1/beets/
library: /volume1/beets/beets.db
plugins: [web, fromfilename, discogs, fetchart, embedart, extrafiles]
paths:
    default: $albumartist/$albumartist - $original_year - $album%aunique{} ($catalognum $year) [$format $samplerate $bitdepth-bit $media]/$track - $title
    singleton: $artist/$title [$format $samplerate $bitdepth $media]
    comp: VA/$original_year - $album%aunique{} ($catalognum $year) [$format $samplerate $bitdepth-bit $media]/$track - $title
extrafiles:
    patterns:
        all: ['*.log', '*.cue', '*.m3u']

But when I execute beet version

It cannot find the plugin:

root@DiskStation:~# beet version
** error loading plugin extrafiles:
Traceback (most recent call last):
  File "/volume1/@appstore/beets/env/lib/python3.10/site-packages/beets/plugins.py", line 268, in load_plugins
    namespace = __import__(modname, None, None)
ModuleNotFoundError: No module named 'beetsplug.extrafiles'

beets version 1.6.0
Python version 3.10.8
plugins: discogs, embedart, fetchart, fromfilename, web

I take it that the installation is not being handled by plugins.py and if anyone can help me install this correctly I would be very grateful.

FYI - I installed Beets using the one of the community packages from web interface of my Diskstation if this makes a difference to installation location.

Also, using the pip method installed a load of other packages that I did not want (as well as another version of Beets) if there is another way around this?

ps. The extrafiles config format could be wrong as well but I haven’t been able to test that yet.

Solved it and forgive my terminology…

So when installing Beets via the synology package centre it was using the python 3.10.8 pipeline.

When I was in ssh as root, the pipeline it was working with was 3.8.7, hence the two not picking each other up!

So I just uninstalled the synology package version of Beets and installed as root in 3.8.7 and it all works, didn’t even need to make a new config file, all carried over.

Now, lets see if my extrafiles configuration works!

The extrafiles config settings work fine - happy bunny here. Was definitely worth all the time to set up.

@paulmcrules Glad to hear you got it working! :smile:

I just wanted to warn you about the extrafiles plugin—be careful. It has deleted files from my collection in the past. I’m sorry to say I didn’t write down details of exactly what went wrong, though. I recommend backing up your files before you start playing with it.

Thanks for the heads up. I have backups on another system before I start tagging. No issues yet.

Is there a configuration to get Beets to delete all the files after they have been tagged and copied to the music library?

Also, wondering if there is any sort of plugin that exits that could update your Allmusic or Digs collection in your account (perhaps wishful thinking)?