API Documentation: video.usage

Synopsis

This API returns a list of all unique video URLs and stream names used during the requested period, and their corresponding bandwidth usage.

Example Request (JSON)

Example Code (PHP)

    $request = array(
        'command' => 'video.usage',
        'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE',
        'timestamp' => time(),
        'cdn' => 158,
        'app' => 'demo-origin',
        'url' => ,             /* optional */
        'year' => 2017,
        'month' => 06,
        'day' => 28,        /* optional */
        'limit' => 1000,                /* optional */
        'offset' => 0,                  /* optional */
    );
    
        //Create request signature
    $json_request = json_encode($request);
    $sig = base64_encode(hash_hmac('sha256', $json_request,
        '8fc8c48da81e6a2a06a9556379bf798af508dc0792497c678b4c3532ba8b637f', true));
    $request['signature'] = $sig;
    $json_request = json_encode($request);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.scaleengine.net/stable/'); // Set the URL
    curl_setopt($ch, CURLOPT_POST, true); // Perform a POST
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // If not set, curl prints output to the browser
    curl_setopt($ch, CURLOPT_HEADER, false); // If set, curl returns headers as part of the data stream
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('json' => $json_request)); //'Json' string or 'PHP' serialized return
    
    //If your PHP host does not have a proper SSL certificate bundle, you will need to turn off SSL Certificate Verification
    //This is dangerous, and should only be done temporarily until a proper certificate bundle can be installed
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Turns off verification of the SSL certificate.
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Turns off verification of the SSL certificate.
    
    $response = curl_exec($ch); //Execute the API Call
    if (!$response) {
        die('Failed to connect to ScaleEngine API');
    }
    
    //Decode the response as an associative array 
    $arrResponse = json_decode($response, true); 
    if ($arrResponse) {
        //Operation completed successfully
        //TODO Add work here
        print_r($arrResponse);
    } else {
        //Operation failed
        echo 'An error occured processing your request:';
        print_r($response);
    }
        

Request Fields

command [REQUIRED] [string] - API command to execute
api_key [REQUIRED] [string] - The API key provided as part of your account
timestamp [REQUIRED] [int] - The unix timestamp of your request, used to prevent authenticated API requests from being replayed
cdn_id [REQUIRED] [int] - The ScaleEngine CDN ID of your account
app [REQUIRED]
  • [int] - The ScaleEngine Application ID to return usage data for. See video.getapps to retrieve a list of your ScaleEngine Application names and IDs
  • [array int] - An array of ScaleEngine Application ID to return usage data for
  • [string] - The ScaleEngine Application name to return usage data for
  • [array string] - An array of ScaleEngine Application names to return usage data for. See video.getapps to retrieve a list of your ScaleEngine Application names and IDs
url [OPTIONAL]
  • [string] - The URL of the video or stream
  • [array string] - An array of video or stream names to return usage data for.
year [REQUIRED] [int] - The year to return usage data for
month [REQUIRED] [int] - The month to return usage data for
day [OPTIONAL] [int] - The day to return usage data for. If not specified, will return usage for the entire month
limit [OPTIONAL] [int] - Limits the number of results to be returned.
offset [OPTIONAL] [int] - Number of results to be skipped when searching.

Example Result (JSON)

    {
    "status": "success",
    "usage": [
        {
            "video_url": "sestore\/jb\/my_video.mp4",
            "bytes_total": "5106077",
            "requests_total": "1"
        },
        {
            "video_url": "sestore\/jb\/my_video.mp4",
            "bytes_total": "2875558",
            "requests_total": "1"
        }
        ],
    "count": 2,
    "message": "Found Video Usage",
    "handle_time": "0.2191 seconds"
    }
    

Result Fields

status [string] - "success" or "failure"
usage
video_url [string] - The URL of the video (for Video-on-Demand) or stream name (for Live Streaming and Channel)
bytes_total [bigint] - Total bytes of bandwidth used by the video or stream in the requested time period
requests_total [bigint] - Total number of play / pause / stop commands received for this video or stream in the requested time period
count [int] - total number of results available for request.
message [string] Debugging message
handle_time [float] - The amount of time spent processing your request