In the recording.completed webhook, is there a way to increase the ttl of the download_token? The docs say it expires in 24 hours but I’d like to know if it can be set up to expire in a week or something.
I recently encountered a scenario where the download_token from the recording.completed webhook was expired so I used the Zoom user’s oauth access token to request the associated download_url from the webhook but I got a 401. This used to work.
I even checked the Zoom documentation and it says that Zoom users’ access tokens may be used to download recordings. Has this behaviour changed? (I am aware that another possibility is to query the recording API to get a download_access_token and a new download_url, but I’m interested in knowing why the behaviour seems to have changed).
You are not going to get tokens extended. Is that not specific to that hook?
When you use OAuth, you get a token that lasts much longer, and you should also take note of the refresh token, which will allow you to get a new token when it expires.
So for that reason, there is no need to worry when you are programmatically going to access the download.
Make sure you are using the right token.
I understand that will work, but according to the docs here: Using Zoom APIs , I shouldn’t need to query the “Get meeting recordings” endpoint at all.
The link says:
If a user has authorized and installed your OAuth app that contains recording scopes, use the download_access_token or the user’s OAuth access token* to download the file.
In my case, the user had authorized and installed my OAuth app with the recording:read scope, yet the user’s OAuth access token was not authorized to download the file.
Which is explained by Elisa ins the link I have shared
The user must be authorised to download the file within the account.
Creating API’s does not grant blanket permission to any data unless they are given access IRL.
So, if this user tried to download the file from the Zoom.us site, do they have permission?
I suggest you set this up with the user being the account holder of the meeting recorded.
They will have access to the recording.
Giving a meeting scope just gives access to the api, not a guaranteed access to the data.
So I suggest you check that first.
all the best