| @ -1,2 +1,54 @@ | |||
| # bandcamp-collection-downloader | |||
| # Bandcamp collection downloader | |||
| A command-line tool to automatically download all albums of a Bandcamp collection. | |||
| ``` | |||
| Usage: <main class> [-h] -c=<pathToCookiesFile> [-d=<pathToDownloadFolder>] [-f=<audioFormat>] <bandcampUser> | |||
| <bandcampUser> The bandcamp user account from which all albums must be downloaded. | |||
| -c, --cookies-file=<pathToCookiesFile> | |||
| A JSON file with valid bandcamp credential cookies. | |||
| "Cookie Quick Manager" can be used to obtain this file after logging into bandcamp. | |||
| (visit https://addons.mozilla.org/en-US/firefox/addon/cookie-quick-manager/). | |||
| -d, --download-folder=<pathToDownloadFolder> | |||
| The folder in which downloaded albums must be extracted. | |||
| The following structure is considered: <pathToDownloadFolder>/<artist>/<year> - <album>. | |||
| -f, --audio-format=<audioFormat> | |||
| The chosen audio format of the files to download (default: vorbis). | |||
| Possible values: flac, wav, aac-hi, mp3-320, aiff-lossless, vorbis, mp3-v0, alac. | |||
| -h, --help Display this help message. | |||
| ``` | |||
| ### Usage | |||
| This tool does not manage authentication with Bandcamp servers, as they require a valid token from Google Captcha. | |||
| Hence, authentication must first be achieved using Firefox, then Bandcamp cookies must be exported in JSON using the Firefox Addon [Cookie Quick Manager](https://addons.mozilla.org/en-US/firefox/addon/cookie-quick-manager/). | |||
| This JSON file can then be used using the mandatory parameter `--cookies-file`: | |||
| ### Usage | |||
| Example of command: | |||
| ```dtd | |||
| $ java -jar bandcamp-collection-downloader-all.jar --cookies-file=cookies.json --download-folder=~/Music myBandcampIdentifier | |||
| ``` | |||
| This will download all albums ever bought by the Bandcamp account *myBandcampIdentifier*, | |||
| and extract the music in the folder `~/Music`, | |||
| The tool always creates one folder per artist, each containing one folder per album (with the format `<year> - <album name>`). | |||
| ### Compiling | |||
| Compilation is handled by Gradle. | |||
| A task `fatJar` is available to build a standalone executable jar with all dependencies: | |||
| ``` | |||
| $ git clone https://framagit.org/Gwendal/bandcamp-collection-downloader.git | |||
| $ cd bandcamp-collection-downloader | |||
| $ gradle fatjar | |||
| ``` | |||
| The resulting binary can then be found in `build/libs/bandcamp-collection-downloader-all.jar`. | |||