This API creates a Playlist of live streams and/or VOD files to be played on a Channel at a scheduled time. The playlist can be configured to play through its list once, or to loop continuously.
DVR applications additionally can set the # of chunks to keep in their playlist and how long to keep the dvr session alive by providing a 'playlist_count' and 'playlist_timeout' or disable dvr using 'enable_dvr'. To edit the dvr settings see stream.dvrsettings api.
You can track viewer session data on your channel from Google Analytics (GA) by providing your GA key. When creating or updating a playlist, all playlists on the same channel will have their GA keys updated.
$request = array( 'command' => 'channel.addchannel', 'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE', 'timestamp' => time(), 'cdn' => 158, 'app' => 'jb-chorigin', 'name' => 'My first playlist', 'stream' => 'my_channel_stream_name', 'repeat' => 1, 'active' => 0, 'scheduled' => '2014-10-13 15:00:00', 'videos' => array( // optional 0 => array( 'video' => 'sestore1/username/path/play_first.mp4', 'start' => 0, 'length' => -1, 'sort_order' => 1 ), 1 => array( 'video' => 'sestore1/username/path/play_second.mp4', 'start' => 0, 'length' => -1, 'sort_order' => 2 ), ), // DVR settings 'playlist_count' => 4, // optional 'playlist_timeout' => 600, // optional 'enable_dvr' => true, // optional //Google Analytics 'ga_key' => '' //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); }
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 | ||||||||||
name | [REQUIRED] [string] - A descriptive name given to the playlist. | ||||||||||
stream | [REQUIRED] [string] - Name of the Channel on which the playlist will be shown. | ||||||||||
repeat | [REQUIRED] [int] - Configures how the playlist should be
handled when it is finished.
0 - Channel will shutdown, until the next scheduled playlist. 1 - Playlist will loop continuously, until a new playlist is scheduled. |
||||||||||
active | [REQUIRED] [int] - Marks the playlist to be played when the
scheduled time comes due, or at the next interval if no scheduled
time is set.
1 - active 0 - inactive |
||||||||||
scheduled | [OPTIONAL] [string] - The date and time that the playlist should be shown on the Channel. If not provided and no other playlist has been scheduled, this playlist will play automatically. | ||||||||||
app | [OPTIONAL][string] - Application name, defaults to jb-chorigin | ||||||||||
videos | [OPTIONAL] [array] - Array of Videos to be added to the
playlist
| ||||||||||
playlist_count | [OPTIONAL] [int] - How many chunks to have on the manifest for each rendition. Number must be between 4 and [Default: 4] | ||||||||||
playlist_timeout | [OPTIONAL] [int] - How many seconds to keep the playlist after the stream disconnects. Value must be between 60 and 1200 [Default: 600] | ||||||||||
enable_dvr | [OPTIONAL] [boolean] - Enables dvr settings when true, disables dvr when false. Only valid for DVR enabled ScaleEngine Accounts. [default true] | ||||||||||
ga_key | [OPTIONAL] [String] - The Google analytics (GA) key to be used when a stream or channel is viewed. This key is used to capture viewer data and send it to the associated GA account. GA Keys saved to a channel will be applied to all playlists on that channel, and if no key is provided the default GA key for the your ScaleEngine account will be used. (default "") | ||||||||||
timestamp | [REQUIRED] [int] - The unix timestamp of your request, used to prevent authenticated API requests from being replayed |
{ "message": "channel created", "status": "success", "id" : 1, "videos_not_added" : [{ 1 : "#1: sestore1/username/path/play_second.mp4 - video name invalid", }], "handle_time":"0.3795 seconds" }
message | [string] - Debugging message |
status | [string] - "success" or "failure" |
id | [int] - Unique ID of the Playlist |
videos_not_added | [array] - If a VOD file or stream name is invalid an array will be returned with the reasons they could not be added. The array key will be associated to the sort_order value that was set, and the value will be an error message. |
handle_time | [float] - The amount of time spent processing your request |