# Zoom Download URL Issue

**URL:** <https://devforum.zoom.us/t/zoom-download-url-issue/11904>\
**Category:** API and Webhooks\
**Created:** [April 7, 2020, 5:22pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904 "2020-04-07T17:22:21Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![nadrian](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/nadrian/32/5323_2.png) [@nadrian](https://devforum.zoom.us/u/nadrian)\
**Post date:** [April 7, 2020, 5:22pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/1 "2020-04-07T17:22:21Z")

</div>

**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

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 7, 2020, 10:36pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/2 "2020-04-07T22:36:28Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![nadrian](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/nadrian/32/5323_2.png) [@nadrian](https://devforum.zoom.us/u/nadrian)\
**Post date:** [April 7, 2020, 11:28pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/3 "2020-04-07T23:28:33Z")

</div>

@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

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 8, 2020, 8:06am UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/4 "2020-04-08T08:06:38Z")

</div>

Hey @nadrian,

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

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/a/a1c6b051e0be546cfc5b6727df5fabd80cc2fc1a.png)

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![nadrian](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/nadrian/32/5323_2.png) [@nadrian](https://devforum.zoom.us/u/nadrian)\
**Post date:** [April 8, 2020, 1:44pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/5 "2020-04-08T13:44:39Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 8, 2020, 8:32pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/6 "2020-04-08T20:32:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![nadrian](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/nadrian/32/5323_2.png) [@nadrian](https://devforum.zoom.us/u/nadrian)\
**Post date:** [April 8, 2020, 8:48pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/7 "2020-04-08T20:48:06Z")

</div>

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
```

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 9, 2020, 9:34pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/8 "2020-04-09T21:34:25Z")

</div>

Hey @nadrian,

> [@nadrian](#):
>
> 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? )

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](https://marketplace.zoom.us/docs/api-reference/webhook-reference/recording-events/recording-completed).

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![baohanhai](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/baohanhai/32/5616_2.png) [@baohanhai](https://devforum.zoom.us/u/baohanhai)\
**Post date:** [April 14, 2020, 12:20pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/9 "2020-04-14T12:20:35Z")

</div>

- Can you use jwttoken when downloading videos?

---

<div class="post-metadata">

**Author:** ![baohanhai](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/baohanhai/32/5616_2.png) [@baohanhai](https://devforum.zoom.us/u/baohanhai)\
**Post date:** [April 14, 2020, 12:20pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/10 "2020-04-14T12:20:50Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 15, 2020, 7:34am UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/11 "2020-04-15T07:34:09Z")

</div>

Hey @baohanhai,

Yes you can:

`download_url?access_token=JWT_TOKEN_HERE`

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 8:23pm UTC](https://devforum.zoom.us/t/zoom-download-url-issue/11904/12 "2020-08-21T20:23:19Z")

</div>

Closed on August 21, 2020, 8:23pm UTC


