iheanyi / bandcamp-dl

Simple python script to download Bandcamp albums
The Unlicense
941 stars 104 forks source link

--assume-yes option #203

Closed themr0c closed 1 year ago

themr0c commented 1 year ago

It would be nice to have an --assume-yes option to automatically answer to questions such as:

Track list incomplete, some tracks may be private, download anyway? (yes/no): 
Evolution0 commented 1 year ago

Only really relevant if running from a script that is attempting to download multiple albums at once, as the time it would take you to type out --assume-yes you could just answer the prompt.

Once the functionality is in to do that natively such an option would be added.

JOJ0 commented 1 year ago

Hi @Evolution0, I'm here for a +1, I'm running bandcamp-dl from a script that I did not write myself. Certainly I'd like to fix that script and send upstream to the author. Your answer of "just type yes" is not working in this case and the script would need fixing to at least let me even enter yes at the prompt:

Downloading https://omunit.bandcamp.com/album/off-world-tales-2 ... Track list incomplete, some tracks may be private, download anyway? (yes/no): Cancelling download process.

Not that I don't have enough coding projects myself currently but just in case: Would you welcome a PR adding such an option? I'm familiar with Click or argparse and Python-written cli tools in general. Not sure about your codebase but I think it's doable.

JOJ0 commented 1 year ago

BTW my suggestions for such an option would be --yes since I agree that we type enough every day ;-) If you would like to leave some room for future ideas for making bandcamp-dl "automation friendly", --no-confirm is a safe choice and fits in almost every case.

Evolution0 commented 1 year ago

Hi @Evolution0, I'm here for a +1, I'm running bandcamp-dl from a script that I did not write myself. Certainly I'd like to fix that script and send upstream to the author. Your answer of "just type yes" is not working in this case and the script would need fixing to at least let me even enter yes at the prompt:

Downloading https://omunit.bandcamp.com/album/off-world-tales-2 ... Track list incomplete, some tracks may be private, download anyway? (yes/no): Cancelling download process.

Not that I don't have enough coding projects myself currently but just in case: Would you welcome a PR adding such an option? I'm familiar with Click or argparse and Python-written cli tools in general. Not sure about your codebase but I think it's doable.

I wouldn't mind a PR, if I'm remembering correctly all you would have to do is add an --assume-yes (shorthand -x or something) arg and another if after this line: https://github.com/iheanyi/bandcamp-dl/blob/e0b2ca8f4f6f2fddd67c4d3425c7c9873e4cf470/bandcamp_dl/bandcampdownloader.py#L61 to basically just check if the key associated with it (which needs to be fed into this: https://github.com/iheanyi/bandcamp-dl/blob/fe2eafae4bfc901d2760aef9d4cc6db60528b4b4/bandcamp_dl/__main__.py#L118 is true or false (See how its used here: https://github.com/iheanyi/bandcamp-dl/blob/e0b2ca8f4f6f2fddd67c4d3425c7c9873e4cf470/bandcamp_dl/bandcampdownloader.py#L257, a simple if self.confirmation_skip:)

Alternatively just add it on to the line above: https://github.com/iheanyi/bandcamp-dl/blob/e0b2ca8f4f6f2fddd67c4d3425c7c9873e4cf470/bandcamp_dl/bandcampdownloader.py#L61 Like:

if album['full'] is not True and self.confirmation_skip:

Don't feel constrained to whatever arg name I suggest, kinda regret using -y as shorthand already..

I would do it but for all that I want to do to just round bandcamp-dl out feature wise I just can't get the motivation up to touch the code anymore.

JOJ0 commented 1 year ago

Awesome feedback! Thanks! I'll see what I can do, hopefully soonish! We'll see...it's on the list! BTW: I know that feeling! ;-)

Evolution0 commented 1 year ago

Fixed in #205