bandcamp-archive is a convenience utility for making offline archives of bandcamp content.

mya fd08e6144b fix bug where only worked if verbose was set %!s(int64=6) %!d(string=hai) anos
.gitignore 560759f7a0 tiny cleanup %!s(int64=8) %!d(string=hai) anos
LICENSE 42599779c1 Init commit %!s(int64=9) %!d(string=hai) anos
OLD_README.md 0522f256e8 project name changed to bandcamp-archive %!s(int64=9) %!d(string=hai) anos
README.md 0522f256e8 project name changed to bandcamp-archive %!s(int64=9) %!d(string=hai) anos
bca.py fd08e6144b fix bug where only worked if verbose was set %!s(int64=6) %!d(string=hai) anos
dev_log.txt 3201cfe53a deprecated python2 support, view dev_log.txt %!s(int64=8) %!d(string=hai) anos
input.vbs e6732e9a52 created bat/vbs script for window gui input %!s(int64=9) %!d(string=hai) anos
look-in-to.txt 8ba2035f34 added another page that breaks bca.py to the list %!s(int64=7) %!d(string=hai) anos
todo.txt 6ca6b67a60 added atodo list, found bugs %!s(int64=8) %!d(string=hai) anos
windows_gui.bat 0acef23729 bca_windows_gui.bat is now windows_gui.bat %!s(int64=9) %!d(string=hai) anos

README.md

bandcamp-archive

Description:

bandcamp-archive is a convenience utility for making offline archives of bandcamp content. for any file downloaded, it creates a folder for the uploader, and then inside that folder it creates another folder named after the artist and the title of the album or track.

example: $DLDIR/example.bandcamp.com/Artist - Title/01 - Track 01 - $TRACKID.mp3

one of the current main features of bandcamp-archive is the ability to download all albums from an uploader's index page, while still saving each album to its own folder.

Dependencies:

  • Python3

Invocation:

GNU/Linux:

to download a single album or track

./bca.py https://example.bandcamp.com/album/example-album

or to download all albums:

./bca.py https://example.bandcamp.com/music

to see available options:

./bca.py -h
Windows:
  1. run bca_windows_gui.bat
  2. paste a bandcamp link into the dialog box

Configuration:

for now bandcamp-archive will create a config file if not found in the current directory. in time bandcamp-archive will support configuration through both command line arguments, and the configuration file.

TODO List:

  • create a simple gui with tkinter
  • implement support for "name your price" and free HQ downloads
  • code cleanup
  • add some type of support for user lists

History:

bandcamp-archive was previously named bandcamp-dl, but it was eventually realized that there was already an older project with this name:

bandcamp-archive is not a fork of these, it was written from the ground up with the following goals:

  • to be cross-platform
  • to keep dependencies to a minimum
  • to have the highest support of saving streaming quality mp3s
  • to save pages and pictures
  • to extract relevant data from the html pages and save as plain text
  • to eventually support automated higher quality downloads

bandcamp-archive previously was a wrapper around youtube-dl, but youtube-dl was not always able to retrieve links for streaming media. because of this bandcamp-archive now uses an internal page parser to generate links to streaming media. if preferred, youtube-dl can still be used as the download utility.