Zoom Native Bot Automatic Recording

The Zoom Native bot needs permission from the meeting host to record. There are 3 ways to grant this permission:

  1. Have the host manually grant the bot recording permission (not recommended)
  2. Have the bot request recording permission from the host
  3. Provide the bot with a "join token for local recording" which can be retrieved through the Zoom API. This will allow the bot to start recording automatically once it joins the call.

How to use the Join Token for Local Recording

To obtain a Join Token for Local Recording, and provide it to the Recall bot, you must:

  1. Create a Zoom OAuth application, which requests the scope meeting_token:read:local_recording
  2. Create an endpoint on your server, which does the following:
    1. Validates incoming requests to see if they're coming from Recall.
      1. We recommend using a query parameter for this, as the request from Recall to retrieve the Join Token will not set any specific headers, but will preserve all query parameters contained in the URL.
      2. For example, you could check for the presence of a query parameter called endpoint_secret containing a long random string.
    2. Associates an incoming request with a specific Zoom Meeting
      1. We recommend using a query parameter containing some identifier. For example, it could be the Zoom Meeting ID itself, or it could be the primary key of a row in your database containing the Zoom Meeting ID.
    3. Uses your OAuth credentials to call the "join token for local recording" endpoint to obtain the token for the specified Zoom meeting
    4. Returns the "join token for local recording" as a plain-text string
  3. Specify the previously mentioned endpoint zoom.join_token_url parameter when you call create_bot
    1. Immediately before the bot joins the Zoom meeting, the bot will make an HTTP GET request to the specified URL. This GET request will not contain an Authorization header, we recommend implementing authorization through a query parameter in the specified URL.
    2. The bot will provide the data contained in the HTTP response body to Zoom as the join token.
    3. If the join token is valid, the bot will immediately begin recording when it joins the call.

We have developed a simple CLI for interacting with Zoom OAuth, that allows you to connect your Zoom Account, retrieve a Join Token, and provide it to a bot. This can be helpful during development.