Control Panel — API Documentation

Documentation

Channel.nowplaying

The Now Playing API can be used to find out the current position of the playlist being played on a channel. The result will contain the previous, current, and next video. Optionally, user defined description and titles for those items can be requested to be returned as well.

Example Code (PHP)

    $request = array(
        'command' => 'channel.nowplaying',
        'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE',
        'timestamp' => time(),
        'cdn' => 158,
        'app' => 'jb-chorigin', 
        'stream' => 'my_channel_stream_name',
        'appinst' => 'live'                 /* optional */
        'user_desc' => 1                    /* optional */
        'user_title' => 1                   /* 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 [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
app [OPTIONAL][string] - Application name, defaults to jb-chorigin
stream [REQUIRED] [String] - The name of the channel running an active playlist
appinst [OPTIONAL] [String] - The name of the ScaleEngine Application Instance. default value is 'live'
user_desc [OPTIONAL] [Int] - Flag to enable retrieving user set descriptions for the playlist items.
user_title [OPTIONAL] [Int] - Flag to enable retrieving user set titles for the playlist items.

Example Result (JSON)

    {
    "message": "Now Playing",
    "videos": [{
        "previous": 'sestore1/username/path/play_first.mp4',
        "current":'sestore1/username/path/play_second.mp4',
        "next": 'sestore1/username/path/play_third.mp4'
        }],
    "descriptions": [{
        "previous": 'My First Video',
        "current":'My Second Video',
        "next": 'My Third Video'
        }],
    "titles": [{
        "previous": 'Video 1 title',
        "current":'Video 2 title',
        "next": 'Video 3 title'
        }],
    "started_on": "2014-11-10 15:00:00",
    "video_id" : 123,
    "sort_order": 1,
    "channel_id": 100,
    "status": "success",
    "message": "Now Playing"
    "status": "success",
    "handle_time":"0.3795 seconds"
    }
	

Result Fields

message [string] - Debugging message
videos [Array] - The stream name or path of the VOD. VOD examples look like like: sestore3/username/path/filename.mp4
previous [String] - The playlist item that last played
current [String] - The currently playing item
next [String] - The next item to be played
descriptions [Array] - The user defined descriptions for the playlist item. This field will only appear if "user_desc" field was sent with the request.
previous [String] - descriptions of the last played item
current [String] - descriptions of currently playing item
next [String] - descriptions of next item to be played
titles [String] - The user defined titles for each of the playlist items. This field will only appear if "user_title" field was sent with the request.
previous [String] - title of the last played item
current [String] - title of currently playing item
next [String] - title of next item to be played
started_on [String] - The date and time that the current playlist item was started.
sort_order [Int] - The current videos sort order in the playlist.
channel_id [Int] - The unique ID of the playlist.
video_id [Int] - The unique ID of the playlist video.
status [string] - "success" or "failure"
handle_time [float] - The amount of time spent processing your request