Search code examples
javascriptapigoogle-apps-scriptvimeovimeo-api

Rename video with Vimeo API


I'm looking to rename my videos with the Vimeo Api and Google Apps Script. I succesfully have the API moving videos into folders (using pretty much identical syntax to below) but can't for the life of me get the renaming working. It's extremely frustrating.

Here is the reference and below is my code - it just returns the video info as if I'm not trying to change anything, even though I'm clearly using a 'PATCH' call, not a 'GET'. Where am I meant to put the 'name' parameter??

function renameVideo(){

  var newName = 'thisismynewname';
  var url = 'https://api.vimeo.com/videos/_________?name=' + newName;

  var options = { 
    'method': 'PATCH',
    'muteHttpExceptions': true,
    'contentType': 'application/json',
    'headers': {
      'Accept':'application/vnd.vimeo.*+json;version=3.4',
      'Authorization': "Bearer " + token,
    },
    //Note that I've also tried 'name' : 'thisismynewname' here too
  };

  var response = UrlFetchApp.fetch(url, options);  
  Logger.log(JSON.parse(response).name); //it just returns the *current* name not the new one, and doesn't change it

}

Solution

  • When I saw the official document of Edit a video, it seems that name is included in the request body. So how about this modification?

    Modified script:

    function renameVideo(){
      var newName = 'thisismynewname';
      var url = 'https://api.vimeo.com/videos/_________';  // Modified
    
      var options = { 
        'method': 'PATCH',
        'muteHttpExceptions': true,
        'contentType': 'application/json',
        'headers': {
          'Accept':'application/vnd.vimeo.*+json;version=3.4',
          'Authorization': "Bearer " + token,
        },
        'payload': JSON.stringify({name: newName})  // Added
      };
    
      var response = UrlFetchApp.fetch(url, options);  
      Logger.log(JSON.parse(response).name);
    }
    
    • The content type is application/json.

    Reference: