[GH-ISSUE #703] Adjust Playback Speed (to listen to Podcasts at higher speed) #397

Closed
opened 2026-02-27 19:30:24 +03:00 by kerem · 6 comments
Owner

Originally created by @choucavalier on GitHub (Apr 21, 2021).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/703

Thanks for developing librespot! It is awesome

I'm using ncspot as a lightweight interface with Spotify, from the command line.

I was looking for a way to increase the playback speed when listening to podcasts, stumbling upon this issue: https://github.com/hrkfdn/ncspot/issues/248

It seems that librespot does not currently provide an API for adjusting the playback speed.

Is this feasible?

Originally created by @choucavalier on GitHub (Apr 21, 2021). Original GitHub issue: https://github.com/librespot-org/librespot/issues/703 Thanks for developing librespot! It is awesome I'm using ncspot as a lightweight interface with Spotify, from the command line. I was looking for a way to increase the playback speed when listening to podcasts, stumbling upon this issue: https://github.com/hrkfdn/ncspot/issues/248 It seems that librespot does not currently provide an API for adjusting the playback speed. Is this feasible?
Author
Owner

@ghost commented on GitHub (Apr 22, 2021):

I think this is a very good request, especially considered the official Spotify client supports this feature for podcasts.

<!-- gh-comment-id:824613950 --> @ghost commented on GitHub (Apr 22, 2021): I think this is a very good request, especially considered the official Spotify client supports this feature for podcasts.
Author
Owner

@ashthespy commented on GitHub (Apr 22, 2021):

Do other Connect implementations support the playback speed option? Or is only the official Desktop/Mobile clients that have it?

<!-- gh-comment-id:824686196 --> @ashthespy commented on GitHub (Apr 22, 2021): Do other Connect implementations support the playback speed option? Or is only the official Desktop/Mobile clients that have it?
Author
Owner

@Johannesd3 commented on GitHub (Apr 22, 2021):

If I play a podcast on my connect receiver, the speed button is greyed out, but maybe it's supported on newer ones?

But since this request is about ncspot, it has originally nothing to do with connect. We need to expose a method/command for the Player to control speed.

<!-- gh-comment-id:824805132 --> @Johannesd3 commented on GitHub (Apr 22, 2021): If I play a podcast on my connect receiver, the speed button is greyed out, but maybe it's supported on newer ones? But since this request is about ncspot, it has originally nothing to do with connect. We need to expose a method/command for the `Player` to control speed.
Author
Owner

@choucavalier commented on GitHub (Apr 22, 2021):

Thanks for responding so positively and quickly to this feature request! 💟

<!-- gh-comment-id:824806652 --> @choucavalier commented on GitHub (Apr 22, 2021): Thanks for responding so positively and quickly to this feature request! :heart_decoration:
Author
Owner

@ashthespy commented on GitHub (Apr 22, 2021):

If I play a podcast on my connect receiver, the speed button is greyed out, but maybe it's supported on newer ones?

Yep that was how I recall it as well - it's a Player (client) specific feature.

We need to expose a method/command for the Player to control speed.

Not sure if we want to go down that rabbit hole? The playback speed implementation might not be to hard to add, but it is a completely new API surface - all current API is done only via spirc (connect). For better or for worse, there aren't any local playback APIs exposed currently, as librespot's main focus has pretty much been a Connect implementation.

IMO, if we have available dev resources, it would be prudent to implement the new Connect API's and CDN loading among other things..

<!-- gh-comment-id:824857792 --> @ashthespy commented on GitHub (Apr 22, 2021): > If I play a podcast on my connect receiver, the speed button is greyed out, but maybe it's supported on newer ones? Yep that was how I recall it as well - it's a Player (client) specific feature. > We need to expose a method/command for the `Player` to control speed. Not sure if we want to go down that rabbit hole? The playback speed implementation might not be to hard to add, but it is a completely new API surface - all current API is done only via `spirc` (connect). For better or for worse, there aren't any local playback APIs exposed currently, as librespot's main focus has pretty much been a Connect implementation. IMO, if we have available dev resources, it would be prudent to implement the new Connect API's and CDN loading among other things..
Author
Owner

@sashahilton00 commented on GitHub (May 1, 2021):

I've marked this as wontfix for now. As mentioned above, this is a client specific feature. If someone wants to do some reverse engineering around this to see if it can be controlled via spirc, then feel free. It would require some sort of command passthrough nonetheless though, or perhaps a playback speed event, since we are looking to move away from librespot handling the client side playback functionality, hence this would be handled externally to the library. Closing this for now, but feel free to open up a discussion thread if you decide to try to reverse engineer this feature.

<!-- gh-comment-id:830479314 --> @sashahilton00 commented on GitHub (May 1, 2021): I've marked this as `wontfix` for now. As mentioned above, this is a client specific feature. If someone wants to do some reverse engineering around this to see if it can be controlled via spirc, then feel free. It would require some sort of command passthrough nonetheless though, or perhaps a playback speed event, since we are looking to move away from librespot handling the client side playback functionality, hence this would be handled externally to the library. Closing this for now, but feel free to open up a discussion thread if you decide to try to reverse engineer this feature.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librespot#397
No description provided.