hrkfdn / ncspot

Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.
BSD 2-Clause "Simplified" License
5.06k stars 211 forks source link

Bad Credentials #1500

Closed lm12000 closed 3 weeks ago

lm12000 commented 2 months ago

Describe the bug I can't login with my Spotify Family Account. I am assuming it has to do with the Account being a shared one in a Family Plan ? (Which is Premium.)

To Reproduce Steps to reproduce the behavior:

  1. Try Login.
  2. "Connection error: Login failed with reason: Bad Credentials"

Expected behavior Being able to use the application.

System (please complete the following information):

PS: I am really new to Linux so please forgive me if this is just a simple fix or something. I did try the actual username of the account as well as the email linked to it. Both did not work.

Joachim-42he commented 1 month ago

@hrkfdn It seems that ncspot does not create a cache for the credentials. I have removed the cache folder and rebuilt and rerun ncspot and it still stops after the spotify login. It does create ~/.cache/ncspot/librespot but that folder remains empty. Can I test somenthing more to help?

hrkfdn commented 1 month ago

If the problem also occurs with librespot you may have more luck reporting it there, @Joachim-42he, as we're mostly reusing what they use to perform OAuth2. Raising aware on their end would be much appreciated.

Joachim-42he commented 1 month ago

@hrkfdn I found the reason for one part of the error at least: A while back, I was suffering from this error and still had the workaround (a different ip for ap-gew4.spotify.com) in my /etc/hosts. Sorry. Now the authorization seems to go through ok, but then ncspot suddenly quits, could you have a look at my debug log again? ncspot.debug.txt

hrkfdn commented 1 month ago

@Joachim-42he Hmm, the logs look OK. Is there a backtrace in your cache folder? Did you try opening it another time?

Joachim-42he commented 1 month ago

@hrkfdn Yes, there is

 0: ncspot::panic::register_backtrace_panic_handler::{{closure}}
   1: std::panicking::rust_panic_with_hook
   2: std::panicking::begin_panic_handler::{{closure}}
   3: std::sys::backtrace::__rust_end_short_backtrace
   4: rust_begin_unwind
   5: core::panicking::panic_fmt
   6: core::panicking::panic_const::panic_const_div_by_zero
   7: ncspot::application::Application::new
   8: ncspot::main
   9: std::sys::backtrace::__rust_begin_short_backtrace
  10: main
  11: <unknown>
  12: __libc_start_main
  13: _start

panicked at src/ui/cover.rs:51:35:
attempt to divide by zero
Joachim-42he commented 1 month ago

After simply reading the backtrace and building ncspot without the cover feature, it is running again. Thank you @hrkfdn Is there a thread where I could be of help debugging this error?

rawfootageguy commented 1 month ago

henloo~, it seems I'm the odd Windows user here. I just installed ncspot with scoop (relatively new to this) and ran into the same bad credentials error even after changing my password. For the username field I tried my email and the letter splatter username spotify seems to give you on their back end, but both to no avail.

As I read this I presume a fix might be out sooner or later? just want to confirm. going to leave ncspot alone for now and come back whenever it might be working again <3

undonepotato commented 1 month ago

henloo~, it seems I'm the odd Windows user here. I just installed ncspot with scoop (relatively new to this) and ran into the same bad credentials error even after changing my password. For the username field I tried my email and the letter splatter username spotify seems to give you on their back end, but both to no avail.

As I read this I presume a fix might be out sooner or later? just want to confirm. going to leave ncspot alone for now and come back whenever it might be working again <3

@rawfootageguy I've just been reading a lot of things here (since I had to reinstall ncspot and then ran into this issue). From what I can tell, this issue was fixed in 8b83837 last week and it seems to be working for people (including me). However, this hasn't been made into a release yet, so the only way to use it at this point is by building it from the latest git yourself. You can do this by git cloneing the repository and building it with cargo build --release (more instructions in developers.md and in previous comments; you might have to set an audio backend since you're not on Linux). Building with the cover feature is also causing sudden crashes (which was really frustrating me earlier), so don't do that if you plan to build right now since that's probably a bug.

Alternatively, you could just wait for the next release/scoop to add it, where this will be fixed and you can use your normal installation method.

However you get ncspot working eventually, make sure to use your letter-splatter username -- email doesn't work.

Hope this helps and correct me if I'm wrong!

rawfootageguy commented 1 month ago

thank you so much for your reply ! <33, I'm considering trying to build it (and learn more about how building works), though spotify did go down yesterday and on my end I'm not actually able to log in to my account regularly still. I'll likely try this after my spotify seems to be working alright, and if by then there's a new ncspot release then I'll download that and be on my way <33 thank you again, this provided a lot of clarity for me

hrkfdn commented 4 weeks ago

I'm reopening this for visibility until we can publish a new release as the issue reports keep coming.

The bottom line is: this should be fixed in main. You'll either have to compile the main branch or wait until the librespot release (one of ncspot's dependencies) is out, so that I can publish as well.

ifneq commented 4 weeks ago

I've been struggling with compiling for the past few hours, can you make a build guide for Windows or MacOS? Whenever I try to build on MacOS or Windows, I get a cc.exe or linker.exe error stating: LINK : fatal error LNK1181: cannot open input file ':libpulse-simple-0.dll.lib' ld: library not found for -l:libpulse-simple.0.dylib

or if someone can make an unofficial release, that would be greatly appreciated!

ocntscha commented 4 weeks ago

Same credentials problem her with my Spotify premium family account after installing on Fedora40 Linux through its built in app installer.

The work around of creating a credentials.json file with librespot-auth utility and placing it in ~/.var/app/io.github.hrkfdn.ncspot/cache/ncspot/librespot/ was amazingly easy since I already have official the Spotify client installed and there is a statically compiled binary of librespot-auth in the releases which was super simple and worked perfectly

Gh0stjaw commented 3 weeks ago

Had the same issue in Void Linux, with the package installed from xbps-install ncspot.

Did this to make it work..

First just removed the xbps package sudo xbps-remove ncspot then: git clone https://github.com/hrkfdn/ncspot cargo install --path to/where/you/put/your/git/clone (only other issue but non related, I were missing openssl-devel, just installed it through sudo xbps-install openssl-devel).

At first run it gave me a long url (The OAuth which were missing from the initial install) to just open with a browser, then its all good to go :-)

hrkfdn commented 3 weeks ago

ncspot 1.2.0 is out! This should be fixed now.

Tachi107 commented 3 weeks ago

@hrkfdn great news! I'd personally keep this pinned for a little longer so that people using an older version are more likely to see this and avoid reporting a useless issue