Rust CLI tool for downloading all Bandcamp purchases automatically (or any other JSON array of URLs). Downloads files concurrently, unzips any zip files to the download directory and removes all cover images.
CLI tool for downloading a list of URLS
Usage: bcdl [OPTIONS] <URLS>
Arguments:
<URLS> A single URL or JSON string array of URLs
Options:
-f, --force Overwrite existing files
-o, --output <PATH> Optional output directory
-v, --verbose Verbose output
-h, --help Print help
-V, --version Print version
First get all Bandcamp download links from the purchase download page with Chrome DevTools. Open Chrome DevTools console and run this to get all the links from the page:
var links = Array.from(document.querySelectorAll('a'))
.filter(link => link.href.startsWith('https://p4.bcbits.com'))
.map(link => link.href);
console.log(links);
Then right-click -> Copy object -> paste to terminal inside single quotes:
bcdl '[
"https://p4.bcbits.com/...",
"https://p4.bcbits.com/...",
"https://p4.bcbits.com/...",
"https://p4.bcbits.com/...",
"https://p4.bcbits.com/...",
"https://p4.bcbits.com/..."
]'
Separate binary for just unzipping all files under a given dir or current working dir if none given.
Extract all zip files concurrently
Usage: bcdl-zip [OPTIONS] [INPUT]
Arguments:
[INPUT] Optional input path
Options:
-f, --force Overwrite existing files
-v, --verbose Verbose output
-h, --help Print help
-V, --version Print version
- Unzip each downloaded zip immediately without waiting for all downloads to finish first.