本文へスキップ

オープンソースの rebrowser-patches 代替

rebrowser-patches は Puppeteer と Playwright の Runtime.enable リークについて重要な成果を残し、その bot-detector ページは今も有用なテストです。ただしパッチ済みパッケージの最終リリースは 2025 年 5 月で、対象もドライバーだけです。Clearcote は CDP 側に起動時とエンジン内で対処し、フィンガープリントも変更します。

rebrowser-patches とは?

rebrowser-patches は Puppeteer と Playwright 向けのソースパッチ集で、そのまま置き換えて使えるビルド済みパッケージ(rebrowser-puppeteer、rebrowser-playwright)も用意されています。主要なパッチは Runtime.enable のリークを修正するもので、main world でのバインディング、常に isolated world を使う方式、有効化してすぐ無効化する方式の 3 つの戦略を切り替えられます。小さなパッチとしては、Puppeteer の pptr: sourceURL と utility world の名前を変更するものがあります。このリークについてチームが書いた解説記事と、公開されている bot-detector ページは、このテーマに関する公開資料の中でも屈指の内容です。

限界は対象範囲と鮮度です。README 自身が、ライブラリのソースにパッチを当てる方法は upstream の変更で壊れうるため脆いと述べています。置き換え用パッケージの最終公開は 2025 年 5 月(Puppeteer 24.8.1、Playwright 1.52.0)で、upstream はその後 Puppeteer 25.11、Playwright 1.63 まで進んでいます。そして、あらゆるドライバーパッチと同様にブラウザは素のままなので、フィンガープリントはホストのものです。

Clearcote vs rebrowser-patches

機能Clearcoterebrowser-patches
アプローチ エンジンレベルの C++ パッチ Puppeteer / Playwright のソースへのパッチ
Runtime.enable リーク エンジン内で無害化、起動時に isolated world を使用 ドライバー内で修正(3 つのモード)
フィンガープリントのアイデンティティ シードから生成する整合性のあるペルソナ ホストの実際の値
ライブラリのバージョン 現行の公式 Puppeteer / Playwright で動作 Puppeteer 24.8.1 / Playwright 1.52.0 に固定
最終リリース 活発 2025 年 5 月
TLS / ネットワーク ClientHello がペルソナの Chrome バージョンに従う ローカルの Chrome が送るまま
言語 Python、Node、.NET Node(Puppeteer、Playwright)、Python(Playwright)
料金 オープンビルドは無料、最新ビルドは GitHub で無料、Pro は月額 $49 無料・オープン

比較は 2026年9月 時点のものです。rebrowser-patches のライセンス:オープンソース(パッチは MIT、ビルドは Apache-2.0)。内容は変わることがあるため、最新情報は各プロジェクトでご確認ください。

Clearcote が選ばれる理由

パッチ済みライブラリを待つ必要なし

Clearcote は公式の Puppeteer / Playwright パッケージで動くので、パッチセットが最後にリベースされたバージョンに縛られることはありません。

セッションだけでなく、フィンガープリントも

Runtime.enable を修正すれば自動化セッションは隠せます。Clearcote はそれに加えて、ページが読み取る Canvas、WebGL、フォント、画面、ハードウェアも変更します。

ライブラリより下の層で対処

Clearcote の CDP 対策はエンジンと起動時のデフォルト設定にあるので、JavaScript ライブラリのリリースごとにパッチを当てる必要はありません。

TLS まで整合

名乗っている Chrome のバージョンは TLS ClientHello まで反映されます。ライブラリへのパッチでは届かない層です。

rebrowser-patches のほうが向いている場合

  • いずれにせよ Puppeteer 24 や Playwright 1.52 に固定されていて、Runtime.enable の修正だけが必要な場合。
  • パッチそのものを学びたい場合。短くてドキュメントも充実しており、このリークを理解するのによい教材です。
  • メンテナンスされているパッチ済み Playwright が欲しいなら、同じカテゴリーで活発に更新されている選択肢は Patchright です。

よくある質問

rebrowser-patches は今もメンテナンスされていますか?

パッチ済みパッケージの最終公開は 2025 年 5 月で、Puppeteer 24.8.1 と Playwright 1.52.0 がベースです。新しいバージョンのライブラリで使う前に、リポジトリで現状を確認してください。

Runtime.enable リークとは何ですか?

Puppeteer と Playwright は、実行コンテキストを追跡するために CDP の Runtime ドメインを有効にします。有効な間、ブラウザは console の引数をページの JavaScript から観測できる形でシリアライズするため、自動化クライアントの存在が露見します。rebrowser-patches と Patchright はドライバー側でこれを有効にしないようにし、Clearcote はエンジン側で無害化します。

rebrowser-patches と Clearcote の違いは?

rebrowser-patches が変えるのは、自動化ライブラリが素の Chrome とやり取りする方法です。Clearcote はブラウザ自体を変えるので、CDP の副作用とフィンガープリントの両方に対処でき、その上で公式の Puppeteer や Playwright を使えます。

関連記事

Q&AWhat is CDP detection?The Chrome DevTools Protocol drives automation but leaves side-effects — Runtime.enable, injected init scripts, main-world execution — that a page can observe. Spotting those is CDP detection.比較Clearcote vs PatchrightPatchright は、パッチ済み Playwright の中で最もよくメンテナンスされているもので、ドライバーからの自動化のリークを取り除くドロップイン置き換えです。ブラウザ自体は変えないため、サイトが読み取るフィンガープリントは手元のマシンのままです。Clearcote はその 1 つ下のレイヤー、つまりエンジンで動作し、両者は組み合わせて使えます。リサーチHow automation gets caught, layer by layerFrom the WebDriver flag to the TLS handshake — the distinct layers a detector reads, and why fixing one rarely helps.比較Clearcote vs CamoufoxCamoufox は Firefox ベースの、よくできたオープンソースのアンチディテクトブラウザです。Clearcote は同じエンジンレベルのアプローチを Chromium で実現しているため、自動化で見せるブラウザが、利用者約 3% のものではなく、Web の約 69% が実際に使っているものになります。比較Clearcote vs CloakBrowserCloakBrowser は多くのユーザーを抱える、実力のあるエンジンレベルのステルス Chromium ですが、パッチ済みのバイナリはクローズドソースです。Clearcote も同じくエンジンレベルで、より新しい Chromium を使い、すべてのパッチを読んで再ビルドできるオープンビルドを提供しています。比較Clearcote vs undetected-chromedriverundetected-chromedriver は今も月間ダウンロード数が約 2M ありますが、最終リリースは 2024 年 2 月です。素の Chrome 上で Selenium/ChromeDriver の継ぎ目を隠すもので、フィンガープリントやネットワーク層には一切手を付けません。Clearcote はその両方をエンジン内で変えます。

オープンソースの Chromium 代替を試す

無料のオープンソース。Playwright & Puppeteer にそのまま組み込め、TLS ハンドシェイクまで整合性を保ちます。

GitHub があればブラウザ 1 つまで無料。カード登録は不要です。