Control Panel — API Documentation

Welcome to the new Control Panel. If you are having trouble with any functionality, or have any feedback, we would appreciate a support ticket. Additionally, you can continue to use the old control panel until it is retired in March 2019.

sevu.retrievestreamuser

Retrieves the stream settings and origin url for a stream

Example Request (JSON)


    

Example Code (PHP)

    /* Request stream by ID */
    $request = array(
        'command' => 'sevu.retrievestreamuser',
        'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE',
        'timestamp' => time(),
        'cdn' => 158,
        'streamuser_id' => 1,
    );
    
    /* Request stream by app, stream, and user */
    $request = array(
        'command' => 'sevu.retrievestreamuser',
        'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE',
        'timestamp' => time(),
        'cdn' => 158,
        'app' => 'jb-origin',
        'stream' => 'mystream',
        'user' => 'username_1',
    );
    
        //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
streamuser_id [REQUIRED] [int] - The Stream User ID
app [REQUIRED] [string] - The ScaleEngine Application name. *Required for accessing without a streamuser_id
stream [REQUIRED] [string] - Stream name that the user was given permission to publish to. *Required for accessing without a streamuser_id
user [REQUIRED] [string] - Username provided for authentication when publishing to this stream. Null if authentication is disabled. *Required for accessing without a streamuser_id

Example Result (JSON)

    {
    "message": "Stream User Found",
    "status": "success",
    "stream": {
        "id" : 1,
        "cdn_id" : 158,
        "app" : "jb-origin",
        "stream" : "mystream",
        "user" : "username_1",
        "record" : 1,
        "record_type" : "stream",
        "segment_type" : "size",
        "segment_value" : 10,
        "save_folder" : "mystream/user/",
        "origin_url" : "rtmp://jb-origin.secdn.net/jb-origin/live",
        "playback_url " : "https://jb-live.secdn.net/jb-live/play/mystream/playlist.m3u8",
    },
    "handle_time":"0.3795 seconds"
    }
    

Result Fields

message [string] - Debugging message
status [string] - "success" or "failure"
handle_time [float] - The amount of time spent processing your request
stream [array] - Array of Stream Users
id [int] - Unique ID of the stream
app [string] - the ScaleEngine Application name
stream [string] - Stream which the user has permission to publish.
user [string] - Name given to the user to publish with.
Record Settings
record [boolean] - Auto Record when a stream is published. When disabled, recording can be started by calling recording.start
record_type [string]
  • "stream" - recordings will append the date the recording finished onto the recorded file name.
  • "event" recordings will append the date the recording start to the recorded file name, and a "pt#" if necessary
segment_type [string] Segmented recording will automatically split files based on the type selected.
  • "duration" - split recordings based the a number of minutes provided.
  • "size" - split recordings based the a number in MBs provided.
  • "schedule" - split recordings based the a crontab expression.
  • "disabled" - recordings will run until the stream is unpublished
segment_value the segment_value data type is determined by which segment_type you choose.
  • Duration [int] - # of minutes
  • Size [int] - # of MBs
  • Schedule [string] - valid crontab expression (ex. '*/15 * * * *' every 15 minutes)
save_folder [String] - Defines the destination folder used when the recording is saved.
origin_url [string] - Connection url for the encoder. Note this does not include the stream name.
playback_url [string] - Stream playback url