Download zoom meeting recording programatically

Hi @raj1 each meeting instance contains a Meeting UUID (unique identifier) which can be used in the path of the request instead of the Meeting ID. To get a list of ended meeting instances, use the Past Meeting Instances API:

Any update on when we can expect Oauth token to work for downloading recordings.
I am able to make it work with JWT workaround but it is not good for production scenario as suggested in doc.

Hi Tommy, I am having an issue to download the video, I do not have the download_token of past meetings, and I tried to download it like you mentioned before, with this download_url?access_token="+token but I got a request time out, what could I be doing wrong? thanks Edy

Hey @naveenkumarreddy.mal,

Please do not double post. I will reply to you here:

Thanks,
Tommy

Hey @edmail,

Can you share your code snippet of downloading the recording so I can help debug?

Thanks,
Tommy

Hi,
this https://api.zoom.us/v2/meetings/86528535989/recordings?access_token={GWT_TOKEN} works and returns the JSON response, but how can I get the files?
I tried: curl {download_url} but it returns HTML page?!
How can I get the exact file? is it mp4?
Regards,

1 Like

Hi,
I figured out that the recordings are shared with a passcode for each, when disabling this I could get the files correctly.
1- Is there a way to pass the passcode for the download_url without disabling the option?
2- Where can I find this passcode? didn’t appear in the JSON response of the recording?

Regards,

Hi Tommy, sorry for my delay,
I am using Nodejs to download it but its just looping and stops, I also tried with request-promise module and the same issue, and with postman the application just crash after a while and does not download the files.
below is my code

var zoomapiurl = download_url+"?access_token="+token;

var options = {
  method: "GET",
  uri: zoomapiurl,
  qs: {
      status: 'active'
  },
  headers: {
    'User-Agent': 'Zoom-api-Jwt-Request',
    'content-type': 'application/json'
  }

};

const file = fs.createWriteStream(“recordigs/downloadfile.mp4”);

const download = (url, dest, cb) => {
const file = fs.createWriteStream(dest);

const request = https.get(url, (response) => {
// check if response is success
if (response.statusCode !== 200) {
return cb('Response status was ’ + response.statusCode);
}

  response.pipe(file);

});

// close() is async, call cb after close completes
file.on(‘finish’, () => file.close(cb));

// check for request error too
request.on(‘error’, (err) => {
fs.unlink(dest);
return cb(err.message);
});

file.on(‘error’, (err) => { // Handle errors
fs.unlink(dest); // Delete the file async. (But we don’t check the result)
return cb(err.message);
});
};

thanks

Hey @platform,

You can download password protected recordings programmatically by adding the JWT Token as a query param to the download url.

download_url?access_token=JWT_TOKEN_HERE

Thanks,
Tommy

Hey @edmail,

Which recording file are you trying to download?

Thanks,
Tommy

Hi Tommy,
I tried different files, mp4 format and did not work.
Edy

Hey @edmail,

Can you email a download_url that is not working to developersupport@zoom.us so we can look into the issue further?

Thanks,
Tommy

Hi,
It will be nice to add MD5 or SHA1 in webhook data or listing, to confirm the download is ok

Thanks

Hey @ktremblay,

Thanks for this suggestion—are you using the verification token received in our webhooks to verify requests at the moment? While this will be your best bet for now, I’d also encourage you to post the suggestion for MD5 of SHA1 in our #feature-requests channel, if you’re so inclined. :slight_smile:

Thanks,
Will

1 Like

Download zoom meeting recording using Salesforce callout
Hello Tommy, Greetings!
I am trying to download the cloud recording in Salesforce, but I am getting response as below:
{“status”:false,“errorCode”:401,“errorMessage”:“Forbidden”}

I have set the endpoint as below:
“download_url?access_token={JWT Token}”

Can you please assist me with the above issue asap?

Hey @nehapramoddave,

Thank you for reaching out to the Zoom Developer Forum. Please send an email to developersupport@zoom.us with a link to this thread. In that email, please include the meeting id of the recording you are trying to access and the token that you’re using.

I’ll be sure to investigate further with that information.

Thanks,
Max

Hello,
I tried to get the file using downloadUrl?access_token=sometoken programatically in nodejs

i used axios.get to fetch the file, but not able to get the file content and detailsin proper format.
it returns res.data in some encoded format

Can you help me how to get the recording file with proper extension that play after downloading programatically, it works fine from browser.

Hello, Any updates on this?

@events7 My apologies for the delay here and thank you for sharing more detail. With axios, I think yo have to set responseType to blob in the request options. Here’s a post going over that:

Can you please refer any link. Zoom deprecate JWT token for passing in url’s