本文へスキップ

オープンソースの 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

機能Clearcotepuppeteer-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 · r5278%39/5080%40/50
Camoufox0.5.8 · v156.0.1-beta.3672%36/5080%40/50
Invisible Playwright0.43.0 · Firefox76%38/5078%39/50
CloakBrowser0.6.474%37/5064%32/50
SeleniumBase (CDP mode)4.49.0 · Chrome74%37/50—
nodriver0.50.6 · Chrome74%37/5040%20/50
Zendriver0.17.1 · Chrome64%32/5060%30/50
tf-playwright-stealth (Firefox)1.2.058%29/5062%31/50
tf-playwright-stealth (Chromium)1.2.056%28/5050%25/50
Playwright (Chromium)1.62.056%28/5030%15/50
Playwright (Firefox)1.62.054%27/5054%27/50
Patchright1.64.3 · Chrome24%12/5026%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

0

パッチ済みドライバー

例:undetected-chromedriver、nodriver

0

他の Chromium フォーク

無料ビルドと有料ビルド

35–87

Clearcote Pro

r57、Chromium 156

240

公開されているパッチ数(2026年10月 時点)。範囲は他のフォークの無料ビルドと有料ビルドを含みます。Clearcote の数値は Pro ビルドのものです。

試す

365 項目のチェックを、無料で、あなたのブラウザで

すべての Clearcote ビルドに課しているフィンガープリントテストです。今お使いのものでも実行して比べてみてください。

テストを実行
読む

オープンビルドのパッチは公開されています

無料のオープンビルドは BSD-3 で、ソースから再現でき、アカウントも不要です。Pro ビルドは、その上に非公開のパッチを加えています。

GitHub で開く
リリースを追う

エンジンのリリース 57 回、Chromium メジャーバージョン 7 世代

すべてのパッチを新しい Chromium ごとに移植しています。最新ビルドは新しいメジャーバージョンに公開当日に対応します。

リリースを見る

関連記事

ドキュメントMigrating from puppeteer-extra-plugin-stealthKeep Puppeteer, drop the stealth plugin: connect it to Clearcote's serve(), where the fingerprint is set in the engine. Option mapping and code.Q&AWhy does Function.toString() reveal a hooked function?Calling toString() on a native function returns “[native code]”; an override returns its own source instead — so detectors stringify APIs to catch JavaScript spoofs.比較Clearcote vs playwright-stealthplaywright-stealth は、Python の Playwright にステルス機能を加える最も手軽な方法です。ラッパーを 1 つかませるだけで、すべてのページに一連の JavaScript の検知対策が入ります。ただしその検知対策は素のブラウザに対する上書きで、メンテナー自身も概念実証(PoC)だと位置づけています。Clearcote はそれらの値をエンジン内でネイティブに設定するので、ページが見つけられる上書きがそもそもありません。リサーチCoherence over camouflage: why a plausible identity beats a hidden oneMost stealth tooling tries to hide. The signals that survive scrutiny don't hide — they agree with each other.比較Clearcote vs CamoufoxCamoufox は Firefox ベースの、よくできたオープンソースのアンチディテクトブラウザです。Clearcote は同じエンジンレベルのアプローチを Chromium で実現しているため、自動化で見せるブラウザが、利用者約 3% のものではなく、Web の約 66% が実際に使っているものになります。比較Clearcote vs CloakBrowserCloakBrowser は多くのユーザーを抱える、実力のあるエンジンレベルのステルス Chromium ですが、パッチ済みのバイナリはクローズドソースです。Clearcote も同じくエンジンレベルで、すべてのパッチを読んで再ビルドできるオープンビルドを提供しています。比較Clearcote vs undetected-chromedriverundetected-chromedriver は今も月間ダウンロード数が約 2.5M ありますが、最終リリースは 2024 年 2 月です。素の Chrome 上で Selenium/ChromeDriver の継ぎ目を隠すもので、フィンガープリントやネットワーク層には一切手を付けません。Clearcote はその両方をエンジン内で変えます。

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

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

ブラウザ 1 つまで無料:GitHub、カード確認、または会社の Google アカウント。請求は一切ありません。