So, within a day of the Bandcamp announcement, several folks had already started building their own tools for escaping from Bandcamp. Of particular note (and brought to my attention many times) is one called blamscamp, which is a web-based GUI that builds a web player bundle for itch.io.
This tool definitely has a lot of merit, but in the near term it only handles one specific use case, namely taking a collection of already-encoded-for-the-web mp3s and turning it into an itch previewer. The player itself is nicely-written, but this isn’t the sort of tool which works well for me.
So, I adapted the player engine into my own version, which is a CLI tool. Feed it a JSON spec, audio files, and ancillary data (album art and lyrics and such), and it automatically encodes and tags the album for MP3 preview, high-quality MP3, Ogg Vorbis, and FLAC, and builds a web player (based on the original blamscamp’s although it’s diverged quite a lot now). And, if you install butler, it can also automatically upload these bundles to your itch page!
Here is the first public demo of it.
With all that said, I do still intend to keep using Bandcamp as my primary music distribution platform; it’s been very good to me over the years, and just because they’re being bought out by a questionable company doesn’t mean it’ll actually go downhill. But diversifying my offerings is always a good thing, and by posting my music in both places, I get even more of a potential audience. Plus, the satisfaction of owning (a big part of) my own delivery pipeline.
The pyBlamscamp pipeline can also be adapted to anything that takes a bundle of files; it could also be used, for example, to simplify the process of posting albums on Gumroad.
At present the main difficulties of it are that it’s a Python application and that it relies on external encoders. One of my potential change sin the future is to have it self-host the encoder libraries which would make a lot of things easier, and would also make it more feasible to provide a stand-alone application.
It’d also be really handy to have tools that make it easier to create and edit the .json file. That’s definitely a rough edge that’s not suitable for general end users.
There’s also a heck of a lot of things that still need to be done even for my own uses. But for now, this tool is at least ready to get started with.