Zoom Recording Downloader is a cross-platform Python script that uses Zoom's API (v2) to download and organize all cloud recordings from a Zoom account onto local storage.
Attention: You will need Python 3.6 or greater
$ git clone https://github.com/ricardorodrigues-ca/zoom-recording-downloader
$ cd zoom-recording-downloader
$ docker build -t zoom-recording-downloader .
Attention: You will need a Zoom Developer account in order to create a Server-to-Server OAuth app with the required credentials
-
Create a server-to-server OAuth app, set up your app and collect your credentials (
Account ID
,Client ID
,Client Secret
). For questions on this, reference the docs on creating a server-to-server app. Make sure you activate the app. Follow Zoom's set up documentation or this video for a more complete walk through. -
Add the necessary scopes to your app. In your app's Scopes tab, add the following scopes:
account:master
,account:read:admin
,account:write:admin
,information_barriers:read:admin
,information_barriers:read:master
,information_barriers:write:admin
,information_barriers:write:master
,meeting:master
,meeting:read:admin
,meeting:read:admin:sip_dialing
,meeting:write:admin
,meeting_token:read:admin:live_streaming
,meeting_token:read:admin:local_archiving
,meeting_token:read:admin:local_recording
,recording:master
,recording:read:admin
,recording:write:admin
,user:master
,user:read:admin
,user:write:admin
. -
Copy zoom-recording-downloader.conf.template to a new file named zoom-recording-downloader.conf and fill in your Server-to-Server OAuth app credentials:
{
"OAuth": {
"account_id": "<ACCOUNT_ID>",
"client_id": "<CLIENT_ID>",
"client_secret": "<CLIENT_SECRET>"
}
}
- Add environment variables. Open the zoom-recording-downloader.py file using your editor of choice and fill in the following variables to reflect your environment:
-
Specify the folder name where the recordings will be downloaded (default is 'downloads')
DOWNLOAD_DIRECTORY = 'downloads'
-
Specify the name of the log file that will store the ID's of downloaded recordings (default is 'completed-downloads.log')
COMPLETED_MEETING_IDS_LOG = 'completed-downloads.log'
Run command:
docker run --rm -v ./zoom-recording-downloader.conf:/app
/zoom-recoding-downloader.conf -v ~/Downloads/zoom_downloader:/downloads zoom-recording-downloader