Zoom Cloud recording “download_URL” working only in browser

,

Hi Shravan
Did this work for you. I am having the same problem. Download_url returns a html response and not the recording (using Node.js, JWT)
Regards

No it is not resolve,so I’m using webhook to fix that problem

Hey @ankit, @shoeb, @shravan,

Can you please share the code you are using to download the file?

Please share steps to reproduce the issue.

Thanks,
Tommy

Hey @tommy,

This is my code.

$destination = $dir . "/movie.mp4";
$authorization = 'Authorization: Bearer ' . $token;

$url = $url . '?access_token=' . $token;
$fp = fopen($destination, "w");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);   
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);    
curl_setopt($ch, CURLOPT_FILE, $fp);

curl_exec($ch);
fclose($fp);

url and token is download_url and download_token in Recording Completed

And result:
{“status”:false,“errorCode”:401,“errorMessage”:“Forbidden”}

I have same issue.

Can anybody help me?

1 Like

Hey @karasiov, @HyoSeong,

Can you try just using the ?access_token=token query param and not the Authorization Bearer?

That should fix the issue.

Thanks,
Tommy

1 Like

Thanks for reply, @tommy
I changed my code

$destination = $dir . "/movie.mp4";
//$authorization = 'Authorization: Bearer ' . $token;
$url = $url . '?access_token=' . $token;
$fp = fopen($destination, "w");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FILE, $fp);

Then the result is

Access denied

But cURL command works, postman works too. ( download_url?access_token=somelongtoken )
(This is weird)

Temporary I use Get Meeting Recordings API, this API return download_url too,
But It doesn’t need any token to download.

Hey @HyoSeong,

Can you try allowing redirects in your request to download the file:

Does it have the token included?

Thanks,
Tommy

not OP but this fixed my 401 / getting HTML response. thanks!

1 Like

Thanks for sharing @mokutsu! :slight_smile:

-Tommy

For clarify the correct curl command that worked for me is

curl -L -X GET <download_url_from_meeting_api>?access_token=<jwt_token>

The docs are confusing on this one as <download_path> is no where to be found

1 Like

@tommy, @mokutsu
I have the same issue I am able to download using a browser when I am logged in the Download url plus the JWT token as a query parameter works.
But when I do the same using my php code using curl it gives password required page in return.
@tommy. I see that there are multiple questions on this.
I am guessing you may have something that worked end to end. So please post full code and steps that you guys have tested and work

  1. Download the file using curl in PHP not command line shell
  2. Get the actual file name instead of specifying one.

I have code for all this but I can not get past the password required using PHP curl.

Any help will be greatly appreciated.

Srinivas

Hey @psuhas,

Thanks for sharing and your feedback. We will use it to improve our docs.

-Tommy

Hey @ssnukala,

Make sure of, add the JWT Token as a query param and not as a request header:

download_url?access_token=JWT_TOKEN_HERE

I see I have replied to a few of your posts already in this thread, let’s continue this discussion there:

Let me know if that helps!

Thanks,
Tommy

you are trying to open the destinarion with write permission, please try with “r” instead of “w” like this:

$fp = fopen($destination, "r");

1 Like

Thanks for sharing that tip @Emanuel_Aguirre! :slight_smile:

-Tommy

Hi @tommy when I am trying to download the recording the I get the 301 error ( MOVED PERMANENTLY ).

I am trying to download it via ruby code

please find the code snippeduri= URI(url)
http = proxy.start(uri.host, :use_ssl => false , :verify_mode=>OpenSSL::SSL::VERIFY_NONE)
req = Net::HTTP::Get.new(uri,initheader = header)
response = http.request(req)

when I inspect this response it gives 301 error please suggest how to resolve it

Hi @itsupportgl,

Typically, a 300/301 error on recording downloads means the recording was deleted or no longer exists. Can you share the recording ID or the Meeting ID so I can take a closer look? If you happen to have a screenshot of the recording reflected in the UI as well, this would be helpful.

Thanks,
Will

Hi, I currently need to use api to download recording.
I use spring boot, the problem I got is I don’t know what the return data type of the tutorial api is:
This is the api I use {download_url} /? Access_token = download_token

The info I got from the recording complete event message

Hey @share.schoolonair202,

Please see our documentation on the Recording Completed Webhook for more information on using the download_url with the download_token:

image

If you have questions, please submit a new topic on the forum.

Thanks,
Max