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

    Support for Spotify

    Scheduled Pinned Locked Moved
    Feature Suggestions
    5
    12
    3.9k
    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.
    • D
      dziurka
      last edited by

      Hi, I know this issue has already been raised (https://github.com/strawberrymusicplayer/strawberry/issues/179) and has been criticized.
      However, it is true that it is one of the most popular streaming services. Many of my favorite artists don't exist on eg Tidal.

      Have you considered integrating with unofficial SDKs like this one? https://github.com/librespot-org/librespot

      Best regards

      1 Reply Last reply Reply Quote 0
      • 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