easlice / bandcamp-downloader

Download your bandcamp collection using this python script.
MIT License
281 stars 34 forks source link

The installation isn't detailed enough for non fluent ppl. Failing to install #9

Closed drowld closed 1 year ago

drowld commented 1 year ago

I'm not the biggest noob but even in my case I'm struggling to install and run the script.

I get many errors like After

pip install -r requirements.txt

I had to change it to

pip3 install -r requirements.txt
because I was getting zsh: command not found: pip

After using

./bandcamp-downloader.py --format {mp3-320} I get ModuleNotFoundError: No module named 'bs4'

You could specify to format has to be written with a minimal set of infos and that the ] sign are obsolete when using thermal

So I basically can't use the script right now because its unclear what's the entire process like. But still thanks for the works for the ppl who made it work for them :)

easlice commented 1 year ago

Are you doing this on linux or windows?

I'm guessing that there is an issue with how your system has python configured. As in you might have both python2 and python3 installed and don't have pip installed for python2, which may be your system default. Then you ran pip3, installed the packages for python3, but your system is trying to run the script using python2, which doesn't have the right packages.

Also, I don't understand what you mean by:

and that the ] sign are obsolete when using thermal

Can you clarify that part?

JOJ0 commented 1 year ago

Hi, interesting project which I will use soon! Thanks already!

Sorry for hijacking but a suggestion on this issue.

A setup.py that does regular python packaging could be used to make sure a xommand wrapper is installed using the correct requirements instead of manual install from requirements file.

This option prevents version mismatch: https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/#python-requires

The install process would then be roughly

git clone... cd repo pip install .

Not sure if a pip py2 error would be caught then. Need to check..

drowld commented 1 year ago

I successfully installed homebrew after facing problems, then succeeded with poetry then succeded with running the basic script. But then i have issues with cookies. The amount of hassle is kinda insane i wonder why no one isnt compiling this into a chrome extension or into an applet. someone made something like this and it looks better it has a small UI at least https://github.com/RyanBluth/Bandcamp-Greasy

Can't believe the hassle lol. But thanks for the hard work even if its of no use for me because of my illiteracy

easlice commented 1 year ago

@drowld It's a completely different thing writing a script like this and getting a chrome/firefox extension to work. That was actually the way I first started doing this, but there are a bunch of issues with it because of restrictions to cross-site-scripting and how you gather the list of things to download. Even worse, it wanted to use the browser download dialog, so you had to hit 'OK' for every album or single if you don't auto-place all downloads into a single folder.

I actually think I might have tried the extension that you linked to, or something that was similar, and ran into issues. For example, it had to paginate your entire collection before it could find the downloads. I never got whatever I was looking at to work right.

The real problem here is that bandcamp doesn't already provide an easy way to do this, or at the least, an API for interfacing with your account and downloads. Either one of those would go a LONG way to making things like this more user friendly.

easlice commented 1 year ago

@JOJ0 I appreciate the suggestion. I'm putting this on my list of things to look into.

drowld commented 1 year ago

Yeah it really sucks that the bandcamp api doesnt deliver this simple functionality for them.. The script in the browser is subpar and tedious but at least it was easy to implement. took me 5 minutes while i spend 3hr not succeeding with this one so. I'm gonna spend 2-3 hour downloading my 500 album collection with bandcamp greasy i have no choice hehe Thanks anyway

JOJ0 commented 1 year ago

I successfully installed homebrew after facing problems, then succeeded with poetry then succeded with running the basic script. But then i have issues with cookies. The amount of hassle is kinda insane i wonder why no one isnt compiling this into a chrome extension or into an applet. someone made something like this and it looks better it has a small UI at least https://github.com/RyanBluth/Bandcamp-Greasy

Can't believe the hassle lol. But thanks for the hard work even if its of no use for me because of my illiteracy

After having tried the installation steps and even though I think that something like a regular setup.py approach for Python packagig installation might improve this repo (I hope I get to submitting a pull request for it), I would like to take a minute and mention some things I realised in your issue and in your wording @drowld :

When I found this repo and then read the issue title it felt like "Oh gosh, what's happening, is this repo/program seriously that broken?" -> I now know: No it is not, you seem to be a novice user that tries several things at once:

Overall your issue sounds like that all that hassle has anything to do with the fine work of the repo owner. It's not their problem! It's yours! I don't want to offend you but tell you: If you wanna go down the road of learning how to use such tools than there will be stones like that in your way. Always. You gotta live with that or don't try to use such tools :-)

By the way installing this tool using requirements.txt and Firefox as the source for cookies took me around 15 minutes. The thing works flawlessly! I found an issue when trying to use with chrome though, which I'll report shortly, other than that: Great work @easlice. Thanks a ton!

easlice commented 1 year ago

@JOJ0 I've been looking at creating a setup.py file, but the issue I'm having is that pip actually detects the poetry toml file and wants to install and do things through poetry instead. So, whether or not you have the setup.py file, if you do: pip install . It wants to download poetry and use that.

I'm not sure what to do here. Personally, I prefer simplicity and, conceptually, like being able to use a system default like pip over having to pull in something like poetry for a simple script, but I also know that I am out of touch with the expectations of a python project.

EDIT: I think I figured it out. I think I can remove the poetry requirement in the toml file under the build config and it'll work how I want, but I'm still testing it.

easlice commented 1 year ago

@JOJ0 Ok, I got the setup.py figured out and, at least on my system, I can install with either pip or poetry. I've also updated the README about it.

Do the changes make sense to you? Is it what you were thinking about? If everything looks good, I'll close this issue.

JOJ0 commented 1 year ago

That sounds great. I can test install later today/tomorrow if that would help?

easlice commented 1 year ago

@JOJ0 Sure, all the updates have been pushed, so everything should be good to take a look at.