Sluby
REST APIPlayback

Time-limited signed playback URL.

Signs the master manifest (and the first thumbnail as a poster) for the asset. The signature covers the asset signing generation, so every url minted so far stops working when the asset tier changes or POST /api/v1/playback/{id}/signed/revoke is called. A url never lasts longer than six hours.

GET
/api/v1/playback/{id}/signed

Signs the master manifest (and the first thumbnail as a poster) for the asset. The signature covers the asset signing generation, so every url minted so far stops working when the asset tier changes or POST /api/v1/playback/{id}/signed/revoke is called. A url never lasts longer than six hours.

Authorization

bearerAuth
headerAuthorizationBearer <token>

A Sluby API key (sluby_...) sent as Authorization: Bearer <key>. Keys carry scopes: upload, read, manage.

Path Parameters

id*string

Asset UUID or pb_ playback ID.

Query Parameters

expires_in?integer

Lifetime of the url in seconds. A whole number outside 60 to 21600 is brought to the nearest bound (the answer expires_at says what was minted); anything else is a 400.

Range60 <= value <= 21600
Default3600

Response Body

Signed URL.

application/json
  1. response
signed_url*string

Absolute url of the master manifest on PUBLIC_URL with expires and sig appended; the gateway signs the child urls in it on the fly.

Formaturi
poster_url*|

Absolute url of the first thumbnail, signed the same way and valid as long, so a player can show a poster for a private asset. Null when the asset has none.

Formaturi
expires_at*string
Formatdate-time
Example Request
curl -X GET 'https://sluby.example.com/api/v1/playback/string/signed'
Example Response
{  "signed_url": "http://example.com",  "poster_url": "http://example.com",  "expires_at": "2019-08-24T14:15:22Z"}