Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the ability to send scrobbles to one or more arbitrary endpoints. It's really only useful for people who want to display their now playing status. The expected interface is inspired by Listenbrainz. I'd be very open to discussing a better API spec (it shouldn't be hard to do).
Isn't this basically ListenBrainz, but for multiple endpoints? Pretty much.
Error response
On an error, the endpoint MUST respond with JSON with the following properties:
error
: int, a non-zero valuemessage
: the specific error messageMandatory parameters:
token
: the specific user tokenapiKey
: an api key for the server/validate
A webhook MUST have an endpoint
BASE_URL/validate
that accepts POST requests with JSON body with the mandatory parametersOn a success the server MUST respond with JSON with one key:
userName
: the respective user name/scrobble
A webhook MUST have an endpoint
BASE_URL/scrobble
that accepts a POST request with JSON with mandatory parameters, as well as:album
: string, the track album. Can be empty stringalbumArtist
: string, the album artist. Can be emptyartist
: string, the track artistduration
: int, length of the track in seconds. requiredmbid
: musicbrainz track id. can be emptytrack
: the track title. requiredtrackNumber
: the number of the track. Can be zero.On a success, the server MUST respond with an empty JSON object.