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

    Support for Spotify

    Scheduled Pinned Locked Moved
    Feature Suggestions
    5
    12
    4.0k
    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
                          • First post
                            Last post
                          Powered by NodeBB | Contributors