オープンソースの 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
| 機能 | Clearcote | rebrowser-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 を使えます。
関連記事
オープンソースの Chromium 代替を試す
無料のオープンソース。Playwright & Puppeteer にそのまま組み込め、TLS ハンドシェイクまで整合性を保ちます。
GitHub があればブラウザ 1 つまで無料。カード登録は不要です。