Coder Social home page Coder Social logo

bandcampdownloader's Introduction

Icon Bandcamp Downloader

Download

build:master status build:develop status Translation status

Description

BandcampDownloader is a Windows application that helps downloading albums from bandcamp.com by retrieving the 128 kbps MP3 files streamed on the website. It aims to ease the life of those who prefer to listen to music on their favorite player rather than on their web browser, but offers only what is already freely available on Bandcamp.

Features

  • Download MP3 files from Bandcamp:
    • From album pages: https://[artist].bandcamp.com/album/[album],
    • From track pages: https://[artist].bandcamp.com/track/[track],
    • From artist pages: https://[artist].bandcamp.com.
  • Add ID3 tags to tracks: Album, Artist, Album Artist, Title, Track number, Year and Lyrics (if available).
  • Download cover art to tags and in folder.
  • Create playlist file (supported formats are: m3u, pls, wpl, zpl).
  • Personalization through settings.

Screenshot

Screenshot-settings

Release notes

See the changelog.

Contributing

You can help translating the application by going to the Weblate project. See the documentation for more info.

Translation status

License

BandcampDownloader is licensed under the MIT license - see the LICENSE file for details.

Credits

Some icons by Yusuke Kamiyamane licensed under a Creative Commons Attribution 3.0 License.

The list of open-source libraries used by BandcampDownloader can be found here.

Piracy

You'll do what you want to do with this app, but remember to buy albums from your favorite artists if you want to support them!

And for the artists, Bandcamp says it all:

One of my fans showed me a totally easy way that someone could STEAL my music off of Bandcamp using RealPlayer 14.1 beta 3, or RipTheWeb.com, or by going into Temporary Internet Files and renaming blah blah blah. What are you doing about this grave problem?

Nothing. Since streams on Bandcamp are full-length, it’s true that someone could use one of the above methods to access the underlying MP3-128. And sure, we could throw some technical hurdles in their way, but if they hit one of those hurdles, it’s not like they’d slap their forehead and open their wallet. Instead, they’d just move on to some other site where those restrictions aren’t in place, and you’ll have squandered the chance to make your own site the premier destination for those seemingly cheap, but enthusiastic, word-spreading, and potentially later money-spending fans. In other words, the few people employing the above methods are better thought of as an opportunity, not a lost sale. If you’re still skeptical, this may help.

bandcampdownloader's People

Contributors

addisonsnyder avatar ajsnyde avatar akmatiak avatar artemisgirge avatar asrielneko avatar beppe9000 avatar comradekingu avatar curveos avatar ernemogilevich avatar hallsteinx avatar hasaneinaziz avatar i3agle avatar igorruckert avatar ismetc avatar jakubfabijan avatar l0oo avatar leeyonjae avatar milotype avatar nebula-mechanica avatar nthung-2k5 avatar olhaapedra avatar otiel avatar rezaalmanda avatar santossi avatar schw0reismus avatar simonwep avatar skybookcreation avatar twidash34 avatar vistaus avatar zinricky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bandcampdownloader's Issues

Error "Could not retrieve album info for <album_url>"

Since a while back, I can no longer download any album using this application, regardless of how my settings are or which album I try to download.
I just always get the error:

00:21:13 Starting download...
00:21:13 Retrieving album data for https://daedaleancomplex.bandcamp.com/album/eponym
00:21:14 Could not retrieve album info for https://daedaleancomplex.bandcamp.com/album/eponym

I am using v0.1.9.2.

Downloads not completing

Just in the past couple of days, all attempted downloads using this tool stop at "Computing size for '[album name]'...". They never complete.

Parsing errors when downloading discography for a one-album-artist

If the artist has only 1 release on his bandcamp page and the option "Download artist discography" is checked, this will generate parsing errors :

