Report that playback of a play has begun.
POST/play/:play_id/start
Call this the moment audio starts. It moves the play out of the client's play queue and into its play history, and reports the play for royalty purposes. A play may only be started once.
The response's can_skip and can_like tell the client whether the
skip and like/dislike controls should be enabled for this play. Both
are rights-derived: the answer comes from the licence the track is
actually playing under in the listener's country, so it varies per
track, not just per country - a track licensed under a permissive
direct deal is skippable and likeable even where statutory radio
licences forbid those controls:
- on-demand rights always allow both, so the fields are
true; - under radio rights, each field is
truewhen a right the play survives on permits it;can_skipadditionally respects a cap of 6 skips per station per 60 minutes of play history.
can_skip is advisory. The cap is re-evaluated when the skip is
actually requested, so POST /play/{play_id}/skip can still be denied.
waiting_time and buffering_time are optional client-side playback
metrics and are recorded for reporting only.
A successful call here invalidates any other play ids that have been
created and not yet started. If multiple calls to POST /play return
plays with ids, 1, 2, and 3, and a call to POST /play/2/start is
made, then the plays with ids 1 and 3 should be considered invalid
and should be thrown away.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- default
Playback was recorded as started.
missingParameter (code 16) — no client_id was supplied, or the
play id in the path is missing or non-numeric (Invalid or missing play id.).
Credentials were missing or invalid. The response carries
WWW-Authenticate: Basic realm="Feed.fm".
Response Headers
The authentication challenge. Always Basic realm="Feed.fm".
Basic realm="Feed.fm"playbackStarted (code 20) — this play has already been started, or
has been invalidated.
missingObject (code 17) — no such play, or the play is no longer
in this client's play queue.
The server judged the rate of requests from these credentials to be excessive and is refusing them for a time. The block lasts 30 seconds from the request that tripped it. Requests made during the block are refused and do not extend it.
The threshold is not published, and is not part of this contract. The threshold is also tuned from time to time.
The response carries a Retry-After header giving whole seconds until
the block clears. Wait at least that long. It says when to come back,
not what rate to aim for, and retrying sooner simply meets the block
again.
This exists to stop abuse, and a well-behaved client should not reach it; if yours does, the fix is to reduce your request rate rather than to retry on a timer. If you believe your application needs a rate that trips it, contact Feed.fm rather than working around it.
An error occurred.