/meetings/{meetingId}/recordings only returns 15 recording files

I’m using the /meetings/{meetingId}/recordings endpoint to request recordings for a meeting. Unfortunately it is not returning the recording files for a meeting that happened one month ago. It only returns the latest 15 files without a way to paginate the results, or even tell me there are more results. Is this going to be added to the API? I can see the files for the last two meetings (i’m generating all the different video files so there are 7-8 files per recording) but no more.

Hi @zoom-test, I’m going to check back on a few things to get you a specific answer on the pagination of /meetings/{meetingID}/recordings.

While I know this is not a long term solution, in the interim to help you retrieve this meeting recording - do you happen to know the userID of the user who recorded the specific meeting you’re seeking? (Don’t share here, we can direct message if needed to exchange it). If so, we could likely return paginated meeting recordings from this endpoint: https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist

Sorry for the late reply. That seems to just return an array of meeting information which contain their own recording_files properties. Do those recording_files arrays support paging? Or will they return all of a meeting’s recording files if more than 15?

@zoom-test, to clarify your original question, are you able to return recordings for the correct meeting, but they are paginated? Or are you unable to return recordings for the meeting which happened in April 2019?

My response was a suggestion to use the userID of the host of the meeting to return the recordings. You could then paginate by making new requests using the next_page_token

Thanks @michael.harrington. I’ve done some more investigating and I think I have isolated my issue.

I have been using the /meetings//recordings endpoint to get the information for a particular recording. In the normal case where meeting ids are all different this works fine. But in the case where it is a recurring meeting with the same id it does not work. In that scenario unless I’m trying to get the information for the most recent recording, I won’t get all the recording files because calling that /meetings endpoint caps the recording_files array to the latest 15 recordings. This is what I was asking about paging. Your solution is to use the user endpoint to locate the recording that way which should give me all the recording files for a particular recording instance.Unfortunately, while the /user/{userId}/recordings api is useful in this regard, to be effective you have to know the date range the meeting falls into otherwise you may not find it.

What would be nice is an endpoint that returns the complete meeting details & recording files found in /user/{userId}/recordings but for a single recording id. Maybe something like these:

/user/{userId}/recordings?meeting_uuid=asdf123/m/–asdf345
or
/meetings/12345678/recordings?meeting_uuid=asdf123/m/–asdf345

This would only return the matching recording information per meeting_uuid (I want to make another post about the naming confusion as well) including the recording_files.

Without that information if I use the user recording endpoint then I need to know the date range it falls into otherwise it might not be returned if it is not in the default range (The api documentation says you can specify in a 6 month range but if I put in a 6 month range trims it still trims it to the last month. Bug? I can provide examples. I put in from=2019-04-01&to=2019-08-24 but the json returned says "from": "2019-06-24", "to": "2019-07-24",).

For the meetings//recordings endpoint it only returns the latest 15 files and for a recurring meeting (like a personal meeting room) then this endpoint becomes unusable since I can’t page through the recording_files and have to go back to the user//recording endpoint.

My Solution
To solve my immediate problem and by your suggestion then it looks like I need to do this since I am starting with a recording id. If I have the start time for a meeting I could skip step 1.

Step 1. (locate meeting time by recording id)

  • /past_meetings/<recording_id>
  • Grab the start_time/end_time and host_id

Step 2. (use user endpoint to get recording information)

  • /user/<host_id>/recordings?from=start_time-1 day&to=end_time+1 day
  • Find the correct recording by id in the list and that should be all the information

Hey @zoom-test, thanks for your detailed response.

If you put in a to date in the future it will default to search the past month.
Try doing 2019-04-01&to=2019-07-24.

Also this may help, you can pass the Meeting UUID as the Meeting ID for GET /meetings/{meetingId}/recordings

Thank you for your feedback, and let us know if this helps!
-Tommy

@tommy ^^^ This right here is what I needed. It returns exactly what I wanted. I’m not sure why I didn’t try that before.

Though I feel like this goes back to a naming confusion in your API.

What is Meeting Id? 123456789 or asdfwaerpasdf=34/ or both?

The numeric one can be a recurring meeting id or a single use one. But the uuid represents a single meeting instance. Maybe because in the /meetings API it returns its id as the numeric one and has an additional property uuid. But then in the recording_files array meeting_id is actually giving the meeting_uuid value.

Sorry, just me complaining more. I appreciate all your help. That suggestion above to use the uuid is going to solve a number of issues for me.

1 Like

Hey @zoom-test I’m glad the Meeting UUID will help!

And yes I see the pain point there with the naming confusion in our API. Thanks for your feedback and we will work on making this more clear.

Let us know if you have any other questions!

Thanks,
Tommy