Downloading a Cloud Recording Requires Signin


#1

Hi I’m attempting to download the recording from the download_url that is provided in the recording_completed webook. The link is in this format https://zoom.us/recording/download/{identifier}

However when I try to visit the link in Azure Logic Apps or Postman or Curl it attempts to redirect me to the login page.

Is there a way to download these files without an interactive login. I’ve tried using a valid JWT token and using basic auth with the zoom username/password, but nothing seems to work.


#2

Note. This also seems to happen with urls that start with https://api.zoom.us/recording/download/{identifier}


#3

Hi Call Journey, 

Currently, its by design to have the user login before downloading the cloud recording. We are planning on removing the sign portion in our upcoming release in November. 

Thanks


#4

There is an undocumented (why?) mechanism called a “zak” token that we use for this. Here’s what we were told by support:

“”"

You can already pass the login credentials of the host at the end of the download URL to authenticate the download. You can generate an authentication zak token for the host by using GET /users/{userId}/token . The token will remain valid for 50 minutes. You can then pass the token at the end of the join URL. You can also get the auth token for an Admin or Owner as well.

For example:

curl -L -o test.mp4 <downloadURL>?zak=<auth token>

“”"

 

Here’s an example in python, note that gen_token() returns a jwt.

def get\_admin\_token(): # get admin user id from admin email r = requests.get("{}users/{}".format(ZOOM\_API\_BASE\_URL, ZOOM\_ADMIN\_EMAIL), headers={"Authorization": "Bearer %s" % gen\_token().decode()}) admin\_id = r.json()['id'] # get admin level zak token from admin id r = requests.get("{}users/{}/token?type=zak".format(ZOOM\_API\_BASE\_URL, admin\_id), headers={"Authorization": "Bearer %s" % gen\_token().decode()}) return r.json()['token']