Download URL is not working

I have written a custom job to download the video from zoom to my local server using v1 API (JWT authentication) and transfer it to amazon s3. It was running properly till Feb 29. Since yesterday, if I try to fopen the download URL, it is getting downloaded with 0 bytes file size on my server. Whereas, the same download_url, if i open it on browser, it is downloading the full file size. Even curl is giving the same issue. I don’t know what is causing this. Can someone help me on this ?

1 Like

Hey @te_zoom.admin,

If you are using our v1 APIs, that could be the reason.

Please use our v2 APIs.

Thanks,
Tommy

If v1 was the issue, then I would not have got the download url right ? I am able to get the recording lists of my account. Issue is with downloading the recording file to my server.

Hey @te_zoom.admin,

Are you getting an error when trying to download the recording file to your server?

Did your Cloud Recording authentication settings change?

Also I would highly encourage upgrading to V2 as V1 will stop working next month.

Thanks,
Tommy

Sure. We are in the process of updating to v2. Even I tried with v2 for the download url in my local. It is giving me the same issue. In my recording settings page, I didn’t restrict the download option, anyone can access it. It was working fine till Feb 29, from yesterday it started failing. What could be the reason ?

Hey @te_zoom.admin,

Are you getting any error? Can you share your download_url with me privately so I can debug.

Thanks,
Tommy

It’s not giving any error. When try to download using fopen or curl, it is getting downloaded on local machine with file size zero bytes whereas in browser it is downloading the full file.

Hey @te_zoom.admin,

Can you private message me the download_url so I can debug?

Thanks,
Tommy

Hi Tommy,

I have sent you the API response. In that, mp4 download url, if try to download in my server using curl or fopen, I’m getting the file with zero bytes file size. Whereas same I am able to download via browser.

3 Likes

Hey @te_zoom.admin,

Thanks for sending me the API response. I will debug and communicate with you in the private message.

-Tommy

This appears to be an issue with my application as well. Please update me with any progress made to resolve this issue. Thanks!

1 Like

Hey @alex.jezior, thanks for posting and using Zoom!

We are looking into the issue and will get back to you asap. (ZOOM-141270)

Thanks,
Tommy

1 Like

Hey @te_zoom.admin, and @alex.jezior,

Here is the following note from our cloud recording engineers:

“I want to know how the customer downloaded the cloud recording through the curl command, I can download the cloud recording through curl -L -v -O download link, you can advise them to try again.”

Can you try again, and if there are any more details you can provide like the CURL command, that would be helpful.

Thanks,
Tommy

@tommy Thanks for getting back.

I just want to mention that we are using the v2 api, and the issue started the same day @te_zoom.admin mentioned; which appears to be the 1st of the month.

We use a standard php method, fopen, to retrieve the filestream and store it to a disk locally managed.

In our debugging attempts we used curl to make the request via Insomnia. The request in Insomnia proved to come back with content. Exporting this curl request to php and implementing it on our servers returns a blank response, with no errors.

Here’s a sample of the exported curl request:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://xxxxxxx.zoom.us/rec/download/xxxxxxxxxxxxxxxxxxxxxx",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

I’ve attempted debugging requests from yesterday and the output is still the same today.

1 Like

Hey @alex.jezior,

Thank you for sharing these details! I will pass these on to our engineers, and keep you updated.

Thanks for your patience,
Tommy

Hey guys, we are having this problem too since the start of month. Using v2, the file size is 0 Bytes. We are having complaints from customers.

¿have you found the problem? ¿any ETA?

Native file_get_contents($downloadURL) does not work. I think the problem is when doing stream ¿maybe Zoom disabled this option?

Using GuzzleHttp\Client it does work with stream = false

$client = new Client([
    // 'stream'          => true,
    'stream'          => false,
    'allow_redirects' => true,
    'cookies'         => true
]);

$response = $client->get($downloadURL);
$file = $response->getBody()->getContents();

To Zoom: ¿have you disabled streaming recordings?

2 Likes

Hey @tommy, I’m also getting the same issue.
I was using the copy($videoUrl, $fileUrl) and it was working fine all these days and now stopped working. Always 0 bytes video.
Please help what’s the problem.

1 Like

Hey @Emanuel_Aguirre, and @videosocials,

I have passed the info you shared to our cloud recording engineers. We are working to resolve the issue and will keep you updated.

Apologies for the inconvenience,
-Tommy

This is the resolution my team and I decide to go with as well. No time to wait around for a fix and I advise anyone else coming across this issue to use this method until Zoom figures things out on their end.

2 Likes