Zoom Download URL Issue

Description
Hello, it seems like the Zoom Download URL does not work when calling it via a python script.
It seems like this stopped working around March 25th and I was able to pinpoint the issue that Zoom might be blocking or disabling the ability to download recording files programmatically. I’m unable to find anything on the Dev website that is helpful to resolve this issue.

Error
Only downloading 24kb of the Zoom recording

Code
response = requests.get(download_url, stream=True)
with open(full_filename, ‘wb’) as fd:
for chunk in response.iter_content(chunk_size=512):
fd.write(chunk)

Additional context
-using v2 API
-The download URL works by copy/pasting it in a browser
-Was able to replicate the issue on our Server and Locally
-No code changes were done to the script since late 2019

Hey @nadrian,

What token are you using to download the recording? Is this the only instance you are seeing of downloads not working via python script?

Thanks,
Tommy

@tommy We’re using API Token that’s been created from JWT. This is the only application that we use this functionality. Other API usages are related to Zoom Voice and License Management Script.
The odd thing about this issue, if you rip out the download URL from the script and paste it into a browser, it works perfectly fine. However, if you try to run the code mention above, I get a 200 code, then follow by chunk download with no errors. After downloading I only get a 24kb mp4 file

Hey @nadrian,

Do you have the Viewers can download setting enabled? If not, try enabling it and see if the download URL works.

Thanks,
Tommy

Hi @tommy,

That setting is enabled in our Zoom company account

Only changes that were made recently were:

  • We made passwords required for all user recordings created after March 25th. ( Would this cause the issue? Even though you can copy the Download URL and place it in a browser and download the file manually? )
  • We also enforced cloud recording auto-delete after 60 days.

Hey @nadrian,

Can you try the following authentication method when downloading the cloud recording:

download_url?access_token=JWT_TOKEN_HERE

Let me know if that works!

Thanks,
Tommy

Hi @tommy

It looks like that worked!! So Due to setting the password required in all Zoom Meetings, we need to pass the access_token now to download the file?

The new code

new_download_url = download_url +'?access_token=' + zoom_access_token
try:
    response = requests.get(new_download_url, stream=True)
except requests.exceptions.ConnectionError as err:
    print repr(err)
    response = requests.get(new_download_url, stream=True)
try:
    with open(full_filename, 'wb') as fd:
        for chunk in response.iter_content(chunk_size=1024 * 8):
            if chunk:
                fd.write(chunk)
                fd.flush()
                os.fsync(fd.fileno())
    return True
except Exception as e:
    print(e)
    return False

Hey @nadrian,

Yes, since you have passwords on your cloud recording, now you need to attach the JWT Token to download, or the download_token from the recording completed webhook.

Thanks,
Tommy

  • Can you use jwttoken when downloading videos?
  • Can you use jwttoken when downloading videos???/

Hey @baohanhai,

Yes you can:

download_url?access_token=JWT_TOKEN_HERE

Thanks,
Tommy