Download_url replaced by file_path in recording.completed webhook

I have an OAuth app with recording.completed webhooks registered. For some customers I am seeing some recording.completed webhooks come in with a file_path property instead of a download_url for the recording file. This is not in the webhook spec: https://marketplace.zoom.us/docs/api-reference/webhook-reference/recording-events/recording-completed

It is inconsistent as well as some recordings come in with the expected format (download_url) and some don’t. Can you please help clear up what is going on here?

Thanks!

Hey @zoom-test,

I am guessing the file_path is returning because your (or your users) Cloud Recording settings are set to local and not cloud. The file_path is where the local recording file lives on that users machine, and inaccessible to your application. Make sure that Cloud Recording is turned on. The best way to do this would be turning it on, and locking it from the account level settings:

Thanks,
Tommy

Um, according you to, webhooks are for cloud recordings only.

If that is still true then what is going on here?

Hey @zoom-test,

Apologies,

If your customer is a “Corp” user, then their meetings are hosted on Meeting Connector. If the meeting is hosted on Meeting Connector, then the recordings are stored on the Recording Connector server (assuming one is configured). At such times, you may receive a notification like:

{
    "id": "...",
    "meeting_id": “...",
    "recording_start": "2019-08-15T09:04:29Z",
    "recording_end": "2019-08-15T10:46:55Z",
    "file_type": "MP4",
    "file_size": 1746960821,
    "file_path": "/opt/zoom/cmr-storage/replay/actn-zm-....zoom.aarnet.net.au/2A6.../GMT2019081....mp4",
    "status": "completed",
    "recording_type": "shared_screen_with_gallery_view"
}

If your is a “Pro” user, then his meetings are hosted on the Zoom Cloud. If the meeting is hosted on Zoom Cloud, then the recordings are stored in the Zoom Cloud. Here your notification could be like:

{
    "id": "...",
    "meeting_id": "...",
    "recording_start": "2019-07-26T05:01:42Z",
    "recording_end": "2019-07-26T05:02:10Z",
    "file_type": "MP4",
    "file_size": 216792,
    "play_url": "https://zoom.us/recording/play/d8xoGxe45...",
    "download_url": "https://zoom.us/recording/download/d8xov745...",
    "status": "completed",
    "recording_type": "shared_screen_with_speaker_view"
}

Thanks,
Tommy

Hey @tommy a late follow up to this. For the /v2/metrics/meetings api. Will these corp recordings return a "user_type": "Corp" as part of the meetings array? That way I can check here if the recording is coming from a corp style account. Or do I still need to pull the recording data down to see if it is a corp style recording? The api here (https://marketplace.zoom.us/docs/api-reference/zoom-api/dashboards/dashboardmeetings) lists the user_type as a string property but doesn’t give valid values for it. Do they match up to what is listed here (https://marketplace.zoom.us/docs/api-reference/zoom-api/users/user) under type?

Thanks!

Hey @zoom-test,

Yes "user_type": "Corp" will be returned for Corp recordings. Although I think the convention also appends the user Features. After testing, mine says:

"user_type": "Pro|Webinar500"

That being said: user_type = User Type + "|" + Features

I would suggest doing a check if the string “Corp” is included in the "user_type" value.

We will work on adding the reference for all the different user_types.

Thanks,
Tommy