14:16:54 Starting download...
14:16:54 Retrieving artist discography from https://tabasker.bandcamp.com/album/na-vostro
14:16:57 Retrieving album data for http://tabasker.bandcamp.com/track/bella-ciao" itemprop="url"><span itemprop="name
14:16:57 Could not retrieve data for http://tabasker.bandcamp.com/track/bella-ciao" itemprop="url"><span itemprop="name
14:16:57 Retrieving album data for http://tabasker.bandcamp.com/track/bella-ciao
14:16:58 Retrieving album data for http://tabasker.bandcamp.com/track/golden-khasene" itemprop="url"><span itemprop="name
14:16:59 Could not retrieve data for http://tabasker.bandcamp.com/track/golden-khasene" itemprop="url"><span itemprop="name
14:16:59 Retrieving album data for http://tabasker.bandcamp.com/track/golden-khasene
14:17:00 Retrieving album data for http://tabasker.bandcamp.com/track/e-te-si-j" itemprop="url"><span itemprop="name
14:17:01 Could not retrieve data for http://tabasker.bandcamp.com/track/e-te-si-j" itemprop="url"><span itemprop="name
14:17:01 Retrieving album data for http://tabasker.bandcamp.com/track/e-te-si-j
14:17:02 Cancelling downloads. Please wait...
14:17:02 Retrieving album data for http://tabasker.bandcamp.com/track/papirosen" itemprop="url"><span itemprop="name
14:17:02 Downloads cancelled by user

When the option is not checked, everything is working fine.

Support tracks with custom cover art

There are some songs that have a custom cover art. The program sometimes applies them to their respective songs, and sometimes no. The right thing would be to always apply it, I guess.

"Failed to retrieve the size of the MP3 file for the track" and "Unable to download track"

I keep getting a certain error for SOME of the tracks I try to download.
03:34:56 Failed to retrieve the size of the MP3 file for the track "Ontal, Fausten - Terraform (feat. Fausten)". Try 4 of 10
"03:35:15 Unable to download track "07 Negative A - Freebase.mp3" from album "Grand Theft Audio". Try 1 of 10"
However that second one seems to only affect certain tracks of certain albums.
Is it a form of anti-spam or something? I'm trying to download over 150 albums at once and the first time I tried to download, I'd forgotten to replace http:// with https:// and the total size was 3300mb, but now it's down to 665mb.
Anyway, Not sure what's going on. Maybe you have some insight into it.
PS. Thanks for this handy thing.

Code improvement suggestions

Hello @Otiel, here are some code-improvements what you can make:

  • use the async and await pattern, this make code much easier to read and you don't need to use any ContinueWith statements anymore.

  • use HttpClient instead of WebClient ; it's newer and has better async support

  • use CancellationToken instead of userCancelled

  • format the code more like it's used in the .NET / C# world : like the { on a new line, and use the primitive like string instead of String and bool instead of Boolean. I guess you come from the Java world?

If you need some help, just ask me.

Pause downloads

(Enhancement) When downloading tons of albums, I'd like to be able to pause and resume within the same session.

Feedback

Absolutely stunning! Works perfectly without any flaws. Thank you so much.

Add an option to limit the bandwidth used while downloading

I'm not sure how easy it would be to implement, but it would be nice to be able to limit the bandwidth used while downloading. Currently, the application takes all bandwidth available and it can be crippling for any other Internet usage, especially when downloading a large number of albums.

Failure to download full songs & crashes

I've been looking for a suitable utility forever now and this was particularly promising but it seems to have problems with finishing downloading - every time I try to download an album some songs show up just fine and it's all good until it starts showing errors (orange) about that attempt to download the song failing and then it crashes. Is this a side-effect of the antispam thing in the other thread? It happened to me after I waited overnight and the first time I ever used the program. I have a low speed but consistent internet connection and don't use a proxy.

Here's a badly made but effective gif:
gif"

It's also worth noting that some of the songs it downloads (they show up as downloading.... in the console) are cut off - I have a bunch of 30s songs in here when band camp reports they are above 2:00.

folders

hello ,

   may I pick your brains,  I love this program but it has changed slightly over the last few releases.

  I cannot fathom how folders are created now . 

