Skip to content

attendee-labs/rtms-notetaker-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attendee <> RTMS Example

This shows how to use the Attendee API to implement an Meeting Notetaker that uses Zoom RTMS. It will transcribe the meeting in real-time. Once the meeting is over, it will show the recording of the meeting.

Prerequisites

  1. Ngrok Since Zoom RTMS needs to send webhooks to your local application, you'll need ngrok to create a secure tunnel to your localhost. Ngrok is free for basic usage. If you are deploying this application on the cloud, then you do not need ngrok.

  2. Node version 22+: This demo uses Node.js version 22 or higher.

Setup Instructions

1. Clone the Repository

git clone https://github.com/attendee-labs/rtms-notetaker-example
cd rtms-notetaker-example

2. Install dependencies

npm install

3. Install and Run Ngrok

  1. Install ngrok: Download from ngrok.com or install via package manager:

    # On macOS with Homebrew
    brew install ngrok
    
    # On Ubuntu/Debian
    snap install ngrok
  2. Start ngrok tunnel: In a separate terminal, run:

    ngrok http 5005
  3. Copy the public URL: Ngrok will display something like:

    Forwarding    https://abc123.ngrok.io -> http://localhost:5005
    

    Copy the https://abc123.ngrok.io URL - you'll need this for webhook configuration.

4. Create your Zoom RTMS App

  1. Go to the Zoom Developer Portal and create a new General app.

  2. On the sidebar select 'Basic Information'.

  3. For the OAuth redirect URLs, you can write https://zoom.us or any other URL. Because we are not using OAuth.

  4. On the sidebar select 'Access'.

  5. Click 'Add new Event Subscription'.

  6. Subscribe to the 'RTMS started' and 'RTMS stopped' events.

  7. Set the 'Event notification endpoint URL' to the ngrok URL you copied earlier.

  8. Save the changes.

  9. On the sidebar select 'Scopes'.

  10. Add the following scopes:

    • meeting:read:meeting_audio
    • meeting:read:meeting_transcript
    • meeting:read:meeting_chat
    • meeting:read:meeting_video
    • meeting:read:meeting_screenshare
  11. On the sidebar select 'Local test'.

  12. Click the 'Add app now' button and authorize the app.

  13. Go to your Zoom App Settings at https://zoom.us/profile/setting?tab=zoomapps

  14. Enable share realtime meeting content with apps

  15. Under "Auto-start apps that access shared realtime meeting content" click the "Choose an app to auto-start" button and select your app.

5. Configure Attendee

  1. Sign into your Attendee account
  2. Navigate to the API Keys section and create a new API key, save this in the .env file as ATTENDEE_API_KEY
  3. Navigate to the Settings -> Credentials section and click the button to add Zoom credentials.
  4. Enter the Client ID and Client Secret of your Zoom RTMS app.
  5. Navigate to the Settings -> Webhooks section and create a new webhook. Have it point to https://<YOUR NGROK DOMAIN>/attendee-webhook.
  6. Subscribe to the transcript.update and bot.state_change events.
  7. Save the webhook.

6. Set the .env file for your application

Set the following environment variables in the .env file:

  • ATTENDEE_API_KEY=<YOUR ATTENDEE API KEY>
  • ATTENDEE_BASE_URL=<YOUR ATTENDEE BASE URL> (defaults to https://app.attendee.dev)

7. Run the application

node index.js

8. Join a meeting and test the application

Join a meeting in Zoom. The RTMS app should automatically start recording. Then navigate to the application running at http://localhost:5005. You should see the meeting transcript.

About

Example app showing how to build a Meeting Notetaker with Attendee and Zoom RTMS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors