Skip to content

snebo/Zoom-Meeting-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

245 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zoom Bot - Server Setup and Deployment Guide

Overview

The Zoom Meeting Assistant Bot is an automated solution that handles Zoom meeting participation, recording, and transcription. Built on the Zoom Meeting SDK, it operates in a headless environment, making it perfect for automated meeting management and documentation.


1. System Requirements

Ensure the following dependencies are installed on your system:

  • Docker (to containerize and run the Zoom bot)
  • Node.js & npm (to run the web server)
  • Git (to clone the repository)
  • cURL (for testing API endpoints)
  • linux/wsl (for running the Zoom bot)

Key Features

  • Automated Meeting Management

    • Join meetings automatically
    • Handle multiple concurrent sessions
    • Support for both meeting IDs and URLs
    • Automatic meeting cleanup
  • Participant Tracking

    • Real-time participant monitoring
    • Join/leave time tracking
    • Participant analytics
    • Historical attendance data
  • Audio Processing

    • High-quality audio recording
    • Real-time audio transcription
    • Automatic file cleanup after 3 days
    • Encrypted storage
  • Scalable Architecture

    • Docker containerization
    • Multiple concurrent meeting support
    • Load balancing capabilities
    • Resource optimization
  • Real-time Updates

    • WebSocket integration
    • Live participant updates
    • Real-time transcription feed
    • Status monitoring

Technical Architecture

┌─────────────────┐      ┌──────────────────┐
│   Express API   │◄────►│  Zoom SDK Bot    │
└────────┬────────┘      └──────────┬───────┘
         │                          │
         │                          │
┌────────▼────────┐      ┌─────────▼───────┐
│  WebSocket      │      │  Docker         │
│  Server         │      │  Container      │
└────────┬────────┘      └─────────────────┘
         │
         │
┌────────▼────────┐
│  Meeting Data   │
│  Storage        │
└─────────────────┘

Use Cases

Medical Professionals

  • Transcribe Therapy Sessions: Automatically transcribe patient sessions, allowing therapists to focus on their patients without the distraction of note-taking.
  • Record Patient Interactions: Capture audio of sessions for future reference, ensuring accurate documentation of patient progress.
  • Review and Reflect: Enable therapists to revisit sessions for self-reflection and professional development, enhancing the quality of care provided.

System Requirements

  • Node.js v14+
  • Docker
  • Linux environment (for headless browser support)
  • Minimum 2GB RAM per instance
  • Storage for audio recordings

Project Structure

project/
├── src/
│   ├── server.js              # Main Express server
│   ├── audio-handler.js       # Audio processing logic
│   └── utils/
│       ├── encryption.js      # Data encryption
│       └── validation.js      # Input validation
├── docker/
│   ├── Dockerfile            # Bot container definition
│   └── docker-compose.yml    # Service orchestration
├── config/
│   └── default.toml          # Default configuration
├── docs/
│   ├── api.md               # API documentation
│   ├── privacy.md           # Privacy policy
│   └── terms.md             # Terms of service
└── tests/
    ├── unit/
    └── integration/

2. Installation Guide

2.1 Install Docker

  1. Update system packages:
    sudo apt update && sudo apt upgrade -y
  2. Install required dependencies:
    sudo apt install -y ca-certificates curl gnupg
  3. Add Docker’s official GPG key:
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
    sudo chmod a+r /etc/apt/keyrings/docker.asc
  4. Add the Docker repository:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Install Docker:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  6. Verify installation:
    docker --version

2.2 Install Cmake and Vcpkg

  1. install cmake and vcpkg

    sudo apt-get update && \
    sudo apt-get install -y build-essential cmake
    sudo apt-get install -y pkgconf
    sudo apt-get install -y gtkmm-3.0
  2. install missing libraries

    sudo apt-get install -y --no-install-recommends --no-install-suggests \
     libx11-xcb1 \
     libxcb-xfixes0 \
     libxcb-shape0 \
     libxcb-shm0 \
     libxcb-randr0 \
     libxcb-image0 \
     libxcb-keysyms1 \
     libxcb-xtest0

2.3 Install Node.js and npm

  1. Install Node.js (LTS version recommended):
    curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
    sudo apt install -y nodejs
  2. Verify installation:
    node -v
    npm -v

3. Setting Up the Zoom Bot

3.1 Clone the Repository

git clone https://github.com/your-repo/zoom-bot.git
cd zoom-bot

3.2 Install Dependencies

npm install

3.3 Project Structure

/zoom-bot
│── docker-compose.yml      # Docker Compose file for container setup
│── Dockerfile              # Dockerfile for building the container
│── config.toml             # Configuration file for the bot
│── webserver.js            # API server to control the bot
│── package.json            # Node.js dependencies
│── entry.sh                # Startup script for the bot

4. Running the Zoom Bot

4.1 Configure the Bot

Edit config.toml with your Zoom credentials:

client-id = "*****"
display-name = "My Zoom Bot"
client-secret = "*******"
join-url = "https://us02web.zoom.us/j/123456789"
meeting-id = ""
password = ""

[RawAudio]
file = "meeting-audio.pcm"

4.2 Start the Docker Container

docker-compose up --build -d
  • --build: Ensures the image is rebuilt with updates.
  • -d: Runs the container in the background.

To check running containers:

docker ps

To stop the bot:

docker-compose down

5. Running the Web Server

5.1 Start the Server

node webserver.js

Server runs at http://localhost:5000.


6. API Endpoints

Method Endpoint Description
GET localhost:5000/config Retrieve current bot configuration
POST localhost:5000/join-meeting Update bot configuration
GET localhost:5000/active/meetings Get active Zoom meetings

6.1 Test API Endpoints

Retrieve Configuration

curl http://localhost:5000/config

Update Configuration

curl -X POST http://localhost:5000/join-meeting -H "Content-Type: application/json" -d '{
  "display_name": "Updated Bot Name",
  "join_url": "https://example.zoom.us/j/987654321"
}'

Get Active Meetings

curl http://localhost:5000/active/meetings

7. Debugging Common Issues

Issue Solution
docker-compose: command not found Install using sudo apt install docker-compose
Error: no such service zoom-bot Verify service name in docker-compose.yml
config.toml not found Ensure the file exists in the correct directory
port already in use Stop the process using sudo lsof -i :3000 and restart

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors