librespot icon indicating copy to clipboard operation
librespot copied to clipboard

Shuffle/Repeat buttons are not fully functional.

Open herrwusel opened this issue 6 years ago • 16 comments

Good to see you guys keep this project alive!

Basically copy/paste from plietar's repo issue #82

herrwusel avatar Jan 29 '18 09:01 herrwusel

Just so you know the shuffle and repeat from @kingosticks was added in #2, I know there are still some things to fix so I'll keep this open:

See his comments here and here.

ComlOnline avatar Jan 29 '18 12:01 ComlOnline

Unfortunately it's only half done, if you disable shuffle it doesn't go back to the original track order like the official client does. I can't work out an elegant way to solve this, my only idea is to make another copy of the tracklist and restore that when shuffle is disabled

An update in regards to the above. It's become obvious this isn't a good idea as librespot may have never seen a non-shuffled version of the tracklist (e.g. a mobile client shuffled the tracklist whilst disconnected from the network). Re-fetching the tracks from the context uri is simplest. You just have to ensure you save the queued tracks before doing so as they are not part of the context and would otherwise be lost. I think the official Android client has a bug here as if you enable/disable shuffle a few times in a row you sometimes suddenly lose the queued tracks.

kingosticks avatar Jan 29 '18 12:01 kingosticks

The different repeat modes (single vs all) is still covered by this issue but the remaining shuffle part of this is superseded by https://github.com/librespot-org/librespot/issues/264

kingosticks avatar Mar 20 '19 11:03 kingosticks

Running into this, cannot repeat a single track. Anything I can help with?

louy2 avatar Apr 03 '20 07:04 louy2

Will be tackling this under new-api efforts.

roderickvd avatar Aug 07 '21 20:08 roderickvd

Status?

apprehensions avatar Mar 13 '22 11:03 apprehensions

Same.

roderickvd avatar Mar 13 '22 11:03 roderickvd

Status?

seraphgrid avatar Apr 30 '22 19:04 seraphgrid

Come on.

roderickvd avatar Apr 30 '22 20:04 roderickvd

would like to see this happen as well.

kyolinedev avatar May 08 '22 20:05 kyolinedev

In hindsight I should likely apologize as I came into this discussion section with frustration and confusion. I have no intention of rushing your development or forcing you to tunnel vision on just the repeat function. It's actually not that big of a deal in my life, Spotify. Continue focusing on what's important and spotifyd will be everything you're seeing ahead. Best of luck to you.

seraphgrid avatar Aug 15 '22 17:08 seraphgrid

Reporting back after some time: with the current spirc we have no way of indicating that we support single repeat mode, so the client doesn't offer it. Maybe it will be possible when we start publishing our device capabilities on HTTPS, which is targeted for v0.5. Otherwise it will require the dealer interface which will certainly have to wait until v0.6.

roderickvd avatar Sep 30 '22 19:09 roderickvd

Running into this, cannot repeat a single track. Anything I can help with?

For anyone facing this issue, the repeat single track option works with librespot-java, this might be a temporary solution until this gets fixed in the Rust version 👍

arch-btw avatar Nov 27 '22 03:11 arch-btw

i would rather live with the proprietary spotify client than to have to use that

apprehensions avatar Nov 27 '22 06:11 apprehensions

@roderickvd Can you elaborate a bit about the dealer interface or link some reference about it? The "repeat one" functionality is quite important for my use case and I want to try to dig into this topic.

kinkard avatar Jan 11 '24 21:01 kinkard

librespot-java has implemented it. Basically it's a complete move away from Mercury-based spirc towards a web socket interface. One could port it from librespot-java: it requires major breaking (i.e. non-incremental) changes under the hood of librespot.

roderickvd avatar Jan 13 '24 19:01 roderickvd