Create media
Headers are set up according to Authentification pre-requisite specifications.
In this example, the creation of the full media entity is performed in 2 steps:
- Creation of thumbnails
- Creation of the Media
Creation of thumbnails
We admit the $media_thumbnails variable contains an array of pictures urls representing the media entity.
The MediaElement creation request needs at least a location (url of the thumbnail image).
On creation success, we store the created MediaElement's id in an array called $thumbnailsMediaElementsIDs which will be used for the Media creation request.
Creation of the Media
The Media creation request takes a name, a mime type (ex.: video/x-custom if this media is not generic and can be used only with you player), optionnally a xkey (if custom key is needed to instanciate the media in your player) and your thumbnails array just created.
If you want to create a noncustom Media entity such as video/mp4, which can be read throught multiple web players, you need to create MediaElements like for the thumbnails but with the video/mp4 streams and add it the request in the "assets" field.
On success, you will get a Media entity.
//$media_thumbnails: array of thumbnails jpeg for example
$thumbnailsMediaElementsIDs = array();
$createdMediaEntityID = null;
// Create all media elements which will be used as thumbnails for the media
foreach($media_thumbnails as $thumbnail_url) {
// Get cURL resource
$curl = curl_init();
// Server EndPoint
$url = 'https://services.adways.com/media-element';
$method = 'POST';
$fields = array();
$fields['location'] = $thumbnail_url;
$options = array();
$options[CURLOPT_RETURNTRANSFER] = 1;
$options[CURLOPT_URL] = $url;
$options[CURLOPT_SSL_VERIFYPEER] = false;
$options[CURLOPT_POST] = 1;
if(!empty($fields)) $options[CURLOPT_POSTFIELDS] = json_encode($fields);
curl_setopt_array($curl, $options);
// $access_token: your access token, from your platform
// X-Token-Provider: to identify the source of the given token
$headers = array();
$headers[] = 'Authorization: Bearer ' . $access_token;
$headers[] = 'X-Token-Provider: ' . $tokenProviderConstant;
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers);
// Send the request & save response to $response
$response = json_decode(curl_exec($curl), true);
// Save Curl Info request
$curlInfos = curl_getinfo($curl);
// Close request to clear up some resources
curl_close($curl);
if($curlInfos['http_code'] == 201) {
$thumbnailsMediaElementsIDs[] = $response['id'];
}
}
// Get cURL resource
$curl = curl_init();
// Server EndPoint
$url = 'https://services.adways.com/media';
$method = 'POST';
$fields = array();
$fields['name'] = $media_name;
$fields['xkey'] = $media_xkey;
$fields['mime'] = $media_mime;
$fields['thumbnails'] = $thumbnailsMediaElementsIDs;
$options = array();
$options[CURLOPT_RETURNTRANSFER] = 1;
$options[CURLOPT_URL] = $url;
$options[CURLOPT_SSL_VERIFYPEER] = false;
$options[CURLOPT_POST] = 1;
if(!empty($fields)) $options[CURLOPT_POSTFIELDS] = json_encode($fields);
curl_setopt_array($curl, $options);
$headers = array();
$headers[] = 'Authorization: Bearer ' . $access_token;
$headers[] = 'X-Token-Provider: ' . $tokenProviderConstant;
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers);
// Send the request & save response to $response
$response = json_decode(curl_exec($curl), true);
// Save Curl Info request
$curlInfos = curl_getinfo($curl);
// Close request to clear up some resources
curl_close($curl);
if($curlInfos['http_code'] == 201) {
$createdMediaEntityID = $response['id'];
}
For more informations: API Media & API MediaElement
In the example we store the Media entity id in a variable called: $createdMediaEntityID. This Media Entity id can be used to create or update an HVProject in the "media" field.