downloaders
before the example above would have created folders and mp3 in them .but now it just creates mp3

inside the folder of saves album to eg C:\Users\stuart hemmings\Downloads\Born Bad Records

any help would be greatly appreciated

cheers

stu

hope this makes sence

Flac

Hello sir? Can we have an option for FLAC type?

Failed to retrieve the size of the cover art file

Hi,

I'm getting this error with bandcamp downloader on different computers the last few days:

http://prntscr.com/cqlvp9

27 Failed to retrieve the size of the cover art file for album "BLK EDITS #2". Hit max retries of 10. Progress update may be wrong.

Do you have any idea what causes this error?

Thank you in advance!

Kind regards
Niels

It downloads the first and the last track

Title says it all. I tried downloading full discography or albums separetely, no luck. It downloads the first and the last track, all tracks in between are 0 byte files.
image

One-track downloading issue

When you download a single track, the year on the downloaded .mp3 file is saved as "1" instead of the correct release year.

App simply crashes on getting artwork for a song, while trying to download entire album

For example, while trying to download the following album:
https://nostro.bandcamp.com/album/nostromo
it simply crashes with no further notice.
I'm running it on Windows 7 x64 with 6gb RAM.
It seems to be related to the image converter.

Some images (probably the ones being retrieved as it crashes) become like the attached image file (cropped halfway).

My settings are as follows (copied from the local settings file previously saved):

{ "ConvertCoverArtToJpg": true, "CoverArtMaxSize": "1000", "DownloadOneAlbumAtATime": false, "DownloadsLocation": "C:\\Users\\Rui\\Desktop\\{artist}\\{album}", "DownloadArtistDiscography": true, "ResizeCoverArt": false, "SaveCoverArtInFolder": true, "SaveCoverArtInTags": false, "ShowVerboseLog": false, "TagTracks": true, "DownloadMaxTries": 7, "DownloadRetryCooldown": 0.2, "DownloadRetryExponential": 4.0, "AllowableFileSizeDifference": 0.05, "FilenameFormat": "{tracknum} {artist} - {title}.mp3" }

rise

Resume partial/aborted downloads

Hi,

It will be great to have the resume possibility in case of a network/internet interruption or some other cosmic disruption in the download process.
I've recently leave a download list from an URL (a single URL with several albums), and in the middle of the process it stopped, without errors, maybe because of an internet link interruption or IP change from the ISP.
In such case, if I start the process again, the already downloaded content (full or partial) gets deleted and overwritten, instead of keeping the content successfully downloaded, and resuming the partial downloads.
At least, having the possibility to check the content already OK and continue or start over only the broken files, will be absolutely great.

Thanks in advance, and go ahead! great project!

"Failed to retrieve album info" error message

For the past 24hours when I have tried to download an album I receive this message and I am unable to download anything (I receive this message for every album i attempt to download).

Example:
23:27:47 Could not retrieve album info for https://strangeranger.bandcamp.com/album/big-krackel

I am on version 1.8 and as far as I know I am not doing anything wrong. Ive had great success with this in the past so either way thank you for your work.

Unable to download tracks with unusual whitespace characters in the track information

Example: http://bandcamp.analoguetrash.com/track/phuturist-echo-images-stormtrooper-remix

The whitespace in "Phuturist​ ​(Echo" is a zero-width space (U+200B), a tab (U+0009), and another zero-width space (U+200B). Attempts to download the file fail:

