Download URL is not working

Marking @Emanuel_Aguirre’s post as the solution for a work around while we work on a fix.

Thanks,
Tommy

2 Likes

Hey @alex.jezior, @videosocials, @te_zoom.admin, @Emanuel_Aguirre,

Please see this message from our engineers:

“Seems like the difference between our working curl download and not working curl download is the option ‘-L’, which is used to support redirect.”

I also checked the php code you pasted above, a redirect flag was missed.

    `CURLOPT_FOLLOWLOCATION => true,     // follow redirects `

Try running curl with -L or add CURLOPT_FOLLOWLOCATION option in their php code.

Let me know if this fixes the issue.

Thanks,
Tommy

Hi Tommy, I had that option implemented along with cookies, I think that is not the problem but instead the issue is when trying to stream the file.
I can tell you that it is a common practice to stream large files instead of fully downloading them into memory or disk.
This approach allows to send the file directly from Zoom to AWS s3 without having the file in our middle app server.

Hope it makes sense and your team fix this soon. Let me know if I need to open a new forum topic for this stream issue.

3 Likes

Hey @Emanuel_Aguirre,

Thanks for these additional details. I will pass this along to our engineers and we will get back to you.

Thanks,
Tommy

Hey @te_zoom.admin, @alex.jezior, @videosocials, @Emanuel_Aguirre,

Please try adding the redirect flag like I stated above and let me know if that fixes the issue.

Thanks,
Tommy

Hi All,
Any update in this? Is it working now? We also faced same issues like:
zero size downloaded files, connection timed out errors, etc.

Thanks.
Regards,
Selva

Hey @selva.iyyamperumal,

Please see my post above for the current solution.

Thanks,
Tommy

Hi Tom,
We are using node server and using Zoom API to download from Zoom cloud. Please let us know if you need more info.

Looks like our customers having problem like below (from our customers/user admin):
"She records and gets the email that the video is recorded from zoom (however that is also taking longer then normal so this could be a zoom issue), when she clicks that link it says file not found in zoom. "

Just informing you if it could help any.

Thanks.
Regards
Selva

Hi Tom,
Connection reset error:
2020-03-13 10:44:03 -07:00: download url = https://zoom.us/rec/download/… for email=
2020-03-13 10:49:34 -07:00: Error: read ECONNRESET

Please check.
Thanks.
Regards,
Selva

Hey @selva.iyyamperumal,

Thanks for sharing this.

More info would be great, including your code snippet.

Can you please share the recording URL with me so I can debug? Feel free to private message it to me.

Thanks,
Tommy

Hi Tom,
Please check your private message. Given both code and the recording Url.

Thanks.
Regards,
Selva

1 Like

Will do!

Thanks,
Tommy

Hi Tom,
Still we have issues in downloading files from Zoom cloud. We are getting lots of ECONNRESET error. Not happening all the meetings though.

2020-03-28 06:13:05 -07:00: download url =
2020-03-28 06:16:46 -07:00: Error: read ECONNRESET

2020-03-26 22:33:42 -07:00: Callback - from Zoom
2020-03-26 22:34:42 -07:00: Error from Zoom = Error: socket hang up

and also,
our TCP sockets are in CLOSE_WAIT state

We are getting all these errors till now today. Because of that either we could not download the files or could not download entire file.

Thanks.
Regards,
Selva

Hey @selva.iyyamperumal,

We will continue looking into the issue and keep you updated.

Thanks,
Tommy

Hi Tom,
Please share the timeline to fix this issue, if any.

we have been facing this issue more than 4 weeks now. We need to decide whether we need to continue run our connectors or not.

Our customers are not happy to continue the service. Hope you understand. Please escalate the issue.

Thanks.
Regards,
Selva

Hey @selva.iyyamperumal,

Just pinged engineering again to look into this. Apologies as we are very busy, I will keep you updated.

Thanks,
Tommy

Hello, Tom!

Is there any update?
We continue to get 502 on download url.

Server error: GET https://{name}.zoom.us/rec/download/{code} resulted in a 502 Bad Gateway response:

502 Bad Gateway

502 Bad Gateway

(truncated...)

Thank you in advance!
Best Regards,
Evgeniya

Hi @tommy - Adding another variation to the general problem of download URLs not working below. The accepted answer of using a non-streaming approach doesn’t work for me.

Problem : Files do not fully download. The file size after using the download URL does not match the size of the recording on Zoom servers – files are always around 15% smaller than on the server. As a result, I cannot play them back once downloaded. Applies to both M4A and MP4s.

Interesting Details

  • Only affects my more recent recordings. The download URLs from March 2020 download in full successfully.
  • Pasting the download URL into the browser works - the file is downloaded completely

Examples
Below are all the curl & Python attempts I’ve tried. They all result in the same thing - the file is only partially downloaded.

Curl:

curl -L -v -o MyRec.m4a
curl -L -v -o MyRec.mp4

Python (3.7):

import requests
import shutil
import urllib.request
import wget


def wget_test(url, filename):
    wget.download(url, filename)

def download_urllib(url, filename):
    urllib.request.urlretrieve(url=url, filename=filename)

def download_chunk(url, filename):
    with requests.get(url, stream=False) as r:
        r.raise_for_status()
        with open(filename, 'wb') as f:
            for chunk in r.iter_content(chunk_size=8192):
                if chunk:  # filter out keep-alive new chunks
                    f.write(chunk)
                    # f.flush()
    return filename

def download_file_stream(url, filename):
    with requests.get(url, stream=True) as r:
        with open(filename, 'wb') as f:
            shutil.copyfileobj(r.raw, f)
    return filename

def download_file_nostream(url, filename):
    with requests.get(url, stream=False) as r:
        with open(filename, 'wb') as f:
            shutil.copyfileobj(r.raw, f)
    return filenam

Hey @nate123, @evgeniya.kuzina,

Can you please try adding the JWT Token as a query param to the end of the download url?

download_url?access_token=JWT_TOKEN_HERE

https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingget

Thanks,
Tommy

1 Like

Hey @tommy - Adding the JWT token to the download URL indeed fixes my issue of partial downloads. Thanks for quick reply!

1 Like