Cloud recording
Zoom Video SDK sessions offer cloud recording using:
- In-session SDK functions to enable session hosts to start, pause, resume, and stop recordings. See the SDK tab for these functions.
- Cloud recording APIs to enable Developers to initiate and manage cloud recording functions. See the REST API tab for details.
Recording resolution depends on the video quality being sent from the Video SDK for Web, with a maximum resolution of 720p.
On this page
- Prerequisites
- Recording options
- Init cloud recording
- Start recording
- Stop recording
- Get account recordings
- Get session recordings
- View recordings
Prerequisites
Recording options
You can record Video SDK sessions in many different ways, such as:
Video or screen sharing:
- Record active speaker with shared screen
- Record gallery view with shared screen
- Record active speaker, gallery view and shared screen separately
Audio:
- Record audio-only files
- Record one audio file for all participants
- Record a separate audio file of each participant
Chat:
- Save chat messages from the session
Advanced:
- Add a timestamp to the recording
- Display participants' names in the recording
- Record thumbnails when sharing
- Optimize the recording for a third party video editor
Init cloud recording
After joining a session, call client.getRecordingClient()
to get the cloud recording client.
const cloudRecording = client.getRecordingClient()
Start recording
cloudRecording.startCloudRecording()
To start recording, PATCH recording.start
to the /events
endpoint.
Endpoint: https://api.zoom.us/v2/videosdk/sessions/{sessionId}/events
{"Authorization": "Bearer {{VIDEOSDK_JWT_TOKEN}}"}
{"method": "recording.start"}
202 Accepted
Empty
Stop recording
cloudRecording.stopCloudRecording()
To stop recording, PATCH recording.stop
to the /events
endpoint.
Endpoint: https://api.zoom.us/v2/videosdk/sessions/{sessionId}/events
{"Authorization": "Bearer {{VIDEOSDK_JWT_TOKEN}}"}
{"method": "recording.stop"}
202 Accepted
Empty
Get account recordings
REST API only.
To get all of the cloud recordings for the account, GET /recordings
.
Endpoint: https://api.zoom.us/v2/videosdk/recordings
Request header:
{"Authorization": "Bearer {{VIDEOSDK_JWT_TOKEN}}"}
Response body:
{"from": "2022-01-31","to": "2022-02-01","sessions": [{"timezone": "","duration": 1,"session_id": "kwPoX6bTS4uWBYwmEppXvZ++","session_name": "testSDK124","start_time": "2022-02-01T19:12:01Z","total_size": 4581920,"recording_count": 2,"recording_files": [{"id": "b5487b74-17a2-440e-88e7-d822db00c3cf","status": "completed","recording_start": "2022-02-01T19:13:02Z","recording_end": "2022-02-01T19:14:12Z","file_type": "M4A","file_size": 1104796,"download_url": "https://web.example.com/rec/download/Iv73Xi568jxYnorYNWlc_d3eHXGnok0hlmRWat2sfkrFT2NN7TkLFdjpz11S1qJTzXQVdaw1Jn3SQhpR.D8pt9OQFn9VJeg9l","recording_type": "audio_only","file_extension": "M4A"},{"id": "f0b0b02a-24e6-4b99-af67-b14c03ba42c7","status": "completed","recording_start": "2022-02-01T19:13:02Z","recording_end": "2022-02-01T19:14:12Z","file_type": "MP4","file_size": 3477124,"download_url": "https://web.example.com/rec/download/H6m6EAjAkKYyQYKjRgKc881bI95JPTBhX9tXQ3q0na-MsseH5eWv4V2Vp4dr3fy852IPrvH2UzRZQVYR.xCPjdzRHX8tEIyrI","recording_type": "shared_screen_with_speaker_view","file_extension": "MP4"}]}],"page_size": 30,"total_records": 1,"next_page_token": ""}
Get session recordings
REST API only.
To get all the recordings for the session, GET {sessionId}/recordings
.
Endpoint: https://api.zoom.us/v2/videosdk/sessions/{sessionId}/recordings
Request header:
{"Authorization": "Bearer {{VIDEOSDK_JWT_TOKEN}}"}
Response body:
{"timezone": "","duration": 1,"session_id": "kwPoX6bTS4uWBYwmEpzBvA==","session_name": "testSDK124","start_time": "2022-02-01T19:12:01Z","total_size": 5686716,"recording_count": 3,"recording_files": [{"id": "f0b0b02a-24e6-4b57-xx67-b14c03ba42c7","status": "completed","recording_start": "2022-02-01T19:13:02Z","recording_end": "2022-02-01T19:14:12Z","file_type": "MP4","file_size": 3477124,"download_url": "https://web.example.com/rec/download/gYV4085ivAhN0sSASa0L4KNu6lGnFvsahfIKFxIuKE5UeLrVit16OJ2tCBLSCSQLnA5dWlJ1jknPVJVu.sf0cPIDusWDMqTbO","recording_type": "shared_screen_with_speaker_view","file_extension": "MP4"},{"id": "b5487b74-17a2-440e-93e7-d009db00c3cf","status": "completed","recording_start": "2022-02-01T19:13:02Z","recording_end": "2022-02-01T19:14:12Z","file_type": "M4A","file_size": 1104796,"download_url": "https://web.example.com/rec/download/1fmg5SxfSW7UuA4cQT6282isttmNTddairEwq7uMZEJqDs7rFB-rSpQS2kBnT2zBqH5-mM3Q6nZBfQyY.djXshU4mG85q_bZ7","recording_type": "audio_only","file_extension": "M4A"}],"participant_audio_files": [{"id": "30306814-b919-41e7-9iit-e20ed2c7ab21","status": "completed","recording_start": "2022-02-01T19:13:02Z","recording_end": "2022-02-01T19:14:12Z","file_type": "M4A","file_size": 1104796,"download_url": "https://web.example.com/rec/download/5JNOuxxPKaYQqKmk5ZegBlUlJq6_TVapkAPlTY9uoiFWU2Xy9Ssh04_bJuT9lMrVQRVPm6nG-wX7na9a.C7pS655JRCXRE9l4","file_name": "Audio only - Example53","file_extension": "M4A"}]}
Recording completed webhook
You can also receive a POST request to your server with JSON (a webhook) once the recording has completed processing. You can use Webhooks to automate distribution or uploading of the recording files to your own cloud storage system. See Using Zoom Webhooks and the session.recording_completed
webhook for details.
Sample payload:
{"event": "string","event_ts": "long","payload": {"account_id": "string","object": {"session_id": "string","session_name": "string","start_time": "string [date-time]","timezone": "string","recording_files": [{"id": "string","recording_start": "string","recording_end": "string","file_name": "string","file_path": "string","file_type": "string","file_size": "number","file_extension": "string","download_url": "string","status": "string","recording_type": "string"}],"participant_audio_files": [{"id": "string","recording_start": "string","recording_end": "string","file_type": "string","file_name": "string","file_size": "integer","file_extension": "string","download_url": "string","file_path": "string","status": "string","recording_type": "string"}]}}}
For more details, see the full Video SDK API and Webhook reference pages.
View recordings
Recordings are also available to view and download from your Video SDK Account Recording page.
Need help?
If you're looking for help, try Developer Support or our Developer Forum. Priority support is also available with Premier Developer Support plans.