オープンソースの puppeteer-extra-plugin-stealth 代替
stealth プラグインは、Puppeteer に検知対策を後付けする方法として今も最も多くインストールされており、週に 100 万以上ダウンロードされていますが、2023 年 3 月以降リリースがありません。検知対策はどれも素の Chrome に当てる JavaScript のパッチで、JavaScript のパッチは自らの存在を露呈します。Clearcote はそれらの値をエンジン内でネイティブに設定します。
puppeteer-extra-plugin-stealth とは?
puppeteer-extra-plugin-stealth(berstend 作)は、ページのスクリプトが走る前に page.evaluateOnNewDocument で注入される、JavaScript の検知対策モジュールの集まりです。各モジュールが痕跡を 1 つずつパッチします。navigator.webdriver、プラグイン、chrome.runtime、WebGL ベンダー、iframe、コーデックなどです。MIT ライセンスで、npm で週 100 万ダウンロード以上と非常に人気があり、そのアプローチは playwright-stealth や selenium-stealth にも移植されました。
また、実質的にメンテナンスされていません。npm の最終リリース(2.11.2)は 2023 年 3 月で、それ以降リポジトリにはコードがコミットされていません。構造的な限界はそれ以前からのものです。これらは素のエンジンに対する JavaScript の上書きであり、上書きは Function.prototype.toString、書き換えられたプロパティディスクリプタ、そしてパッチが存在しない Web Worker やクロスオリジン iframe からの再読み取りによって露見します。ネイティブの値は変えず、TLS や HTTP/2 には手を付けず、CDP の Runtime.enable リークにも対処していません。README 自身も、ヘッドレス Chromium を検知するあらゆる方法を防ぐのはおそらく不可能だと認めています。
Clearcote vs puppeteer-extra-plugin-stealth
| 機能 | Clearcote | puppeteer-extra-plugin-stealth |
|---|---|---|
| アプローチ | エンジンレベルの C++ パッチ:ネイティブな値 | ドキュメントごとに注入する JavaScript の検知対策 |
| 検知されうる継ぎ目 | なし:すべてのレルム(ページ、ワーカー、iframe)でネイティブ | toString、ディスクリプタ、ワーカーや iframe での再読み取りで露見 |
| TLS / ネットワークの整合性 | 名乗る Chrome に一致(JA3/JA4 + HTTP/2) | 未対応 |
| フレームワーク | Playwright と Puppeteer(Python、Node、.NET) | Puppeteer(Node)、Playwright では playwright-extra |
| メンテナンス状況 | 活発 | 最終リリースは 2023 年 3 月 |
| ライセンス | オープンビルドは BSD-3 | MIT |
| 料金 | オープンビルドは無料、最新ビルドは GitHub で無料 | 無料・オープン |
比較は 2026年11月 時点のものです。puppeteer-extra-plugin-stealth のライセンス:オープンソース(MIT)。内容は変わることがあるため、最新情報は各プロジェクトでご確認ください。
実測:同じ 10 サイトで 12 個のツールを比較
オープンソースの browsers-benchmark ハーネスを 5 回実行しました(最終実行は 2026年10月27日)。各ツールはそれぞれ専用の米国住宅用 IP で、実行ごとに異なる順序で動かしています。「成功」とは、そのサイト向けのハーネス自身のチェックが、ブロックページやチャレンジページではなく本来のページを確認したことを意味します。 Clearcote は Windows デスクトップ(最新ビルド)で計測し、その他のツールは Linux サーバーで計測しました。
puppeteer-extra-plugin-stealth はこのベンチマークに含まれていません。ハーネスに対応するドライバーがないためです。表にはハーネスが対応しているツールを掲載しています。
| ツール | ヘッドフル | ヘッドレス |
|---|---|---|
| Clearcote0.63.2 · r52 | 78%39/50 | 80%40/50 |
| Camoufox0.5.8 · v156.0.1-beta.36 | 72%36/50 | 80%40/50 |
| Invisible Playwright0.43.0 · Firefox | 76%38/50 | 78%39/50 |
| CloakBrowser0.6.4 | 74%37/50 | 64%32/50 |
| SeleniumBase (CDP mode)4.49.0 · Chrome | 74%37/50 | — |
| nodriver0.50.6 · Chrome | 74%37/50 | 40%20/50 |
| Zendriver0.17.1 · Chrome | 64%32/50 | 60%30/50 |
| tf-playwright-stealth (Firefox)1.2.0 | 58%29/50 | 62%31/50 |
| tf-playwright-stealth (Chromium)1.2.0 | 56%28/50 | 50%25/50 |
| Playwright (Chromium)1.62.0 | 56%28/50 | 30%15/50 |
| Playwright (Firefox)1.62.0 | 54%27/50 | 54%27/50 |
| Patchright1.64.3 · Chrome | 24%12/50 | 26%13/50 |
サイト:検索結果ページ, コミュニティフォーラム, ソフトウェア企業のサイト, 高級品小売店, マーケットプレイスの商品ページ, チケット販売サイト, ファッション小売店, 旅行予約サイト, 航空会社, ソーシャルネットワーク。 これは 1 つのネットワーク、1 週間分のスナップショットです。結果はリリースやプロキシ、サイト自体の変化によって毎回変わり、すべてのサイトを毎回読み込めたツールはありませんでした。生データ(JSON)。
Clearcote が選ばれる理由
上書きではなく、ネイティブ
stealth プラグインの検知対策は、どれも検知側に見破られうる JavaScript の上書きです。Clearcote は値をエンジン内で設定するので、ネイティブの値として読み取られ、見つけられる上書きもありません。
レルムをまたいで整合
ページに当てた JavaScript のパッチは、Web Worker やクロスオリジンの iframe では食い違います。エンジンレベルの値はどこでも一致するので、この種の痕跡をふさげます。
ネットワーク層
プラグインは TLS や HTTP/2 に手を出せません。Clearcote のハンドシェイクは名乗っている Chrome のバージョンに従うので、通信内容と JavaScript が一致します。
メンテナンスと検証を継続
Clearcote はリリースごとに公開テストで確認しています。プラグインの検知対策は 2023 年初頭のもので、その後 Chrome は何十ものバージョンを重ねています。
puppeteer-extra-plugin-stealth のほうが向いている場合
- すでに Puppeteer を使っていて、判定の緩い対象サイト向けに 1 行で導入できる検知対策バンドルが欲しい場合。
- 既存の Node スクレイパーにそのまま組み込める、MIT ライセンスのものが必要な場合。
- 公開テストページや古い検知に対しては手軽で、それで足りることもあります。
よくある質問
puppeteer-extra-plugin-stealth は今もメンテナンスされていますか?
活発にはメンテナンスされていません。npm の最終リリース 2.11.2 は 2023 年 3 月の公開で、それ以降リポジトリへのコミットもありません。今もインストールでき、広く使われていますが、検知対策は Chrome の変化に追いついていません。
JavaScript のステルスパッチが検知されるのはなぜですか?
本物の関数を上書きしているからです。検知側は関数を文字列化したり(ネイティブ関数なら [native code] と表示され、上書きした関数は自身のソースが見えます)、プロパティディスクリプタを調べたり、パッチが適用されていない新しい iframe や Web Worker から値を読み直したりできます。エンジンレベルの変更なら、どこでも値がネイティブになるので、この問題は起きません。
Clearcote は stealth プラグインとどう違うのですか?
プラグインは素の Chrome に JavaScript の検知対策を注入します。Clearcote は改造 Chromium で、値はエンジン内でネイティブ、ワーカーや iframe をまたいでも整合し、さらにプラグインでは手の届かない TLS/HTTP-2 のペルソナも備えています。
Playwright 版はありますか?
はい。Node では playwright-extra で同じプラグインを読み込めますし、playwright-stealth はそれを Python に移植したものです。どちらも同じく JavaScript で上書きする設計です。
比較したどのフォークと比べても 2 倍以上のパッチ数。
Chromium にコンパイルされたパッチの数を、アプローチ別に示します。スクリプトベースのツールはエンジンをまったく変更しません。
ステルスプラグイン
例:puppeteer-extra-plugin-stealth
パッチ済みドライバー
例:undetected-chromedriver、nodriver
他の Chromium フォーク
無料ビルドと有料ビルド
Clearcote Pro
r57、Chromium 156
公開されているパッチ数(2026年10月 時点)。範囲は他のフォークの無料ビルドと有料ビルドを含みます。Clearcote の数値は Pro ビルドのものです。
オープンビルドのパッチは公開されています
無料のオープンビルドは BSD-3 で、ソースから再現でき、アカウントも不要です。Pro ビルドは、その上に非公開のパッチを加えています。
GitHub で開くエンジンのリリース 57 回、Chromium メジャーバージョン 7 世代
すべてのパッチを新しい Chromium ごとに移植しています。最新ビルドは新しいメジャーバージョンに公開当日に対応します。
リリースを見る関連記事
オープンソースの Chromium 代替を試す
無料のオープンソース。Playwright & Puppeteer にそのまま組み込め、TLS ハンドシェイクまで整合性を保ちます。
ブラウザ 1 つまで無料:GitHub、カード確認、または会社の Google アカウント。請求は一切ありません。