Skip to main content

Tools for publishing albums to the web and digital stores

Project description

Bandcrash

Bandcrash is a standalone program that automatically encodes an album of songs into a bunch of different formats for distribution on various platforms, such as itch.io, or for hosting on your own website.

See it in action!

Documentation Status

Features

  • Output as mp3, ogg, FLAC, and web preview (HTML5+mp3 at a lower bitrate)
  • Optionally upload everything to your page on itch using butler
  • High-quality encoding and metadata, with support for cover songs, per-track artwork, embedded lyrics, and more
  • Web player also supports per-track artwork

Installation

For the CLI version, the best approach is to install it with pipx:

pipx install bandcrash

On Windows, Apple Silicon-based Macs, and Intel machines running Ubuntu-based Linux, the best source for the GUI is the itch.io store.

If you are fine with launching the GUI from the terminal, the easiest option is to install it with:

pipx install 'bandcrash[gui]'

and then launch it with bandcrash-gui.

Otherwise, you'll probably need to build it from source.

Building from source

You'll need to install a supported version of Python (3.13 recommended) and poetry (which may also require installing pipx).

To build bandcrash, you should only need to run make, after which you will be able to run bandcrash from the project directory:

poetry run bandcrash       # CLI version
poetry run bandcrash-gui   # GUI version

To build a standalone GUI application, you can run make app and the application will (hopefully) end up in the dist subdirectory.

Usage

See the online documentation for detailed usage instructions.

Contributing

Development environment notes

If you are developing under Windows, you will probably need to use a POSIX environment under Windows (such as msys or Git Bash) rather than WSL.

Roadmap

See the github issues for details, but roughly:

  • Local GUI and/or web UI to make setting up the album.json easier (and easier installation, especially on Windows!)
  • Various player improvements
  • Easy embedding into websites (opengraph et al)

FAQ

How is this different from blamscamp, scritch, etc.?

Blamscamp and scritch are both great programs for publishing previews of already-encoded on itch.io and other websites! However, their functionality is only to bundle prepared audio files into a web-based player, and they don't presently handle encoding or tagging, two things that are historically tedious and difficult to do well.

Bandcrash is a full end-to-end system for preparing an album for both sale and preview online in a variety of formats.

What about Faircamp?

Faircamp does handle the end-to-end encoding and processing and builds a quite beautiful static website! If you just want to build a site to host your music and handle your own payments, it's totally usable for that.

Bandcrash is for people who want to be able to host their downloads and web-based preview on existing marketplaces such as itch.io, gumroad, ko-fi, etc., or who want to be able to embed their preview on their website under their own terms, rather than being beholden to a specific static site template.

What player does Bandcrash use?

At present, it defaults to using Camptown, a player built specifically for Bandcrash. However, I do plan on eventually making it possible to choose from a variety of player engines, including Blamscamp and Scritch.

What happened to pyBlamscamp?

Back when this project started, it was named pyBlamscamp as the intention was to be basically a Python version of the blamscamp GUI which would also handle encoding steps for you, but it very quickly drifted away from that and became something else.

For a while, Bandcrash used a fork of the blamscamp player, but at this point that has been entirely removed.

Why make a local GUI instead instead of a web app?

You already have your large .wav files on your local hard drive. Your local drive is also a good place to keep your previous encoding results. Your local computer also has a lot more space available than a typical cloud server, doesn't have to juggle cloud storage credentials, doesn't have to worry about the security of the server running the encoder app, the cost of running servers or paying for cloud storage, and so on.

Basically, it's easier for everyone.

Sometimes local apps are just Better™.

That said, Bandcrash is also embeddable as a library, so someone could conceivably build a web-based system that uses it for encoding and tagging files.

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bandcrash-0.9.9.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bandcrash-0.9.9-py3-none-any.whl (43.1 kB view details)

Uploaded Python 3

File details

Details for the file bandcrash-0.9.9.tar.gz.

File metadata

  • Download URL: bandcrash-0.9.9.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.13 Darwin/25.4.0

File hashes

Hashes for bandcrash-0.9.9.tar.gz
Algorithm Hash digest
SHA256 c77474bf13e12cd093c1c8bd9ce589ae3fd1ddca1e810d1cd24a7f96eac9ceac
MD5 0ef6fcaedfa1e69af6eb73dea9f3c56b
BLAKE2b-256 f4dfa1afb351569619dcc27dca883325b9126509262c7a4713f2b2a7b9b93325

See more details on using hashes here.

File details

Details for the file bandcrash-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: bandcrash-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 43.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.13 Darwin/25.4.0

File hashes

Hashes for bandcrash-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d1d363c7cf25b1eefc1f4b30d0e1ee92ca6cf8bdd21d650ec6e195ce5ccdc3e4
MD5 1772d3eae22fd23ec9fbc6ad55dcd1ea
BLAKE2b-256 df4f6229813559135adf7d496b48354921ccc6497e8ecf479f7546e71bb778b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page