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

Support spotify connect #33

Open
vv9k opened this issue Feb 2, 2021 · 10 comments
Open

Support spotify connect #33

vv9k opened this issue Feb 2, 2021 · 10 comments
Labels
enhancement New feature or request help wanted Extra attention is needed
Milestone

Comments

@vv9k
Copy link
Contributor

vv9k commented Feb 2, 2021

Spotify has this Connect feature that allows one to play audio on other devices logged into the same account and control the playback remotely. I would love to see this feature beeing part of psst as I often like to use my pc to control playback on my phone that is connected to some speakers by cable or is just out of reach.

@jpochyla
Copy link
Owner

jpochyla commented Feb 2, 2021

Yes it's mentioned in the roadmap, but it's a lot of work. Definitely wanted, though.

@jpochyla jpochyla added enhancement New feature or request help wanted Extra attention is needed labels Feb 2, 2021
@vv9k
Copy link
Contributor Author

vv9k commented Feb 2, 2021

Should've read the road map properly I guess :) But at least now there is an issue to track that. I might dive into the code base later and see if I'm able to come up with something at least partially working.

@jpochyla
Copy link
Owner

jpochyla commented Feb 2, 2021

The most complete Connect impl now is probably librespot-java, and we should probably take a look how things are done over there.

@vv9k
Copy link
Contributor Author

vv9k commented Feb 2, 2021

From my initial findings I thought it might be enough to use the transfer method provided by aspotify player, but that's just very shallow research. If it allows to use the player to later control the changed device than it wouldn't be too much work.

@JuliDi
Copy link
Contributor

JuliDi commented Aug 29, 2021

There's a little guide on the spotify website. Seems like psst would need some refactoring to integrate this properly.

One idea that came to my mind was having a spotify connect "device" running in the background. Then the UI just sends all commands as an API request – and the background device handles whatever it gets from the spotify API. So when the user selects a different device, the UI sends the same commands to a different device.
Does that make sense?

@yavko
Copy link

yavko commented Oct 5, 2021

rust version too https://github.com/librespot-org/librespot/

@jpochyla commented on Feb 2, 2021, 4:10 AM PST:
The most complete Connect impl now is probably librespot-java, and we should probably take a look how things are done over there.

@sashahilton00
Copy link

sashahilton00 commented Oct 28, 2021

librespot dev here - couple of things:

  • librespot-java is the most feature-complete open source connect client atm. librespot does do connect, but some of the protocols/messages used are not the latest.

  • If you do opt to add this, the connect functionality is basically an event system - I'd recommend having this functionality as separate from the core of psst as possible, and running in a separate thread, as it doesn't really fit into a library in the traditional sense, with Spotify pushing a range of events depending on what other devices are doing.

@jpochyla jpochyla added this to the First beta release milestone Dec 24, 2021
@3nprob
Copy link

3nprob commented Jun 20, 2022

librespot dev here - couple of things:

* If you do opt to add this, the connect functionality is basically an event system - I'd recommend having this functionality as separate from the core of psst as possible, and running in a separate thread, as it doesn't really fit into a library in the traditional sense, with Spotify pushing a range of events depending on what other devices are doing.

Just to clarify: Were you referring here only to the "sink" role or is this relevant also when using it as a remote for other devices?

Could make sense to focus only on the latter in psst - people who want to Connect the local device can run spotifyd separately.

Looks like that should simplify things a lot by just needing to send the proper Web API requests?

spot#427 for adding the same functionality in Spot should be relevant.

@jpochyla
Copy link
Owner

@3nprob, for me, the most usefull Spotify Connect use-cases would be:

  1. Controlling Psst from my phone.
  2. Reporting played tracks (Connect is more-or-less needed for this).

@3nprob
Copy link

3nprob commented Aug 15, 2022

@jpochyla just curious, is there some reason why spotifyd (which can be run alongside psst just fine) doesn't solve this for you already? (It's still a useful feature, don't get me wrong!)

We're coming from the opposite perspective (love the clean UI in psst and want to use it as a remote for other Connect devices)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants