Zoom Developer Forum

How to join Zoom using Puppeteer

Updated at:
December 19, 2025

I want to join a Zoom meeting using Puppeteer. What's the most reliable approach is to automate Zoom’s web client instead of the desktop app?

Answer: How to join a Zoom meeting using Puppeteer?

If you’re wondering how to join a Zoom meeting using Puppeteer, the most reliable approach is to automate Zoom’s web client instead of the desktop app.

The recommended approach to join Zoom with Puppeteer

  1. Force Zoom’s web client URL Convert standard Zoom links like:

https://zoom.us/j/<meeting_id>

into the web client format:

https://zoom.us/wc/join/<meeting_id>

This prevents Puppeteer from getting stuck on desktop app launch prompts.

  1. Launch Puppeteer with fake media devices When running Puppeteer in headless mode or Docker, Chromium often blocks Zoom joins unless mic and camera permissions are satisfied. Use fake media device flags so Zoom allows the bot to enter the meeting.

  2. Automate the Zoom join flow With Puppeteer, wait for the name input, enter a display name, disable mic/video if shown, and click Join. This mirrors the standard Zoom web join experience.

  3. Handle waiting room vs in-meeting states After clicking Join, the bot may either:

  • Enter the meeting immediately, or land in the waiting room

A common pattern is to wait for whichever UI state appears first and branch accordingly.

  1. Expect UI changes and brittle selectors Zoom’s web UI changes frequently. When joining Zoom using Puppeteer, rely on text- or role-based selectors where possible and plan for ongoing maintenance.

If you want a complete walk through that covers how to join a Zoom meeting with browser automation, check out our blog on how to build a Zoom bot from scratch. We published a detailed guide that includes transcript scraping and speaker attribution. It uses Playwright, but the join flow is nearly identical to Puppeteer.

Zoom Dev Forum Examples

Some examples of this question are: