Does your company rely on browser automation or web scraping? We have a wild offer for our early customers! Read more →

Patches for Puppeteer and Playwright

Puppeteer and Playwright are the two most popular CDP (Chrome DevTools Protocol) drivers today. Many of our customers use these libraries in their software.

These libraries use the Runtime.enable CDP command, which makes it easy for websites to spot that you're using automation. We've written a detailed post about this issue on our blog. You can read it here: How to fix Runtime.Enable CDP detection of Puppeteer, Playwright and other automation libraries?

To fix this problem, we've created an open-source solution that patches these libraries. This allows you to use their features without being detected. You can find these patches in rebrowser-patches on GitHub and npm.

How to Use It?

There are multiple ways how you can use these patches to improve your anti-detection score.

Drop-In Replacement

If you don't want to mess with the patches and all possible errors, there is a drop-in solution for you. These packages have simply applied rebrowser-patches on top of the original code, nothing more.

Puppeteer: rebrowser-puppeteer and rebrowser-puppeteer-core

Playwright (Node.js): rebrowser-playwright and rebrowser-playwright-core

Playwright (Python): rebrowser-playwright

The easiest way to start using it is to fix your package.json to use new packages but keep the old name as an alias. This way, you don't need to change any source code of your automation. Here is how to do that:

  • 1. Open package.json and replace "puppeteer": "^23.3.1" and "puppeteer-core": "^23.3.1" with "puppeteer": "npm:rebrowser-puppeteer@^23.3.1" and "puppeteer-core": "npm:rebrowser-puppeteer-core@^23.3.1". Note: 23.3.1 is just an example, check the latest version on npm.
  • 2. Run npm install (or yarn install)

Another way is to actually use new packages instead of the original one. Here are the steps you need to follow:

  • 1. Open package.json and replace puppeteer and puppeteer-core with rebrowser-puppeteer and rebrowser-puppeteer-core. Don't change versions of the packages, just replace the names.
  • 2. Run npm install (or yarn install)
  • 3. Find and replace in your scripts any mentions of puppeteer and puppeteer-core with rebrowser-puppeteer and rebrowser-puppeteer-core

🚀 That's it! Just visit the rebrowser-bot-detector page and test your patched browser.

Apply Patches Manually

It's pretty simple to add these patches to your software. Just follow the instructions in the README. If you have any trouble applying the patches, feel free to check out the Issues section on GitHub.

We also strongly suggest following this project on GitHub to stay up-to-date. We publish updates from time to time to keep it working with newer versions of these libraries.

Remember: If you don't use these patches, you're almost guaranteed to have poor results on any major website. It's really important to fix this issue on your end.