• Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Support for Spotify

    Scheduled Pinned Locked Moved Feature Suggestions
    12 Posts 5 Posters 8.9k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jonasJ
      jonas
      last edited by

      It would make more sense to write our own, as the library is in rust, and what we do is C/C++.
      However it is a lot of work, and also requires a subscription. The best way to do it is through a gstreamer plugin. Most of the work is getting the audio data, as the rest of the API part isn't too much work as we can simply copy the Tidal/Qobuz stuff and modify it for the Spotify API.
      Most new features need to come from the community as this is a community driven project, so unless there is a programmer interested in spotify support willing to do it, it won't be done.

      1 Reply Last reply
      Reply Quote 0
      • D
        dziurka
        last edited by

        Thanks for the answer.
        I'd shoulder it, but I have too many overtime projects right now. It is possible that in March I could deal with it or maybe in the meantime someone would be interested in this topic.

        jonasJ 1 Reply Last reply
        Reply Quote 0
        • jonasJ
          jonas @dziurka
          last edited by jonas

          @dziurka
          Since GStreamer has a Spotify plugin using librespot now (https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs) I started work on it here: https://github.com/strawberrymusicplayer/strawberry/tree/spotify
          It's almost finished and works but still has issues:

          • For now we need to use a modified version of the plugin, see: https://github.com/strawberrymusicplayer/strawberry/wiki/GStreamer-Spotify-plugin
          • The plugin causes a bit of hang when starting playback of a new song. You'll notice that the fading of the album covers is a bit laggy.
          • No gapless playback.
          jonasJ 1 Reply Last reply
          Reply Quote 1
          • jonasJ
            jonas @jonas
            last edited by

            Actually, gapless playback works, I just didn't correctly load the track duration from the API.

            jonasJ 1 Reply Last reply
            Reply Quote 1
            • jonasJ
              jonas @jonas
              last edited by jonas

              Can anyone add me to a family plan or something and I can see if the spotify support is mergable now?

              We need to change strawberry to use the "spotify" uri scheme: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/912/diffs#8081a7741a879d840be97ce64e192df50f2add51

              R 1 Reply Last reply
              Reply Quote 0
              • R
                rajm @jonas
                last edited by

                @jonas Have you had any response to this? - I have a family plan (and I have your email)

                jonasJ 1 Reply Last reply
                Reply Quote 0
                • jonasJ
                  jonas @rajm
                  last edited by

                  @rajm
                  No responses from anyone, you can try to add me, but I already have an account associated with my main e-mail address, so if that doesn't work, I can give you another you can try.

                  T 1 Reply Last reply
                  Reply Quote 0
                  • T
                    theo @jonas
                    last edited by

                    @jonas I can confirm spotify works just fine in strawberry with a premium account.
                    I compiled the spotify branch from a recent git clone, and inserted schema-19 to the db.
                    When starting strawberry I could configure my spotify creds and authenticate strawberry as an app in spotify.
                    That's it. Works perfectly now 🙂

                    jonasJ 1 Reply Last reply
                    Reply Quote 1
                    • jonasJ
                      jonas @theo
                      last edited by jonas

                      @theo
                      OK, I signed up for a 1 mounth to test it too. Yes it works, and I see I've already implemented spotify uri scheme, just forgot about it.
                      But it still lags when you change song manually, I see now that's caused by gst_element_set_state when stopping the previous pipeline.

                      C 1 Reply Last reply
                      Reply Quote 1
                      • C
                        crowjake @jonas
                        last edited by

                        Just noticed this was working @jonas, thanks! This is awesome!

                        jonasJ 1 Reply Last reply
                        Reply Quote 0
                        • jonasJ
                          jonas @crowjake
                          last edited by

                          There are several issues with the Spotify support in release 1.1.1, so I've been working on fixing those.

                          • The blocking of the GUI when switching songs is fixed.
                          • Streaming being limited to 128kbps is fixed.
                          • The favorites and search results returning too many artists and albums is fixed.

                          However, today I notice that Spotify's authentication for the actual streaming is no longer working, there is some discussion here:
                          https://github.com/librespot-org/librespot/issues/1308
                          https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/203
                          Hopefully it will be resolved, and then possible to provide a access token to gstreamer so we do not have to provide additional login for the actual streaming too.

                          1 Reply Last reply
                          Reply Quote 1

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          • First post
                            Last post
                          Powered by NodeBB | Contributors