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

cmd/streamer websocket server #63

Open
dannyherrmann opened this issue Aug 16, 2024 · 0 comments
Open

cmd/streamer websocket server #63

dannyherrmann opened this issue Aug 16, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@dannyherrmann
Copy link

dannyherrmann commented Aug 16, 2024

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:

  • a new module, cmd/streamer, that outputs PCM data to a WebSocket instead of the system's audio output. The server would announce itself on the local network, similar to the existing daemon. When a user selects the go-librespot device from any Spotify client and plays a track, the streamer module would decode the audio and stream the raw PCM data in real-time via the WebSocket connection.

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.

@devgianlu devgianlu added the enhancement New feature or request label Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants