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

Metadata #1

Open
sashahilton00 opened this issue Feb 13, 2018 · 0 comments
Open

Metadata #1

sashahilton00 opened this issue Feb 13, 2018 · 0 comments

Comments

@sashahilton00
Copy link
Member

Currently this issue is tracked in librespot-org/librespot#7, but most requests/suggestions involve us providing metadata through various methods (pipes, sockets, websockets, etc.) which is something that should be implemented in librespotd rather than librespot. Related to this is event notifications, which are not really implemented in librespot. We should give some thought as to how to notify connected clients (local ones, not other Spotify clients), about the various events, from play/pause, all the way up to shuffle.

My first thoughts are that we probably want to approach this in a similar fashion to the sink implementation, as there may be use cases where the user wishes to use pipes and websockets to receive metadata, for example. In addition to this, programs will need to be able to request data from the server, in the event that they start receiving metadata at a different time to when librespot is started.

Hence, my thinking is that a hub and spoke type architecture for sending/requesting metadata is probably optimal; implement metadata retrieval and event logic once, then create adapters for the various different outlets. This would be greatly simplified if we agree on a format (JSON, etc.) for distributing metadata, as we could then handle generation of that once, and simply implement encoding/decoding for sending/receiving on each of the respective metadata outlets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant