mirror of
https://github.com/devgianlu/go-librespot.git
synced 2026-04-26 13:25:49 +03:00
[GH-ISSUE #63] cmd/streamer websocket server #49
Labels
No labels
bug
enhancement
pull-request
spotify-side
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/go-librespot#49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dannyherrmann on GitHub (Aug 16, 2024).
Original GitHub issue: https://github.com/devgianlu/go-librespot/issues/63
I understand this is a newer project since librespot-java is no longer in active development. But for the fun of it I’d like to propose a very low priority (potentially large sized?) enhancement:
Use Case:
This could enable Spotify streaming on older devices that cannot run librespot. I’m particularly interested in implementing this to create a Spotify client for older PowerPC Macs. While go-librespot cannot run on these older machines, the proposed streamer module would allow a client on such devices to connect and retrieve the raw PCM audio data via the websocket connection, which could then be output via an appropriate audio library.
This type of functionality may not belong in go-librespot and could very well be a separate application. I'm open to feedback here, but I believe it could potentially complement the existing project and broaden its use case.
The initial prototype / POC would involve the WebSocket server receiving a Spotify track ID and beginning to stream the raw PCM data.
Librespot-python did something similar
I'll be working on this on my own fork.
@dannyherrmann commented on GitHub (Feb 9, 2026):
@devgianlu I wanted to follow up on my previous enhancement request regarding WebSocket PCM streaming. I don't think it's needed and I will go ahead and close this as not planned. After working through the problem, I've found that go-librespot's existing pipe output (--output-pipe) combined with a simple Python TCP server completely solves my use case for streaming to vintage PowerPC Macs.
This approach has worked flawlessly and is actually more flexible than my original WebSocket proposal-any client that can handle TCP can connect, and the pipe output is already a stable feature of go-librespot.