Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace libspotify / Streaming does not work - "Spotify login error: <ErrorType.USER_NEEDS_PREMIUM: 15>" #110

Closed
handle2001 opened this issue Jul 26, 2016 · 295 comments

Comments

@handle2001
Copy link

According to the Spotify Developer website, libspotify is no longer available for download, so the mopidy-spotify plugin cannot be installed anymore. Is there an alternate source for this library?

@ZenithDK
Copy link

This is new to me (from https://developer.spotify.com/technologies/libspotify/#libspotify-and-cocoalibspotify-downloads):

Please note that we have removed the LibSpotify binaries from our website in an effort to phase out the usage of this deprecated library. LibSpotify has been considered deprecated since 2015 and will be shut down in 2017, so we want to ensure that all developers’ efforts and attention are focused on newer and better APIs that we actively support and maintain. These APIs include the Web API, iOS and Android SDKs, and upcoming embedded libraries for Windows, Mac OS X and Linux. More information regarding upcoming libraries will be provided in the coming months.

That sort of necessitates that we either distribute libspotify or rework mopidy to use the Web API's.

@kingosticks
Copy link
Member

Oh dear. How did they forget to email us about this through their developer list AGAIN?!

There is no way to play music with the Web APIs (unless this has also changed without announcement). So distributing libspotify is probably the only option.

@allquixotic
Copy link

allquixotic commented Jul 26, 2016

I think it will be necessary to rewrite mopidy-spotify using one of their new APIs or that "embedded" thing they mentioned. Libspotify will be forcibly prevented from accessing Spotify by some time in 2017, per Spotify themselves, so we can't count on its continued functioning (unless some enterprising hacker hacks the binaries somehow to trick Spotify's servers into letting us continue to use it, but don't count on it).

I am hopeful that it doesn't require some kind of protected audio path. It can't really, if it's on Linux, right? So hopefully there will be a way to get at the PCM data from the tracks. That's all we really need to be able to move forward.

...

If the web API doesn't work and the embedded clients aren't accessible to us, can we run an Android emulator on the user's system and run the Android Spotify API through that? :P just a thought...

@yannik-b
Copy link

"LibSpotify and CocoaLibSpotify are no longer under active development on any platform and are considered deprecated. If you are building applications for iOS or Android, please use the iOS SDK or Android SDK, and we will be providing a new library for other platforms later this year" from the original spotify developer Website.

So I think we have to wait now. But its clear that mopidy-spotify has to be overwritten.

@kingosticks
Copy link
Member

@yannik-b, that particular note has been on their website for literally years, including the promise of a new library.

mopidy-spotify uses libspotify through pyspotify which might protect us from some of the changes. Lord knows what Spotify will actually end up doing and when they will actually do it. They have a history of this and unfortunately it's as unclear as it's always been.

@yannik-b
Copy link

yannik-b commented Jul 26, 2016

@kingosticks Oh okay, I never looked for it.

Actually mopidy-spotify is working.

@handle2001
Copy link
Author

Is it possible to distribute libspotify in tar.gz format alongside mopidy without violating any licenses?

@chises
Copy link

chises commented Aug 15, 2016

i think the problem is that the library will not work anymore if spotify stops the development.
are there any alternatives announces by spotify? i am really interested in this Extension and Keeping it up.

@forslund
Copy link

I'm also keeping this alive. I guess we're in the hands of spotify at the moment, waiting for them to release a replacement library? Or is there work on the "embedded" track going on?

@axelsimon
Copy link

I imagine you are already aware of the it, but just in case, librespot is an effort to fix the libspotify deprecation issue, from what I understand:
https://github.com/plietar/librespot

@adamcik
Copy link
Member

adamcik commented Sep 4, 2016

Yes we know about it, but it won't help much if Spotify decides to turn down those endpoints. I looked at it bit when they started out trying to get Spotify Connect working, but I've not payed much attention since it didn't look like we could easily integrate it at the time.

@sashahilton00
Copy link

Hi, just a quick update from the librespot repo, I've had a look at libspotify in a disassembler, and there are a couple of flags in there such as is_depreciated that are set to false. My guess is that Spotify will at some point set these to true and libspotify will die. Librespot is written in rust, and hence isn't the easiest to integrate with mopidy. To this end, spotifyd has been rewritten to use librespot, and spotify-http is a WIP looking to provide a web server to interact with librespot. Librespot has also had alsa, portaudio and stdout audio backends added. Thus it should be viable in the near future to use it with mopidy without too much effort. Alternatively, spotify-connect-web uses the embedded library that spotify references, which includes connect functionality, though there is no documentation for it, hence you are on your own with that.

@kingosticks
Copy link
Member

Are you saying that librespot supports playback through an endpoint other than the one libspotify uses? i.e similar to however the Android/iOS SDKs work? Playback is the only part of the API that is not available through Spotify's Web API and the only thing we actually need going forward.

@sashahilton00
Copy link

librespot simply connects to one of the spotify endpoints from https://apresolve.spotify.com/ and interacts with spotify using the Spotify protocol, the same way libspotify does. And they are not going to kill the endpoints that libspotify uses, I can almost guarantee it, as all of the OEM Spotify Connect speakers use a variant of libspotify called libspotify_embedded that contains the connect functionality. The amount of work they have put into the Spotify Protocol in terms of design/implementation means they are not going to scrap it, especially given this is how the Desktop clients interact with Spotify servers. I can almost guarantee that the shiny new embedded library that Spotify is talking about will be a repackage of the library that they have shipped to speaker manufacturers for the past few years.

@kingosticks
Copy link
Member

If we assume they do not turn off the endpoints, then what advantage does something based on librespot have over just using the current version of libspotify that we already have?

Considering Spotify's complete failure to deliver a new SDK I don't think we can assume anything about what it will be (or if it will ever turn up).

Do you know if the Android/iOS SDKs use the same endpoints as libspotify?

@sashahilton00
Copy link

At the moment there is no advantage, though as I mentioned previously, libspotify has an is_depreciated flag which could be flipped by spotify whenever. Also, librespot doesn't require an appkey. Though I am doubtful as to whether Spotify will kill libspotify this year, their devs seem to be the laziest bunch I've ever come across.

@dbischof90
Copy link

I get it Spotify, you don't want pirating being made too easy. But come on... There's so much potential for this. You doomed/broke hundreds of apps at the same time. :(

@sashahilton00
Copy link

I suspect it is actually more of a licensing issue. libspotify was a free library that didn't require any contract with Spotify, whilst libspotify_embedded (with the Connect functionality) requires you to become a Spotify Partner and sign a contract/NDA before use. I would imagine there are licensing fees involved as well...

@sashahilton00
Copy link

Also @kingosticks this is what I was talking about in February :/

@kingosticks
Copy link
Member

There's a short discussion and nice example of how librespot can be used as a library here. Something like that would allow us to also drop the playback side of libspotify but keep our existing architecture.

But for the time being, libspotify should still be available through Mopidy's APT archive.

@allquixotic
Copy link

Does librespot access Spotify using a mechanism that won't break when they turn off libspotify? What mechanism is it exactly? That could be the savior of all FOSS Spotify clients needing direct audio access, if it works... and provided Spotify doesn't start suing people for using it :/

@kingosticks
Copy link
Member

I think @sashahilton00 already covered that in #110 (comment)

@sashahilton00
Copy link

sashahilton00 commented May 5, 2017

@allquixotic librespot accesses Spotify using the same method that their desktop/mobile clients do. There is little/no risk that librespot will fail due to endpoints being closed. Occasionally librespot breaks when Spotify introduce new protobuf specifications that break previous implementations, but these updates are few and far between, and are both easy and quick to fix. librespot is pretty stable at the moment, though I'd suggest testing before using it in production obviously...

With regards to suing, pretty sure what librespot is doing falls within the DMCA Exceptions. We're pretty explicit on our policy of not supporting circumvention of Spotify's various protections, we're only after interoperability...

@dbischof90
Copy link

That would be more than great. I simply don't want to use libspotify because if it takes three months to develop something which will be scrapped this year it's simply not worth the effort.
How did they find this? Librespot doesn't seem to be the most stable solution either - but a great start...!

@Man-Grove
Copy link

Hi, how is the status now? my installation stopped working days ago, and i can't find here any info. Thanks so much.

Still works fine for me (on Debian 11). Problems with the installation are probably better to take to the forums.

@meaku
Copy link

meaku commented Nov 13, 2023

First of all thanks for fixing mopidy-spotify. It's working great for me on a Raspberry Pi Zero W. I managed to install it following the README instructions and a little trick: The compilation (rustc) got stuck on the Pi Zero running Raspberry OS legacy, so I put the SD card in a Pi 3 for compilation and back in the zero afterwards which works great. Maybe this is helpful to someone :)

@Crickus
Copy link

Crickus commented Feb 1, 2024

Tried to go through the manual.
Compiled and installed plugin. But still receive
<ErrorType.USER_NEEDS_PREMIUM: 15>
error with Family Premium plan.
Any suggestions?

@jmguil
Copy link

jmguil commented Feb 29, 2024

Hello dears,
I've followed the manual , installing rust, bindings, and compiling the gstreamer plugin but i still have the message <ErrorType.USER_NEEDS_PREMIUM: 15>

Here is the output that i have
Version of mopidy:
devubuntu:~/.config/mopidy$ mopidy --version
Mopidy 3.4.2_

Gstreamer spotify plugin:
devubuntu:~/.config/mopidy$gst-inspect-1.0 spotify
Plugin Details:
Name spotify
Description GStreamer Spotify Plugin
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstspotify.so
Version 0.13.0-alpha.1-60bb72d
License MPL
Source module gst-plugin-spotify
Source release date 2024-02-28
Binary package gst-plugin-spotify
Origin URL https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs

spotifyaudiosrc: Spotify source

1 features:
+-- 1 elements_

And here is the ouput of mopidy:
NFO 2024-02-29 11:18:27,413 [11296:MainThread] mopidy.__main__ Starting Mopidy 3.4.2 INFO 2024-02-29 11:18:27,435 [11296:MainThread] mopidy.config Loading config from builtin defaults INFO 2024-02-29 11:18:27,436 [11296:MainThread] mopidy.config Loading config from file:///home/devubuntu/.config/mopidy/mopidy.conf INFO 2024-02-29 11:18:27,438 [11296:MainThread] mopidy.config Loading config from command line options INFO 2024-02-29 11:18:27,616 [11296:MainThread] mopidy.__main__ Enabled extensions: softwaremixer, alsamixer, m3u, iris, http, file, spotify, stream INFO 2024-02-29 11:18:27,620 [11296:MainThread] mopidy.__main__ Disabled extensions: none INFO 2024-02-29 11:18:27,861 [11296:MainThread] mopidy.commands Starting Mopidy mixer: SoftwareMixer INFO 2024-02-29 11:18:27,862 [11296:MainThread] mopidy.commands Starting Mopidy audio INFO 2024-02-29 11:18:27,863 [11296:MainThread] mopidy.commands Starting Mopidy backends: SpotifyBackend, FileBackend, M3UBackend, StreamBackend INFO 2024-02-29 11:18:27,899 [11296:Audio-2 (_actor_loop)] mopidy.audio.actor Audio output set to "autoaudiosink" ERROR 2024-02-29 11:18:28,232 [11296:SpotifyEventLoop] spotify.session Spotify login error: <ErrorType.USER_NEEDS_PREMIUM: 15> INFO 2024-02-29 11:18:29,022 [11296:SpotifyBackend-3 (_actor_loop)] mopidy_spotify.web Logged into Spotify Web API as bornslicky INFO 2024-02-29 11:18:37,477 [11296:SpotifyBackend-3 (_actor_loop)] mopidy_spotify.playlists Refreshed 20 Spotify playlists INFO 2024-02-29 11:18:37,479 [11296:MainThread] mopidy.commands Starting Mopidy core INFO 2024-02-29 11:18:37,482 [11296:MainThread] mopidy.commands Starting Mopidy frontends: IrisFrontend, HttpFrontend INFO 2024-02-29 11:18:37,482 [11296:IrisFrontend-10 (_actor_loop)] mopidy_iris.core Starting Iris 3.69.3 INFO 2024-02-29 11:18:37,487 [11296:HttpFrontend-12 (_actor_loop)] mopidy.http.actor HTTP server running at [::ffff:127.0.0.1]:6680 INFO 2024-02-29 11:18:37,487 [11296:MainThread] mopidy.commands Starting GLib mainloop

I don't really get what's going wrong. Could you point me at what i should look to troubleshoot it ?

Thanks

@JanPedaal
Copy link

Hello dears, I've followed the manual , installing rust, bindings, and compiling the gstreamer plugin but i still have the message <ErrorType.USER_NEEDS_PREMIUM: 15>

...

I don't really get what's going wrong. Could you point me at what i should look to troubleshoot it ?

Thanks

Just to be sure: do you actually have Spotify Premium, and have you added the API key and password to your config? It won't work with a free account.

@kingosticks
Copy link
Member

ErrorType.USER_NEEDS_PREMIUM is from libspotify so if you are getting that, you are still running the old verison of Mopidy-Spotify. Your post doesn't specify that you installed the latest version of Mopidy-Spotify from here. It's best to provide the --upgrade or --force-reinstall options to make sure you really are getting the latest version (this is entirely my fault, I should have made a pre-release to make this easier for people).

sudo python3 -m pip install --break-system-packages --upgrade https://github.com/mopidy/mopidy-spotify/archive/main.zip

@jmguil
Copy link

jmguil commented Feb 29, 2024

Hello dears, I've followed the manual , installing rust, bindings, and compiling the gstreamer plugin but i still have the message <ErrorType.USER_NEEDS_PREMIUM: 15>

...

I don't really get what's going wrong. Could you point me at what i should look to troubleshoot it ?
Thanks

Just to be sure: do you actually have Spotify Premium, and have you added the API key and password to your config? It won't work with a free account.

Hello my bad i haven't given all detailed, i have a premium account and not a FB one.
and i have with mopidy config the following output for spotify

[spotify]
enabled = true
username = bornslicky
password = ********
client_id = d2431fad-f3f6-4a9f-8c48-c84b93e62bef
client_secret = ********
bitrate = 160
volume_normalization = true
private_session = false
timeout = 10
allow_cache = true
allow_network = true
allow_playlists = true
search_album_count = 20
search_artist_count = 10
search_track_count = 50
toplist_countries =

@jmguil
Copy link

jmguil commented Feb 29, 2024

ErrorType.USER_NEEDS_PREMIUM is from libspotify so if you are getting that, you are still running the old verison of Mopidy-Spotify. Your post doesn't specify that you installed the latest version of Mopidy-Spotify from here. It's best to provide the --upgrade or --force-reinstall options to make sure you really are getting the latest version (this is entirely my fault, I should have made a pre-release to make this easier for people).

sudo python3 -m pip install --break-system-packages --upgrade https://github.com/mopidy/mopidy-spotify/archive/main.zip

Hi, i have installed mopidy yesterday and mopidy-spotify this morning on a fresh ubuntu install. The only different thing is that i've installed mopidy-spotify from apt and not from the python command.
Version of Mopidy-Spotify is 4.1.1 according to "python3 -m pip list"

I've just tried your command, but it complains for the --break-system-packages parameter which is unknown.
My version of python 3.10 and version of pip 22.0.2

!!!UPDATE!!!
I've uninstall Mopidy-Spotify and reinstall it through python3 -m pip install https://github.com/mopidy/mopidy-spotify/archive/main.zip instead of apt and it works now.

Thanks for the help !!

@kingosticks
Copy link
Member

kingosticks commented Feb 29, 2024

The only different thing is that i've installed mopidy-spotify from apt and not from the python command.

And that was the problem.

If --break-system-packages isn't support by your verison of pip, then remove it from the command. It's needed for newer versions.

@kingosticks
Copy link
Member

I've added pre-built Debian packages for a few platforms at https://github.com/kingosticks/gst-plugins-rs-build/releases/latest

Open an issue at https://github.com/kingosticks/gst-plugins-rs-build if anyone also wants the .so files added.

@Man-Grove
Copy link

Man-Grove commented Mar 1, 2024

Installing this .deb package (this = amd64) over the previously built installation, which might be the wrong thing to do, produces the following errors:


ERROR    [Core-8 (_actor_loop)] mopidy.core.library SpotifyBackend backend caused an exception.
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/mopidy/core/library.py", line 17, in _backend_error_handling
     yield
   File "/usr/local/lib/python3.11/dist-packages/mopidy/core/library.py", line 230, in lookup
     result = future.get()
              ^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/pykka/_threading.py", line 68, in get
     raise exc_value
   File "/usr/local/lib/python3.11/dist-packages/pykka/_actor.py", line 238, in _actor_loop_running
     response = self._handle_receive(envelope.message)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/pykka/_actor.py", line 349, in _handle_receive
     return callee(*message.args, **message.kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy_spotify/library.py", line 38, in lookup
     return lookup.lookup(self._config, self._backend._web_client, uri)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy_spotify/lookup.py", line 27, in lookup
     return list(_lookup_track(config, web_client, link))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy_spotify/lookup.py", line 51, in _lookup_track
     track = translator.web_to_track(web_track, bitrate=config["bitrate"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy_spotify/translator.py", line 252, in web_to_track
     return models.Track(
            ^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy/models/immutable.py", line 159, in __call__
     instance = super().__call__(*args, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy/models/immutable.py", line 35, in __init__
     self._set_field(key, value)
   File "/usr/local/lib/python3.11/dist-packages/mopidy/models/immutable.py", line 188, in _set_field
     object.__setattr__(self, name, value)
   File "/usr/local/lib/python3.11/dist-packages/mopidy/models/fields.py", line 50, in __set__
     value = self.validate(value)
             ^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy/models/fields.py", line 133, in validate
     value = super().validate(value)
             ^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/local/lib/python3.11/dist-packages/mopidy/models/fields.py", line 34, in validate
     raise TypeError(
TypeError: Expected length to be a <class 'int'>, not 196066.0

Playlists load, but won't play.
This is on Debian 12.

@kingosticks
Copy link
Member

kingosticks commented Mar 1, 2024

That's an error in Mopidy-spotify, rather than gstspotifysrc (Spotify silently changed their API). Fixes (#375) went in last couple of days, upgrade your Mopidy-spotify with latest from this repo.

@Man-Grove
Copy link

Ah, OK , that fixed the problem. Thanks. Interesting though that it also worked with older verisons, namely Mopidy 3.4.2 and gspotify 0.11.0-alpha.1-3661b4f from 2023-07-18... clearly, some black magic is involved here! :-D Sorry for bothering...

@kingosticks
Copy link
Member

They've rolled their bug out to users gradually. Pointless when they don't listen to bug reports. I think all older versions of Mopidy-spotify will suffer from this bug in their API, it's unavoidable. Glad working for you know.

@TCke83
Copy link

TCke83 commented Apr 29, 2024

I've updated to the newest version, but i get following error when selecting a playlist for playback:

ERROR    2024-04-29 13:15:04,843 [794:Core-6 (_actor_loop)] mopidy.core.library
  SpotifyBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/mopidy/core/library.py", line 31, in _backend_error_handling
    yield
  File "/usr/local/lib/python3.11/dist-packages/mopidy/core/library.py", line 244, in lookup
    result = future.get()
             ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pykka/_threading.py", line 68, in get
    raise exc_value
  File "/usr/local/lib/python3.11/dist-packages/pykka/_actor.py", line 238, in _actor_loop_running
    response = self._handle_receive(envelope.message)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pykka/_actor.py", line 349, in _handle_receive
    return callee(*message.args, **message.kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/mopidy/backend.py", line 145, in lookup
    raise NotImplementedError
NotImplementedError

@kingosticks
Copy link
Member

kingosticks commented Apr 29, 2024

And what version is that? The latest development version or the latest (pre-)release? Unless you're also using very latest Mopidy from git then you should be using https://github.com/mopidy/mopidy-spotify/releases/tag/v5.0.0a2

@TCke83
Copy link

TCke83 commented Apr 29, 2024

@kingosticks thanks for the super fast response, installing that specific tag indeed fixed the issue.

@kingosticks
Copy link
Member

@TCke83 out of interest, did you have to force/hack the installation in some way to get your original issue? If you are using the latest Mopidy-Spotify from git it should be automatically also pulling in the latest Mopidy from git, and these two versions are compatible together.

@TCke83
Copy link

TCke83 commented Apr 29, 2024

I always use following command to update:

sudo python3 -m pip install --break-system-packages --upgrade git+https://github.com/mopidy/[email protected]

Until now without the specific tag version. But it could be mopidy was previously installed using apt-get, that might prevent the update of mopidy using the above command?

@kingosticks
Copy link
Member

Until now without the specific tag version. But it could be mopidy was previously installed using apt-get, that might prevent the update of mopidy using the above command?

Yes, that's probably it. Thanks

@troyxmccall
Copy link

noting that Spotify disabled username/password authentication, which affects playback in 2024 on the https://github.com/mopidy/mopidy-spotify/tree/v5.0.0alpha branch,

users will see errors similiar to failed to start: Login failed with reason: Bad credentials

mopidy-1  | 0:00:07.438849644    12 0x7fd8fe9c75e0 ERROR        spotifyaudiosrc audio/spotify/src/spotifyaudiosrc/imp.rs:328:gstspotify::spotifyaudiosrc::imp:<source> failed to start: Login failed with reason: Bad credentials
mopidy-1  | 0:00:07.439024172    12 0x7fd8fe9c75e0 WARN                 basesrc gstbasesrc.c:3134:gst_base_src_loop:<source> error: Internal data stream error.
mopidy-1  | 0:00:07.439057619    12 0x7fd8fe9c75e0 WARN                 basesrc gstbasesrc.c:3134:gst_base_src_loop:<source> error: streaming stopped, reason error (-5)
mopidy-1  | 0:00:07.439107908    12 0x7fd8fe9c75e0 WARN                oggdemux gstoggdemux.c:4775:gst_ogg_demux_send_event:<oggdemux0> error: EOS before finding a chain
mopidy-1  | 0:00:07.439157027    12 0x7fd8fe9c75e0 WARN                oggdemux gstoggdemux.c:2550:gst_ogg_demux_sink_event:<oggdemux0> EOS while trying to retrieve chain, seeking disabled

since this is an upstream issue with librespot-org/librespot#1308 a solution will be multi-tiered,

as always, ty @kingosticks, for your work on this

@kingosticks
Copy link
Member

kingosticks commented Aug 12, 2024

Thanks for adding this here also.

I would have thought things will continue to work for existing users because we support "cached credentials". Only the very first login actually uses your user and password. This does assume you are persisting the contents of Mopidy's data_dir where we store that blob. The default config location should ensure that's the case. I can replicate the problem if I move my cached creds elsewhere but it's still working otherwise.

Obtaining cached credentials (via a custom build of librespot, or similar) and moving them into this directory is a work-around.

@troyxmccall
Copy link

troyxmccall commented Aug 12, 2024

@kingosticks ah, I see, ty for that callout

I was only persisting the mopidy cache dir in my alpine docker image

ie:

volumes:
      #data persistance
      - mopidy_cache:/home/mopidy/.cache/mopidy

looks like i should have also persisted /home/mopidy/.local/share/mopidy for alpine as well

@erkr
Copy link

erkr commented Aug 13, 2024

I would have thought things will continue to work for existing users because we support "cached credentials".

Nope, Spotify forces users to reset their passwords

@kingosticks
Copy link
Member

My cached credentials was still working as of yesterday evening.

I'm going to move this new problem into its own issue to make it clearer that it's new and what the options are. I had only intended to keep this old issue open until we had a proper new (non-beta) release. Maybe that is just confusing.

@kingosticks
Copy link
Member

Fixed in Mopidy-Spotify v5.0.0a3 and gst-plugin-spotify_0.14.0~alpha.1-1. You should still properly configure your cache directory but things should still work now regardless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests