「Puppeteer-stealthがついに通用しなくなってきた」——2026年に入り、Cloudflare・Google・Akamaiの検出システムがJavaScript層のfingerprint偽装を見破るようになり、スクレイピング・AIエージェントの自動化が次々とブロックされている。Puppeteerやplaywright-extra+stealth pluginの限界は、navigator.webdriver=falseをページ実行後にJavaScriptで上書きする方式にあった。実行順を監視されれば、即バレる。
camofox-browser(jo-inc/camofox-browser、★3.7k・MIT・最新v1.8.0/2026-04-27)はこの問題をC++レベルで解決する。FirefoxフォークのCamoufoxをベースに、navigator.hardwareConcurrency・WebGL renderer・AudioContext・Canvas fingerprintをブラウザエンジンの起動前にネイティブで書き換える。JavaScriptが実行される時点で偽装が完了しているため、ページ側からは検出できない。さらにREST APIラッパーをかぶせ、AIエージェントからcurl一発でブラウザ操作ができるようにした。本記事ではcamofox-browserの内部構造、API設計、Obscura・Open Browser・Vercel agent-browserとの比較、AIエージェント実装パターンを徹底解説する。
この記事ではAIエージェント向けステルスブラウザOSSを解説します。AIエージェント全般の比較・選定はAIエージェントフレームワーク比較2026年版をご覧ください。
この記事のポイント
- camofox-browserはCamoufox(Firefoxフォーク)にREST APIをかぶせたステルスブラウザOSS(MIT、★3.7k・390フォーク、2026年5月時点)
- C++レベルで
navigator・WebGL・AudioContextを偽装するため、Puppeteer-stealth系よりCloudflare・Google検出に強い e1・e2形式のアクセシビリティ参照ID+HTML比~90%圧縮スナップショットで、AIエージェントのトークン消費が大幅削減

