Skip to main content

beets-additionalfiles

A plugin for beets that copies additional files and directories during the import process.

Note: This is a fork of https://github.com/Holzhaus/beets-extrafiles.

Installation

Install from PyPI

The plugin is released on PyPI and can be installed via:

$ uv pip install beets-additionalfiles

Or with pip:

$ pip3 install --user beets-additionalfiles

Install manually for development

Clone the repository and install using uv:

$ git clone https://github.com/finnyb/beets-additionalfiles.git
$ cd beets-additionalfiles
$ uv venv
$ source .venv/bin/activate  # On Unix/macOS
$ uv pip install -e ".[dev]"

Usage

Activate the plugin by adding it to the plugins list in beet's config.yaml:

plugins:
  # [...]
  - additionalfiles

Also, you need to add glob patterns that will be matched. Patterns match files relative to the root directory of the album, which is the common directory of all the albums files. This means that if an album has files in albumdir/CD1 and albumdir/CD2, then all patterns will match relative to albumdir.

The snippet below will add a pattern group named all that matches all files that have an extension.

additionalfiles:
    patterns:
        all: '*.*'

Pattern names are useful when you want to customize the destination path that the files will be copied or moved to. The following configuration will match all folders named scans, Scans, artwork or Artwork (using the pattern group artworkdir), copy them to the album path and rename them to artwork:

additionalfiles:
    patterns:
        artworkdir:
          - '[sS]cans/'
          - '[aA]rtwork/'
    paths:
        artworkdir: $albumpath/artwork

Development

After cloning the git repository, set up a development environment using uv:

$ git clone https://github.com/finnyb/beets-additionalfiles.git
$ cd beets-additionalfiles
$ uv venv
$ source .venv/bin/activate  # On Unix/macOS
$ uv pip install -e ".[dev]"

Or use uv sync for reproducible builds:

$ uv sync --extra dev

This will install the plugin in editable mode along with all development dependencies (pytest, ruff, mypy, etc.).

When adding changes, please conform to PEP 8. Also, please add docstrings to all modules, functions and methods that you create.

Quick Commands (using Makefile)

$ make install-dev    # Install with dev dependencies
$ make test          # Run all tests
$ make lint          # Check for linting issues
$ make format        # Format code
$ make check         # Run lint + tests
$ make build         # Build distribution packages

Code Quality

This project uses Ruff for linting and code formatting:

$ ruff check beetsplug/ tests/          # Check for linting issues
$ ruff check --fix beetsplug/ tests/    # Auto-fix issues
$ ruff format beetsplug/ tests/         # Format code

Or use the Makefile:

$ make lint    # Check for issues
$ make format  # Format and fix

Testing

You should test every single commit by running the test suite:

$ pytest tests/

Or use the Makefile:

$ make test              # Run all tests
$ make test-fast         # Run tests in quiet mode
$ make test-coverage     # Run with coverage report

If a test fails, please fix it before you create a pull request. If you accidentally commit something that still contains errors, please amend, squash or fixup that commit instead of adding a new one.

Building

To build distribution packages:

$ uv build

Or use the Makefile:

$ make build

Publishing

This project uses automated publishing via GitHub Actions. See .github/PUBLISHING.md for detailed instructions on:

  • Setting up PyPI Trusted Publishing
  • Publishing to TestPyPI for testing
  • Creating production releases
  • Troubleshooting common issues

Continuous Integration

This project uses GitHub Actions for CI/CD:

  • CI: Runs tests and linting on every push and PR
  • TestPyPI: Publishes release candidates for testing
  • PyPI: Automatically publishes to PyPI when a GitHub Release is created

Metadata

Release files for beets-additionalfiles 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for beets-additionalfiles 2.0.0
File Size Uploaded
beets_additionalfiles-2.0.0.tar.gz 28.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beets-additionalfiles 2.0.0
File Interpreter ABI Platform
beets_additionalfiles-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.0 kB

Release files / beets_additionalfiles-2.0.0.tar.gz

Download URL beets_additionalfiles-2.0.0.tar.gz
Size 28.0 kB
Tags Source
SHA-256 checksum
How to use checksums
05d403ba8fbdcc827a09e76ee99bdcbeb377bc11d3cb4bdc7c6075137fd9775c
BLAKE2b-256 checksum
How to use checksums
12060bfa2fbfceab525c2bb9d0c4f22dddce9845f2bc68734c8078ed8c1c00ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / beets_additionalfiles-2.0.0-py3-none-any.whl

Download URL beets_additionalfiles-2.0.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
abfb6660a81c1efa01e598604280b4e7e0142be64f3cdffc408306b5a26e334d
BLAKE2b-256 checksum
How to use checksums
9aedbf4a9b09ab1449d10b636b1d5c4f62afe542307e034f94f53f061996225b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page