| @ -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`. | |||||