Video Publisher docs

This page shows you the API calls required to implement our videos. The API requires a token which you can retrieve after creating a my.isset.video account.


Get your token
The token required by the publisher API is available at https://my.isset.video/tokens/. You will find your token under System tokens. Copy the token named publisher there.
List streams

The following request is used to retrieve a list of publishes available for your account.

GET https://publish.isset.video/api/publishes with the supplied x-auth-token in the header. x-token-auth: your-token-here

Available query parameters:

from
Show publishes starting from this offset
Example: https://publish.isset.video/api/publishes?from=10
size
Show this amount of publishes
Example: https://publish.isset.video/api/publishes?size=5
dateFrom
Only show publishes created after this date
Example: https://publish.isset.video/api/publishes?dateFrom=2020-01-01
dateTo
Only show publishes created before this date
Example: https://publish.isset.video/api/publishes?dateTo=2020-01-01
search
This finds publishes with the term in filename, description or identifier.
Example: https://publish.isset.video/api/publishes?search=36181058-6c3a-4705-a3f1-23c75e15152b

Curl PHP example:

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://publish.isset.video/api/publishes",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "x-token-auth: {your-token-here}",
        "Content-Type: application/json"
    ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
                        

This will result in the following response.

{
    "total": 353,
    "from": 0,
    "size": 20,
    "results": []
}
                        
Play stream

The following request is used to retrieve the playout url (or player) for a publish. Add the client ip to make sure this playout url is only usable by one client.

GET https://publish.isset.video/api/publishes/{publishUuid}?clientIp={yourClientIp} with the supplied x-auth-token in the header. x-token-auth: your-token-here

clientIp
The IP of the user requesting to watch the publish. This IP will be validated so this playout url cannot be used by other users.
Example: https://publish.isset.video/api/publishes/7d534c3e-464e-4a4a-8720-6b80a420b063?clientIp=192.0.0.1

Curl PHP example:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://my.videopublisher.io/api/publishes/{your-publish-uuid-here}?clientIp={your-client-ip-here}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "x-token-auth: {your-token-here}",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
                        

This will result in the following response.

{
    "type": "video",
    "stream_name": "bidden-derail-moratoria.m3u8",
    "uuid": "{your-publish-uuid}",
    "status": "online",
    "identifier": "identifier",
    "description": "description.mp4",
    "enabled": true,
    "viewable": true,
    "embeddable": false,
    "security": null,
    "playout": {
        "playout_url": "https://1.secure.stream.isset.video/0000/4Iqdhcg0pmeolydZpyfpIA/1584630754/39/b1/71/39b1713868f2960562ffe8a6ed07e65fbaf90681/bidden-derail-moratoria.m3u8",
        "playout_player_url": null,
        "embed_url": null,
        "embed_player_url": null,
        "stream_url": null,
        "expired_after": 1584630754
    },
    "assets": [],
    "date_created": "2020-03-18T10:30:03+01:00"
}
                        
Download stream

The following request is used to retrieve a download url for a publish. Add the client ip to make sure this download url is only usable by one client.

GET https://publish.isset.video/api/publishes/{publishUuid}/downloads?clientIp={yourClientIp} with the supplied x-auth-token in the header. x-token-auth: your-token-here

clientIp
The IP of the user requesting to download the publish. This IP will be validated so this download url cannot be used by other users.
Example: https://publish.isset.video/api/publishes/7d534c3e-464e-4a4a-8720-6b80a420b063?clientIp=192.0.0.1

Curl PHP example:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://my.videopublisher.io/api/publishes/{your-publish-uuid-here}/downloads?clientIp={your-client-ip-here}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "x-token-auth: {your-token-here}",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
                        

This will result in the following response, listing all available downloads.

[
    {
        "id": 1,
        "filename": "touche-nautical-hydroplane.mp4",
        "resolution": "854x480",
        "url": "https://test.secure.stream.isset.video/X7B27x/myREoRAR/f4W6BCJOQjHvbjN5YHyaHg/1619467633/fa/26/e9/fa26e9d8a3c1afed34ec5447c193ca70a763035e/touche-nautical-hydroplane.mp4"
    },
    {
        "id": 2,
        "filename": "pewee-outboard-sidesplitting.mp4",
        "resolution": "1280x720",
        "url": "https://test.secure.stream.isset.video/X7B27x/myREoRAR/f4W6BCJOQjHvbjN5YHyaHg/1619467633/fa/26/e9/fa26e9d8a3c1afed34ec5447c193ca70a763035e/pewee-outboard-sidesplitting.mp4"
    },
    {
        "id": 3,
        "filename": "formlessness-unfitness-tag.mp4",
        "resolution": "1920x1080",
        "url": "https://test.secure.stream.isset.video/X7B27x/myREoRAR/f4W6BCJOQjHvbjN5YHyaHg/1619467633/fa/26/e9/fa26e9d8a3c1afed34ec5447c193ca70a763035e/formlessness-unfitness-tag.mp4"
    }
]