/videosdk-s3-cloud-recordings

Automatically download Zoom Cloud Recordings and upload them to an AWS S3 bucket of your choosing

Primary LanguageTypeScriptOtherNOASSERTION

Zoom Cloud Recordings S3 Auto-Upload

Use of this sample app is subject to our Terms of Use.

This Express/Node.js project demonstrates how to set up and listen to Zoom webhooks that, when processed, will automatically stream a download and subsequent upload to AWS S3 for Cloud Recordings storage.

Installation

In a terminal window (e.g., Git Bash for Windows or Terminal for Linux/Mac OS), clone this repository by executing the following command:

$ git clone https://github.com/zoom/videosdk-s3-cloud-recordings.git

Setup & Configuration

  1. In a terminal window, cd into the cloned repository:

    $ cd zoom-video-sdk-s3-uploader
  2. Install all necessary dependencies with npm, yarn, or pnpm:

    $ npm install
  3. Rename .env.local to .env, replacing all environment variables for use with the AWS SDK and Zoom's Video SDK.

  4. Start the development server

    $ npm run dev
  5. Once the server is up and running, Zoom requires all webhook endpoints are first validated before webhooks are sent. Refer to Zoom's Using Webhooks guide for more information.

Note

The only required webhook event for this application is Video SDK > Session recording completed. All others events that are sent to this application will return 200 OK, but will not be processed.

Usage

This application exposes the POST / endpoint; however, this endpoint should not be called manually. Instead, this endpoint is called by Zoom once a Video SDK Cloud Recording has finished successfully.

Deployment

As this application is written in TypeScript, it will need to be deployed with the ability to run via ts-node, tsx, swc-node, or similar; node will be unable to run this application out of the box.

If you want to be able to run the application via the node command, it must first be built by executing npm run build, which will transpile all TypeScript files to JavaScript, outputting them to the dist directory. Once transpiled you can run the application by executing node server.js within the dist directory.

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.