/zoom-recording-downloader

Downloads and organizes all cloud recordings from your Zoom Business account

Primary LanguagePythonMIT LicenseMIT

zoom-recording-downloader

Python 3.6 License

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.

Screenshot

screenshot

Installation

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 .

Usage

Attention: You will need a Zoom Developer account in order to create a Server-to-Server OAuth app with the required credentials

  1. 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.

  2. 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.

  3. 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>"
	      }
      }
  1. 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