08:20:42 Starting download...
08:20:42 Retrieving album data for http://bandcamp.analoguetrash.com/track/phuturist-echo-images-stormtrooper-remix
08:20:43 Computing size for album "Phuturist (Echo Image's Stormtrooper Remix)"...
08:20:43 Retrieved the size of the MP3 file for the track "Phuturist (Echo Image's Stormtrooper Remix)"
08:20:43 Downloading track "Phuturist (Echo Image's Stormtrooper Remix)" from url: http://popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=2af1939bced1e7cdb993563c87dc5e81&id=1245385054&stream=1&ts=1495031685.0
08:20:43 Unable to download track "01 Goteki - Phuturist (Echo Image's Stormtrooper Remix).mp3" from album "Phuturist (Echo Image's Stormtrooper Remix)". Try 1 of 7
08:20:44 Unable to download track "01 Goteki - Phuturist (Echo Image's Stormtrooper Remix).mp3" from album "Phuturist (Echo Image's Stormtrooper Remix)". Try 2 of 7
08:20:46 Cancelling downloads. Please wait...
08:20:47 Unable to download track "01 Goteki - Phuturist (Echo Image's Stormtrooper Remix).mp3" from album "Phuturist (Echo Image's Stormtrooper Remix)". Try 3 of 7
08:20:47 Downloads cancelled by user

Add an option to skip track size estimate

It will save some time when you're trying to download lots of albums, plus it should help with the Bandcamp anti-spam filter. If the option is checked, the progress should be calculated on the number of tracks instead of their size.

Suggested by @zontargs on #26.

Could not retrieve data

Not sure what the problem is. I get the error:

17:18:11 Retrieving album data for shook.bandcamp.com/album/shook-album
17:18:11 Could not retrieve data for shook.bandcamp.com/album/shook-album

This is true with all other info that I tried.

Crash when downloading

When trying to download https://bluestahli.bandcamp.com/ discography (Settings: all on except Download one album at a time, save cover in folder and verbose log) the app crashes while downloading (some files created). Tested with v0.1.9.2 and v0.1.9.3.

Download files in lossless format

A great feature to add to this already amazing application would be the ability to download in other formats, such as Apple Lossless or FLAC, either through downloading these formats directly from Bandcamp (if they keep these formats on their site) or by converting the mp3 files after they have been downloaded. Thank you very much for such a great program!

Tracks no longer saving within an album folder

I switched from an old version to 1.8.0 to get the artwork fix, but my new version downloads all the tracks to the destination folder without creating an album folder. The file destination is the same as in my old version. Pictured is my destination folder, with examples of albums from the old version and one from 1.8.0
capture

Customize file naming scheme

Hello, I just downloaded this and holy crap, it's amazing!!
Except for only one thing... is there a way for the files to download as "Play time" instead of "02 glitched puppet - Play time"? If there's one, please tell me. If not, can you please add it? It would make me to completely love your program!

Download all albums from one artist

Oftentimes, I find myself wanting to download all of an artists discog, but have to paste in dozens of albums to do so. I'd like a way to simply paste the main page of an artist, and for the albums all to be downloaded automatically,

Make DownloadMaxTries configurable

Default 10 in the release version is too low. Out of curiosity, I've patched it with Reflexil to int32.MaxValue and found that it needed ~80 retries to complete download in my case. Plus, could we have infinite retries?

Oh, and thanks! This tool is very convenient for those who don't want to keep Bandcamp open in the browser all the time.

Config file

I've been using this program for a while and one thing that I think is missing is a config file.
It could prevent you from selecting the output folder or check the options every time you start the it.
And thank you for this awesome program.
Edit: I'm sorry for the label, I couldn't find where i had to choose it.

Save lyrics in tags

Hi, some bands put song lyrics on bandcamp page and it would be so great if app could save them in the tags. Don't know how hard technicaly to do this, but it would be so much help for non-english speakers

Cannot download tracks with long name

Sometimes when downloading an album, especially when there are large song names, the program will stop downloading, but when I check the files, everything is there, but the program will still be stuck in progress forever. This can be fixed by just restarting it, but in one particular case, it won't download this song no matter what.

https://carseatheadrest.bandcamp.com/track/this-one-time-i-went-to-a-coffee-house-because-some-guy-i-knew-was-playing-and-i-just-sat-there-for-an-hour-and-didnt-talk-to-anyone-and-then-i-came-home-and-wrote-this-song

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.