A plugin for beets that moves non-music files during the import process.
Python Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


copyartifacts plugin for beets


A plugin that moves non-music files during the import process.

This is a plugin for beets: a music library manager and much more.



The stable version of the plugin is available from PyPI. Installation can be done using pip:

pip install beets-copyartifacts

If you get permission errors try running it with sudo


The development version can be installed from GitHub by using these commands:

git clone https://github.com/sbarakat/beets-copyartifacts.git
cd beets-copyartifacts
python setup.py install

If you get permission errors try running it with sudo


You will need to enable the plugin in beets' config.yaml

plugins: copyartifacts

It can copy files by file extenstion:

    extensions: .cue .log

Or copy all non-music files (it does this by default):

    extensions: .*

It can also print what got left:

    print_ignored: yes

Renaming files

Renaming works in much the same way as beets Path Formats with the following limitations: - The fields available are $artist, $albumartist, $album and $albumpath. - The full set of built in functions are also supported, with the exception of %aunique - which will return an empty string.

Each template string uses a query syntax for each of the file extensions. For example the following template string will be applied to .log files:

    ext:log: $albumpath/$artist - $album

This will rename a log file to: ~/Music/Artist/2014 - Album/Artist - Album.log

Example config

plugins: copyartifacts

    default: $albumartist/$year - $album/$track - $title
    singleton: Singletons/$artist - $title
    ext:log: $albumpath/$artist - $album
    ext:cue: $albumpath/$artist - $album
    ext:jpg: $albumpath/cover

    extensions: .cue .log .jpg
    print_ignored: yes


copyartifacts was built on top of the hard work already done by Adrian Sampson and the larger community on beets. We have also benefited from the work of our contributors.

This plugin was built out of necessity and to scratch an itch. It has gained a bit of attention, so I intend to maintain it where I can, however I doubt I will be able to spend large amount of time on it. Please report any issues you may have and feel free to contribute.


Copyright (c) 2015-2017 Sami Barakat

Licensed under the MIT license.