Skip to main content

beets-bandcamp-sync

A beets plugin that finds albums missing from your local library, downloads them from your Bandcamp collection, and imports them through beets. Metadata is provided by the beetcamp plugin.

This project uses Bandcamp's undocumented web endpoints and may need updates if Bandcamp changes them.

Requirements

  • Python 3.10 or later
  • beets 2.4 or later
  • A Bandcamp account with downloadable album purchases

Installation

Install the plugin and its dependencies from PyPI into the same Python environment as beets. With uv:

uv pip install beets-bandcamp-sync

Or with pip:

python -m pip install beets-bandcamp-sync

Enable both plugins and configure your Bandcamp username and cookie file in your beets configuration:

plugins: bandcamp bandcamp_sync

bandcamp_sync:
  username: your_bandcamp_username
  cookies: ~/.config/beets/bandcamp-cookies.txt
  format: flac

The cookie file must use the Netscape cookies.txt format. Export cookies for bandcamp.com from a browser session in which you are signed in. This file contains authentication credentials: do not share or commit it, and restrict its permissions where supported, for example with chmod 600 ~/.config/beets/bandcamp-cookies.txt.

The configured format must be one Bandcamp offers for the release, such as flac, mp3-320, or aiff-lossless.

Usage

Preview albums that would be imported:

beet bandcamp-sync --pretend

Download and import missing albums:

beet bandcamp-sync

The plugin considers an album present when its Bandcamp release URL is already stored as the album ID, or when beets identifies a strong local metadata match.

Development

Create a virtual environment with uv and install the project in editable mode:

uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
ruff check .
ruff format --check .
pytest
python -m build

License

Distributed under the MIT License.

Metadata

Release files for beets-bandcamp-sync 0.1.2

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-bandcamp-sync 0.1.2
File Size Uploaded
beets_bandcamp_sync-0.1.2.tar.gz 8.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beets-bandcamp-sync 0.1.2
File Interpreter ABI Platform
beets_bandcamp_sync-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 15.5 kB

Release files / beets_bandcamp_sync-0.1.2.tar.gz

Download URL beets_bandcamp_sync-0.1.2.tar.gz
Size 8.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9fd00d75757d2d50fab34768a6e3c761897a8441ad90db7042a43b4e81e8d048
BLAKE2b-256 checksum
How to use checksums
2963a03fbe7f3415c7536044160d9f2979f3fa62274b59899f0832242c1a2872
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 Sep 28, 2026.

Transparency log

Release files / beets_bandcamp_sync-0.1.2-py3-none-any.whl

Download URL beets_bandcamp_sync-0.1.2-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ccf6d5236ee13a0300728b7cfdca6ed07faefffa3a0bac8752e9de01c27763e
BLAKE2b-256 checksum
How to use checksums
bed64d93acb356dbb101da8904a7abd767e2f7b49acc62390159716012b3adfc
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 Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

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