Build a Zoom Real-time transcription bot with Recall.ai
A real-time transcription bot that integrates Recall.ai with AssemblyAI to provide live transcription of Zoom meetings.
Quickstart
Prerequisites
- Node.js (v14 or higher)
- ngrok - Installation guide
- Recall.ai API key with AssemblyAI configured
Step-by-step
Follow this step-by-step guide to set up and run the transcription bot.
Step 1: Get your API keys
1.1 Choose your Recall.ai region and get your API Key:
1.2 Configure AssemblyAI in your Recall.ai dashboard:
- Get an AssemblyAI API key from assemblyai.com
- In your Recall.ai dashboard (same region as step 1.1), navigate to the transcription providers section
- Add your AssemblyAI API key to enable AssemblyAI as a transcript provider
This step is required for the bot to work with AssemblyAI transcription!
Step 2: Clone the example repo and install dependencies
Open a new terminal and run the following commands:
Step 3: Configure environment
Set up your environment variables using the example .env
file in the repo:
Edit .env
with your Recall values.
RECALL_REGION
to according to your Recall region in Step 1.1Step 4: Start ngrok tunnel
In a new terminal, start ngrok to create a public URL for your webhook:
The output should look like this:
Copy the https URL (e.g., https://abc123.ngrok.io
) - you’ll need this for the next step.
Step 5: Update Webhook URL
Edit your .env
file and set WEBHOOK_URL
to your ngrok URL:
Step 6: Start webhook server
In another terminal, start the webhook server (receives transcripts):
Step 7: Start the bot CLI
In another terminal, start the bot CLI (manages meeting connection):
Once you run this command, you’ll see this output:
Step 8: Join meeting and start transcription
Enter your Zoom meeting URL when prompted:
And your terminal will look like this:
In your second terminal (running webhook.js
), you should see a meeting transcript of your participants:
Step 9: Stop transcription
To stop transcribing, type “STOP” to end transcription on your third terminal running node zoomBot.js
:
Troubleshooting
Environment Variable Errors
RECALL_API_KEY not found in .env file
Solution: Make sure you copied .env.example
to .env
and added your API key.
RECALL_REGION must be one of: us-west-2, us-east-1, eu-central-1, ap-northeast-1
Solution: Check your .env
file and ensure RECALL_REGION
matches where you got your API key
Bot Creation Errors
AssemblyAI not configured
Solution: Configure AssemblyAI in your Recall.ai dashboard (Step 1.2)
Webhook Issues
No transcripts appearing
Solution:
- Verify
WEBHOOK_URL
in.env
matches your ngrok URL exactly - Ensure ngrok is still running (it may timeout after inactivity)
- Check that the webhook server was started before the bot
ngrok connection refused
Solution:
- Restart ngrok:
ngrok http 8000
- Update
WEBHOOK_URL
in.env
with the new ngrok URL - Ensure port 8000 is available
Common network issues
Timeout connecting to Recall.ai
Solution:
- Check your internet connection
- Verify your
RECALL_REGION
is correct - Try again after a few seconds
Bot appears to join but no transcripts
Solution:
- Ensure people are speaking in the meeting
- Check that meeting participants have unmuted their microphones
- Verify AssemblyAI is properly configured in Recall.ai dashboard
Stuck? Contact our support team at support@assemblyai.com or create a support ticket.