camofox-browserとは:ステルスブラウザのREST APIラッパー
camofox-browserはCamoufox(Camoufoxチームが開発するFirefoxフォーク)に対するREST APIラッパーで、Node.js(JavaScript 93.3%)で書かれている。「ブラウザを操作する」ことを目的とした他のOSSとは異なり、AIエージェントが安全に・低コストで・検出されずにWebを使えるようにすることに最適化されている。
主要コンセプトは3つだ。
- C++レベル偽装:ブラウザ起動前にfingerprintを書き換えるためJS実行順から検出不能
- Element Reference:ページの操作対象を
e1・e2という安定した参照IDで指定(CSSセレクタ依存を排除) - トークン効率スナップショット:HTMLを直接渡さず、アクセシビリティツリーから抽出したコンパクト表現(HTML比~90%圧縮)
これらはLLMで操作することを前提に設計されており、Claude/GPT/GeminiのコンテキストウィンドウとAPIコストを節約する設計思想がにじむ。
(Claude/GPT/Gemini)"] -->|"REST API"| B["camofox-browser
(Node.js, port 9377)"] B -->|"spawn"| C["Camoufox
(Firefox fork)"] C -->|"C++ patch"| D["navigator.webdriver=false
WebGL renderer 偽装
AudioContext fingerprint 偽装"] C -->|"render"| E["Webページ"] E -->|"a11y tree"| F["スナップショット
(~90%圧縮 + e1/e2参照)"] F --> A B -.->|"GeoIP routing"| G["Residential Proxy
+ locale/timezone自動"] G --> E
内部構造:Camoufoxへの依存と偽装階層
camofox-browser単体ではブラウザエンジンを持たず、Camoufox(独立したFirefoxフォーク)を起動して制御する。Camoufoxの最大の特徴は「fingerprint spoofing at the C++ level」——つまりCPU数・GPU・スクリーン解像度・タイムゾーン・Audio fingerprintなどをFirefoxエンジンのソースコードに改変を入れて偽装していること。
[従来] puppeteer + stealth plugin
起動 → ページ読み込み → JS実行 → stealth pluginがJS書き換え
※実行順監視で検出可能
[camofox-browser]
起動(Camoufox)→ C++偽装が反映済み → ページ読み込み
※起動時点で偽装完了。JS層からは判別不能
これにより、Cloudflare Turnstile・Akamai Bot Manager・Google reCAPTCHAv3・Distil NetworksなどJavaScript fingerprint依存の検出システムを回避できる確率が大幅に上がる。なお、すべてを必ず突破できるわけではなく、IP評判・行動パターン・人間らしい遅延の組み合わせが必要だ(PROXY_*環境変数とResidential Proxyの併用が公式推奨)。
REST APIで動かす:基本フロー
ローカルで起動する場合、コマンドは1行だ。
git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser
npm install
npm start
# → http://localhost:9377 で待ち受け
Dockerやnpmパッケージ経由でもインストールできる。
# Docker
make up # CPUアーキを自動判定
# npmパッケージとして使用
npm install @askjo/camofox-browser
# OpenClawプラグインとして
openclaw plugins install @askjo/camofox-browser
起動後、AIエージェント側からはHTTP APIで操作する。
1. タブを開く
curl -X POST http://localhost:9377/tabs \
-H 'Content-Type: application/json' \
-d '{
"userId": "agent1",
"sessionKey": "task1",
"url": "https://example.com"
}'
レスポンスにはTab IDと初期スナップショットが返る。userId・sessionKeyの組合せでCookie・LocalStorageが分離されるため、複数のWebサイトに別アカウントで同時にログインさせる「マルチユーザーAIエージェント」も簡単に構築できる。
2. アクセシビリティスナップショットを取る
curl "http://localhost:9377/tabs/TAB_ID/snapshot?userId=agent1"
{
"ref": "e1", "role": "heading", "text": "Welcome"
}
{
"ref": "e2", "role": "link", "text": "Sign in", "href": "/login"
}
{
"ref": "e3", "role": "textbox", "label": "Email", "required": true
}
HTMLそのものを返さず、アクセシビリティツリー(ARIA roles)を圧縮した表現でAIに渡す。LLMはCSSセレクタを推測する必要がなく、e2という安定IDを指してクリックすればよい。
3. クリック・タイプ操作
# e2をクリック
curl -X POST http://localhost:9377/tabs/TAB_ID/click \
-d '{"userId": "agent1", "ref": "e2"}'
# テキスト入力+Enter
curl -X POST http://localhost:9377/tabs/TAB_ID/type \
-d '{"userId": "agent1", "ref": "e3", "text": "[email protected]", "pressEnter": true}'
4. 検索マクロで一発移動
camofox-browserは15以上の検索マクロを内蔵する。Google・YouTube・Amazon・Reddit・Wikipedia・Twitter・LinkedIn・Instagram・TikTok・Twitch・Spotify・Netflix・Yelpなど。
curl -X POST http://localhost:9377/tabs/TAB_ID/navigate \
-d '{"userId": "agent1", "macro": "@google_search", "query": "ai agent OSS"}'
LLMに「@google_searchを呼び出せ」とプロンプトしておくだけで、検索結果ページに到達できる。LLMがURLを組み立てるトークンを節約する効果が大きい。
5. YouTube字幕の抽出(yt-dlp連携)
curl -X POST http://localhost:9377/youtube/transcript \
-d '{
"url": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
"languages": ["ja", "en"]
}'
yt-dlpを内部で呼び出し、字幕テキストを返す。動画コンテンツをLLMに要約させるユースケースで便利だ。詳細はyt-dlp 2026完全ガイドを参照。
プロキシ・GeoIPルーティング
スクレイピングの実用度を決めるのはIP戦略だ。camofox-browserは2モードで対応する。
# Simpleモード(固定プロキシ)
export PROXY_HOST=166.88.179.132
export PROXY_PORT=46040
export PROXY_USERNAME=myuser
export PROXY_PASSWORD=mypass
# Backconnectモード(プロキシゲート→ランダムIP)
export PROXY_STRATEGY=backconnect
export PROXY_BACKCONNECT_HOST=gate.provider.com
export PROXY_BACKCONNECT_PORT=7000
注目すべきはlocale・timezone自動マッチだ。プロキシIPがフランクフルトなら、ブラウザはAccept-Language: de-DE、Intl.DateTimeFormat().resolvedOptions().timeZone === 'Europe/Berlin'を返す。「IPは独で言語は英、時刻は東京」のような不自然な組合せをエンジン側で防ぐ点が強い。
既存ブラウザOSSとの比較:8選を縦串
ai-archive-jpではこれまで複数のAIエージェント向けブラウザ/スクレイピングOSSを取り上げてきた。用途・偽装手法・成果物の粒度で整理すると、camofox-browserの立ち位置が明確になる。
| OSS | 言語 | 形態 | 偽装レイヤ | 出力形式 | 主な強み |
|---|---|---|---|---|---|
| camofox-browser | Node.js | REST API | C++(Camoufox) | a11yツリー(~90%圧縮) | Cloudflare/Google検出回避+トークン効率 |
| Obscura | Rust | CDPサーバー | Rust+V8独自実装 | DOM全体 | Chrome不要・85ms読み込み・3,520ドメインブロック |
| Open Browser | TypeScript | LLMエージェント | Playwright+一般stealth | LLM任せ | 自然言語タスク・Vercel AI SDK統合 |
| Vercel agent-browser | Rust | CLI | Chrome for Testing | a11yツリー(ref参照) | CLI起動・Node.js不要 |
| cloudscraper | Python | requestsラッパ | TLS模倣 | HTMLのみ(JS不実行) | 軽量・JS不要のサイト向け |
| Spider Rs | Rust | クローラーフレームワーク | 標準HTTP | 構造化URL集合 | 大規模サイトマッピング |
| reddit-universal-scraper | Python | サイト特化ツール | Reddit API+HTML | JSON | Reddit特化・APIキー不要 |
| Firecrawl MCP | TS(SaaS) | MCPサーバー | クラウド側 | Markdown化済み | Claude Code/CursorからMCPで呼べる |
camofox-browserの独自性は次の3点だ。
1. C++レベル偽装の希少性
Obscuraも独自実装で偽装するが、Firefoxレンダリングエンジンそのものを書き換えているのはCamoufoxの系譜だけ。Cloudflare Turnstileが2026年に強化された新検出ロジックに対しても、Firefoxの正規fingerprintパターンを維持する点で優位がある。
2. REST APIで言語非依存
ObscuraやOpen BrowserはNode.js/Python前提だが、camofox-browserはHTTP APIなので任意の言語から呼べる。Claude Code・Cursor・Cline・GitHub CopilotなどのMCPサーバー経由で接続するパターンが組みやすい。
3. トークン効率の徹底
a11yツリーベースのe1・e2参照はVercel agent-browserが先行して採用していたが、camofox-browserはスナップショット形式・検索マクロ・YouTube transcriptまで含めて「LLMが食べる前提のサーバー」として設計されている。
注意点:camofox-browserはCamoufox本体に依存するため、Camoufoxのアップデート遅延がそのまま利用可否に響く。Firefoxのリリースサイクルと同期するため、Chromiumベースの最新Web標準(2026年Q1のWebGPU仕様変更など)への追随がやや遅い。動的なWebGL/WebGPUを大量に使うサイトで挙動が不安定な場合はObscuraやVercel agent-browserと使い分けるべきだ。
用途別の選定フローチャート:camofoxを使うべきか
「どのOSSを使うべきか」をフローチャート化した。8つのOSSの中から目的に最適なツールを5問以下で導く。
(JS実行が必要)?"} B -->|"No・静的HTML"| C{"単一サイト特化?"} B -->|"Yes"| D{"Cloudflare/Google検出が壁?"} C -->|"Reddit"| E["reddit-universal-scraper"] C -->|"汎用クローラー"| F["Spider Rs"] C -->|"Cloudflare回避だけ"| G["cloudscraper"] D -->|"No・通常のSPA"| H{"自然言語タスク?"} D -->|"Yes・厳格"| I{"言語制約は?"} H -->|"はい・LLM中心"| J["Open Browser"] H -->|"いいえ・スクリプト"| K{"Chromeバイナリ可?"} K -->|"Yes・軽量"| L["Vercel agent-browser"] K -->|"No・Chrome排除"| M["Obscura"] I -->|"Node.js or 多言語"| N["camofox-browser"] I -->|"Claude/Cursorから直接"| O["Firecrawl MCP"] style N fill:#ffe6cc,stroke:#d79b00,stroke-width:3px
camofox-browserが第一候補になるのは「SPA × Cloudflare/Google検出が厳しい × 多言語クライアント/REST APIで分離したい」という3条件が揃うケースだ。
コスト比較:自前運用 vs 商用ステルスSaaS
camofox-browserをセルフホストする場合と、商用APIを使う場合のコスト感を整理する(2026年5月時点の参考価格)。
| サービス | 月額目安(10万リクエスト) | 同時セッション | 偽装品質 | 備考 |
|---|---|---|---|---|
| camofox-browser(Fly.io) | 約$15〜30(VM代のみ) | 30〜50 | C++レベル | 設定・運用工数あり |
| camofox-browser(Railway) | 約$20〜40 | 30〜50 | C++レベル | デプロイ容易 |
| Bright Data Browser API | 約$500〜1,500 | 無制限 | 商用級 | サポート手厚い |
| ZenRows | 約$200〜800 | 100〜 | 商用級 | プロキシ込み |
| Browserless Stealth | 約$200〜500 | 50〜 | 商用級 | クラウドのみ |
| ScrapingBee | 約$150〜600 | 50〜 | プロキシ依存 | 入門向け |
月10万リクエスト規模なら自前運用で月数十ドルに収まる。100万リクエスト超や24/7稼働が必要、SLAが要る場合は商用SaaSの優位性が出てくる。中規模事業者は自前で立てて、トラフィック急増時だけ商用にバーストするハイブリッドが現実的だ。
ベンチマーク観点:何で測るか
camofox-browserの「実力」を評価する場合、次の指標で測ると公平な比較ができる。
| 指標 | 測り方 | camofox-browserの傾向 |
|---|---|---|
| 検出突破率 | 100サイトの自動アクセス成功率 | Cloudflare系で他OSSより高い |
| ページ取得時間 | DNS解決〜snapshot返却 | Firefoxレンダリング分やや遅い(〜1.5倍) |
| メモリ使用量 | アイドル時の常駐メモリ | ~40MB(Camoufox本体は別途) |
| トークン消費 | スナップショット1枚のトークン数 | HTML比~90%削減(GPT-4換算) |
| 再現性 | 同一手順で同じ結果か | 高い(Bearer認証+セッションIDで担保) |
検出突破率は対象サイトと時期に強く依存するため、自社のターゲットサイト10件で必ずA/Bテストしてから本番採用すべきだ。
AIエージェント実装パターン
camofox-browserをClaude Codeなどのエージェントから使う最小構成を示す。
パターン1:Claude Codeのカスタムツールから呼ぶ
// claude-code-tool.ts
import fetch from 'node-fetch';
const CAMOFOX_BASE = 'http://localhost:9377';
export async function browseAndExtract(query: string) {
// タブ作成
const tab = await fetch(`${CAMOFOX_BASE}/tabs`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
userId: 'claude',
sessionKey: Date.now().toString(),
url: 'https://www.google.com'
})
}).then(r => r.json());
// Google検索マクロを呼び出し
await fetch(`${CAMOFOX_BASE}/tabs/${tab.id}/navigate`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
userId: 'claude',
macro: '@google_search',
query
})
});
// スナップショットを取得(LLMにそのまま渡せる形式)
return fetch(`${CAMOFOX_BASE}/tabs/${tab.id}/snapshot?userId=claude`)
.then(r => r.text());
}
このコードは100行未満でClaude Codeから自然言語Web検索エージェントを作る。詳細な統合パターンはClaude Code完全ガイド2026で扱った。
パターン2:Fly.io/Railwayにデプロイしてマルチエージェント運用
camofox-browserはFly.io・Railway用の設定例が同梱されている。マルチテナントで動かすには以下を設定する。
# .env
CAMOFOX_PORT=9377
CAMOFOX_ACCESS_KEY=very-long-random-key # Bearer認証
MAX_SESSIONS=100 # 同時セッション
SESSION_TIMEOUT_MS=1800000 # 30分でアイドルセッション削除
CAMOFOX_API_KEY=cookie-import-key # cookieインポート許可
Bearer認証は全エンドポイントに対して有効になるため、外部公開する際の必須項目だ。MAX_SESSIONSを超えるとLRUで古いセッションが破棄される。
パターン3:MCPサーバーとしてClaude Code/Claude Desktopから
camofox-browserのREST APIを薄くラップしたMCPサーバーを立てれば、Claude Desktopなどからも自然言語で呼び出せる。MCPの作り方はMCPサーバーの作り方2026完全ガイドを参照。
// mcp-server.js(最小例)
import { Server } from '@modelcontextprotocol/sdk/server';
const server = new Server({ name: 'camofox-mcp' });
server.setRequestHandler('tools/call', async ({ name, args }) => {
if (name === 'browse') {
const tab = await fetch(`http://localhost:9377/tabs`, {
method: 'POST',
body: JSON.stringify({ userId: 'mcp', url: args.url })
}).then(r => r.json());
return await fetch(`http://localhost:9377/tabs/${tab.id}/snapshot?userId=mcp`)
.then(r => r.text());
}
});
法的リスク:日本法・米国法・GDPRの3層で必ず確認
camofox-browserは検出を回避できる強力なツールだが、「技術的に可能」と「法的に許容される」は完全に別問題だ。日本のエンジニアが特に注意すべき法令と判例を整理する。
日本法における主なリスク
| 法令 | 違反になるケース | 罰則の目安 |
|---|---|---|
| 不正アクセス禁止法 | ID/Password・cookieを不正に取得して認証を突破 | 3年以下の懲役または100万円以下の罰金 |
| 電子計算機損壊等業務妨害罪(刑法234条の2) | 過剰なリクエストでサーバーをダウンさせる | 5年以下の懲役または100万円以下の罰金 |
| 著作権法 | スクレイピングしたコンテンツを再配布・公開 | 10年以下の懲役または1000万円以下の罰金 |
| 個人情報保護法 | 取得した個人情報を本人同意なく第三者に提供 | 1億円以下の罰金(法人) |
| 不正競争防止法 | データベース著作物の組織的な複製・利用 | 民事差止+損害賠償 |
特に業務妨害罪は「岡崎市立中央図書館事件(Librahack事件、2010年)」で適用された前例があり、意図せずサーバーに高負荷をかけただけで逮捕される可能性がある点に要注意。詳細はサプライチェーンセキュリティ完全ガイドで関連リスクを扱った。
著作権法30条の4:機械学習目的のデータ収集は原則OK、ただし
2019年改正の著作権法30条の4により、情報解析(機械学習を含む)目的での著作物利用は原則として権利者の許諾不要となった。ただし以下は対象外:
- 収集データそのものを商用配布するケース(例:スクレイピングした記事を自社メディアで再公開)
- 権利者の利益を不当に害する態様(例:有料コンテンツを回避してスクレイピング)
- アクセス制御を回避して取得した著作物(不正アクセス禁止法と二重に違反)
camofox-browserの「ステルス」要素は、サイト運営者が意図的に設置したアクセス制御を回避する性格を帯びる場合があり、著作権法30条の4の保護を受けられない可能性がある。法務に確認するのが安全だ。
米国法・GDPR・主要判例
- hiQ Labs v. LinkedIn(米国・2022年最高裁差戻し後の和解):公開ページのスクレイピングはCFAA違反にならない可能性が高いが、LinkedIn側のToS違反による損害賠償請求は別途成立しうる
- Computer Fraud and Abuse Act(CFAA):認証回避を伴うアクセスは米国で刑事責任に直結
- GDPR第6条・第14条:EU居住者の個人データを取得した場合、取得元と利用目的を本人に通知する義務が発生
- EU AI Act(2024年施行):高リスクAIシステムでスクレイピングデータを使う場合、データガバナンス義務(10条)の対象
グレー/レッドゾーンの判定マトリクス
camofox-browserで何を取得するかを決める前に、以下の表で自己判定する。
| 対象 | 認証 | 用途 | 判定 | 推奨 |
|---|---|---|---|---|
| 公開ニュース・公開価格 | 不要 | 機械学習・社内分析 | 🟢 グリーン | 慎重に進めてよい |
| 公開SNS(Reddit・X) | 不要 | センチメント分析 | 🟡 イエロー | ToS確認・低レート |
| 商品価格(EC) | 不要 | 競合分析 | 🟡 イエロー | 不正競争防止法・robots.txt確認 |
| ログイン後コンテンツ | 必要 | 個人利用 | 🟡 イエロー | 自分のアカウント・自己責任 |
| ログイン後コンテンツ | 必要 | 第三者代行 | 🔴 レッド | 不正アクセス禁止法のリスク |
| 有料コンテンツ | 認証回避 | 商用 | 🔴 レッド | 明確な違法 |
| 個人情報(顔写真・氏名) | 不問 | データ販売 | 🔴 レッド | 個人情報保護法・GDPR違反 |
運用ガイドライン:レート制限・robots.txt・連絡先表示
合法な用途であっても、サイト運営者からの民事請求リスクは別に存在する。次の3点は最低限守りたい。
User-Agentに連絡先メールを明記:例MyBot/1.0 (mailto:[email protected])——ブロックされた時に削除依頼でなく交渉に持ち込める- robots.txtを尊重:法的拘束力はないが、訴訟時に「悪意」の認定要素になる
- サイト負荷の上限設定:1秒1リクエスト以下、同時並列は2〜3まで。深夜帯に集中させない
# camofox-browserで連絡先入りUAを送る例
export USER_AGENT="MyResearchBot/1.0 (+https://example.com/bot; mailto:[email protected])"
# 同時セッション数とタイムアウトで自然にレート制限
export MAX_SESSIONS=3
export SESSION_TIMEOUT_MS=900000 # 15分
Cloudflareは2026年にエージェント向けの正規ルート(Agent Registry / Privacy Pass)を整備しており、長期的にはステルス回避ではなく正規認可ルートでの取得が主流になる方向だ。商用サービスとしてWebスクレイピングを継続するなら、Agent Registry登録を検討すべきフェーズに入っている。
免責事項:この記事の法的整理は参考情報であり、具体的な案件への適用は弁護士に相談すること。特に事業として継続的にスクレイピングを行う場合、利用規約レビュー・法的リスク評価・データ保護影響評価(DPIA)を事前に実施するのが望ましい。
camofox-browser自体のセキュリティモデル
camofox-browserをインフラとして運用する観点でのセキュリティ機能。
- Cookie importはデフォルト無効:
CAMOFOX_API_KEYを発行しないと/cookies/*は呼べない - Bearer Token認証:
CAMOFOX_ACCESS_KEYで全エンドポイントを保護 - Path Traversal対策:cookieファイルパスのサニタイズ
- Telemetryはオプトアウト可能:
CAMOFOX_CRASH_REPORT_ENABLED=falseで無効化 - 環境変数の中央管理:認証情報をコード埋め込みしない設計
セルフホストする場合、Bearer認証なしで公開すると第三者がBOTインフラとして悪用するリスクがある。社内VPN内に限定するか、Cloudflare Access等のZero Trust認証で囲む構成が安全だ。
商用ステルスブラウザとの違い:OSSであることの価値
商用のステルスブラウザ(Bright Data Browser API、ZenRows Browser、Browserless Stealth等)はブラックボックスで、何をどう偽装しているかが分からない。camofox-browserは:
- MITライセンスでフルOSS:偽装ロジックをすべて読める
- Camoufox本体もOSS:Firefoxパッチがgit blameで追跡可能
- Telemetry実装まで公開:Cloudflare Worker側のソースコードが監査可能
- ★3.7k・390フォーク:コミュニティによる実環境検証
これは「自分のスクレイピング基盤に責任を持ちたい」企業や研究者にとって、商用サービスにはない透明性を提供する。検出ロジックがブラックボックス化された商用APIは、ベンダーが偽装を弱めても利用者から見えないという致命的な弱点を抱えている。
FAQ
Q. Puppeteer-stealthからの移行コストは?
A. APIが大きく異なる。Puppeteer-stealthはNode.js APIでpage.click(selector)の世界だが、camofox-browserはREST APIでPOST /tabs/{id}/click {ref: "e2"}の世界。CSSセレクタ依存のコードを全削除する必要があるため、書き直しに近い。逆にAIエージェントから使うなら最初からcamofoxの方が簡潔。
Q. Chromiumベースのブラウザ(Chrome / Edge)の偽装はできない?
A. できない。CamoufoxはFirefoxフォークに限定される。Chromiumベースで似たアプローチを取りたい場合はObscura(Rust+V8)か商用サービス(Bright Data等)を検討する。
Q. 同時セッション数の上限は?
A. デフォルト50(MAX_SESSIONS)。1セッションあたり~40MB(アイドル時)+ Camoufoxプロセスのメモリで、t3.medium(4GB RAM)クラスのVMで30〜50セッションが目安。Fly.io・Railway上では水平スケールで分散させる。
Q. CAPTCHA・reCAPTCHAは突破できる?
A. 単独では突破しない。reCAPTCHAv3のような行動スコア型は正規の人間ぽい操作+良質なIP+fingerprint一致の3つで通過確率が上がる。完全自動化したい場合は2Captcha・CapSolverのようなCAPTCHA解決サービスとの併用が一般的。
Q. ライセンスはMITだが、商用利用しても問題ない?
A. MIT準拠で商用利用可能。ただしスクレイピング先サイトの利用規約には別途従う必要がある。日本の判例(Librahackなど)と海外の判例(hiQ Labs vs LinkedInなど)の双方を踏まえて運用すべき。
Q. cookieのインポートで Netscape形式が要求されるのはなぜ?
A. yt-dlpや古典的なcurlユーティリティとの互換性のため。ブラウザ拡張「Get cookies.txt」「EditThisCookie」などで生成できる。~/.camofox/cookies/<name>.txtに置くと、/tabs作成時にcookieFileパラメータで指定できる。
Q. Browserbaseとの違いは?
A. Browserbaseはクラウドホスト型ステルスブラウザのSaaSで、月額課金。camofox-browserはセルフホスト型OSSで、インフラコストのみ。同時セッションが少ない(〜数十)うちはBrowserbase、コスト重視・大量並列ならcamofox-browserがフィットする。
まとめ:AIエージェントの「Web入口」を再設計するOSS
camofox-browserはPuppeteer-stealthが達成できなかったC++レベル偽装と、AIエージェントに最適化されたREST API+a11yスナップショットを組み合わせた、2026年時点で最も筋の良いステルスブラウザOSSの一つだ。Obscura・Open Browser・Vercel agent-browserと並べて検討すれば、用途に応じた選定基準が見えてくる。
特に「Cloudflare系サイトを検出されずに巡回したい」「AIエージェントのトークン消費を抑えたい」「多言語クライアントから呼びたい」の3条件が揃うなら、第一候補に置いて間違いない。Webスクレイピングの法的・倫理的グラデーションを十分理解した上で、自社のAI基盤に組み込んでみたい。