API Documentation: sevu.errorlog

Synopsis

This API retrieves the SEVU Ticket error logs for information on how a ticket has been used. You can limit results by the Ticket Key, pass, application name, attempts by an ip address, video trying to be accessed, and occuring on or after a date time.

Example Request (JSON)

Example Code (PHP)

    $request = array(
        'command' => 'sevu.errorlog',
        'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE',
        'timestamp' => time(),
        'cdn' => 158,
        'key' => 'mystream.53ffc996dd39d5.39102367',        /* optional */
        'app' => 'demo-origin',                               /* optional */
        'video' => 'mystream',                              /* optional */
        'ip' => '192.168.0.0',                              /* optional */
        'pass' => 'unique_random_string_per_request',       /* optional */
        'success' => 1,                                     /* optional */
        'limit' => '25',                                    /* optional */
        'seek => '0',                                       /* optional */
        'datetime' => '2014-09-16 13:00:00'                 /* 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
cdn_id [REQUIRED] [int] - The ScaleEngine CDN ID of your account
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
Key [OPTIONAL] [string] - The SEVU ticket. This is the string that combined with the password provided when the ticket was created allows a user access to a protected stream.
app [OPTIONAL] [string] - The ScaleEngine Application name
video [OPTIONAL] [string] - The stream name or path of the VOD video the user is restricted to. VOD examples look like like: sestore3/username/path/filename.mp4
ip [OPTIONAL][string] - The IP Address of the user that attempted to use the ticket.
pass [OPTIONAL] [string] - The randomly generated password assigned to a SEVU Ticket.
success [OPTIONAL] [int] - 1 if the ticket attempt was accepted, 0 if the ticket was rejected.
limit [OPTIONAL] [int] - Limits the number of results to be returned.
seek [OPTIONAL] [int] - Number of records to skip.
Example: Seek of 25 and Limit of 25 will return results 26-50
datetime [OPTIONAL] [string] - Limit the results to attempts on or after the date provided.

Example Result (JSON)

    {
    "code": 2041,
    "message": "ScaleEngine Virtual Usher found requested error logs",
    "status": "success",
    "errors" : [
        {"key": "mystream.53ffc996dd39d5.39102367",
        "datetime":"2013-11-20 18:10:48",
        "ip":"1.1.1.1",
        "video":"myStream",
        "app":"demo-origin",
        "appinst":"play",
        "pageurl":"http://", 
        "refurl":"http://", 
        "success":"0",
        "reason":"Invalid IP Address",
        "server_ip":"1.1.1.1"}
    ]
    "handle_time":"0.3795 seconds"
    }
    

Result Fields

code [int] - API Response Code
  • 2040 - ScaleEngine Virtual Usher could not find requested error logs
  • 2041 - ScaleEngine Virtual Usher found requested error logs
message [string] - Debugging message
status [string] - "success" or "failure"
errors [array] - Array of Error Logs
error
key [string] - The SEVU ticket. This is the string that combined with the password provided when the ticket was created allows a user access to a protected stream. Must be included in the server URL as the "key" parameter
datetime [string] - The date and time that the ticket was used.
ip [string] - The IP Address of the user that attempted to use the ticket.
video [string] - The video or stream that was being accessed.
app [string] - The application the video or stream was running on.
appinst [string] - the application instance.
pageurl [string] - The url address where the attempt originated.
refurl [string] - the referal address where the attempt.
success [int] - 1 if the ticket attempt was accepted, 0 if the ticket was rejected.
reason [string] - Description of why the ticket was rejected.
Possible Results:
  • Invalid Auth Token
  • Expiration date surpassed
  • Wrong Application
  • Exceeded max views
  • Invalid IP Address
  • Not authorized for that video
  • Success
server_ip [string] - server that handled the ticket request.
handle_time [float] - The amount of time spent processing your request