the-eater / camp-collective

An incomplete bandcamp python toolset (mainly downloads your collection)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Camp Collective

A bandcamp python toolset

Camp collective currently gives you a useless API and a cli tool to download your whole bandcamp collection.

Usage

Camp Collective.

Usage:
    camp-collective -c=<cookie>... [options] download-collection [<target-directory>]

Options:
    --cookie=<cookie> -c       Cookies used to authenticate with Bandcamp (split by ; and content url encoded)
    --parallel=<amount> -p     Amount of items that should be downloaded parallel [default: 5]
    --status=<status-file> -s  Status file to save the status in of downloaded releases, so we don't over do it
    --format=<file-format> -f  File format to download (wav, forbis, flac, mp3-v0, mp3-320, alac, aiff-lossless, aac-hi) [default: flac]
    --after=<date>             Only download tralbums that are purchased after given date, given in YYYY-MM-DD

Quickstart

pyenv install 3.6.1 # or you equivalent
pyenv local 3.6.1
pip install -r requirements.txt
python -m camp-collective -c "$COOKIE_STRING" -p 10 download-collection ~/bandcamp -s "${STATUS_FILE}"

To authenticate with bandcamp you need to provide a cookie string, you can retrieve this by logging in in a webbrowser, opening the developer tools, and copying the value of the Cookie: header of a recent request to bandcamp.com (not bcbits.com!). previously we were able to use document.cookie however, the authentication cookie has now been set to HTTP only.

Bandcamp uses a captcha on the login page, so we can't use the conventional username/password authentication

You can use the status file to keep track of already downloaded tralbum's (as bandcamp calls it)


I have no connection with Bandcamp, except 1 support ticket on which the answer was "we'll think about it"

About

An incomplete bandcamp python toolset (mainly downloads your collection)

License:MIT License


Languages

Language:Python 100.0%