Explicit

Add transformations to an existing video in Cloudinary

by Shirly Manor

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
<table>
<tr>
  <td>Cloud Name <font color=red>*</font></td>
  <td><input type="text" id="cloud_name"></td>
</tr>
<tr>
  <td>API Key <font color=red>*</font></td>
  <td><input type="text" id="api_key" ></td>
</tr>
<tr>
  <td>Api Secret <font color=red>*</font></td>
  <td><input type="text" id="api_secret" ></td>
</tr>
<tr>
  <td>public id <font color=red>*</font></td>
  <td><input type="text" id="public_id"></td>
</tr>
<tr>
  <td>new public id <font color=red>*</font></td>
  <td><input type="text" id="transformation"></td>
</tr>
</table>
<button id="submit">Process</button><br/>
<div id="response"></div>

JavaScript

$(function(){
	$('#submit').click(function(){
  	var cloud_name = $('#cloud_name').val();
    var api_key = $('#api_key').val();
    var api_secret = $('#api_secret').val();
    var public_id =  $('#public_id').val();
    var transformation =  $('#transformation').val();
    var timestamp = parseInt(Date.now()/1000);
    data = {
      timestamp: timestamp,
      public_id: public_id,
			type: "upload",
			eager: transformation,
			eager_async: true
    }
    var params_to_sign = [];
    for (var d in data) { params_to_sign.push([d, data[d]].join("=")) }
    var str_to_sign = params_to_sign.sort().join("&").concat(api_secret);
    var signature = CryptoJS.SHA1(str_to_sign).toString(CryptoJS.enc.Hex);
    data.api_key = api_key;
    data.signature = signature;
		$.ajax({
			type: 'POST',
      url: `https://api.cloudinary.com/v1_1/${cloud_name}/image/<cloud_name>/<resource_type>/rename`,
      data: data,
      success: function(data) {
        console.log(data);
        for (var key in data){
        	$('#response').append(
         		`<strong>${key}:</strong> ${key == "eager" ? `${data[key][0].status} - ${data[key][0].url}` : data[key]}<br/>`
	        );
        }
      },
      error: function(error) {
        console.log('there was an error');
      }
    });
  })	
})