Fortress(BSD リリース)からの移行
Fortress の BSD ライセンスのリリース(v149、v150、v151)を CDP エンドポイントとして使っている場合は、ブラウザの起動方法を変えることで、その構成を Clearcote に移せます。エンドポイントに接続するコードはそのままです。
Fortress は 2026 年 9 月 30 日の v3(Chromium 153)で独自のソースアベイラブルライセンスに移行しましたが、それより前のリリースは BSD-3 ライセンスのままです。このガイドは、そうした BSD リリースを使っていて、v3 ではなく Clearcote に移行したいチーム向けです。ライセンス、料金、プラットフォームを並べた比較は Clearcote vs Fortress をご覧ください。
変わるところ
| Fortress の起動方法 | Clearcote での起動方法 |
|---|---|
Python:tilion-fortress の Fortress()、続いて f.cdp_url | clearcote の serve()、続いて srv.cdp_url |
Node:Fortress.launch()、続いて f.cdpUrl | clearcote の await serve()、続いて srv.cdpUrl |
Docker:ポート 9222 で tilion/fortress:149、:150、:151 のいずれか | ポート 9222 で teamflatearth/clearcote |
tilion ランチャー、または --remote-debugging-port=9222 を付けたバイナリ | clearcote serve --port 9222 |
接続呼び出しより後のコード、つまり Playwright、Puppeteer、browser-use、Crawl4AI、Stagehand のコードはそのままで構いません。最初に 1 つ確認してください。tilion/fortress:latest イメージタグは 2026 年 9 月 30 日から v3 を指しているため、:latest を pull している構成はもう BSD リリースではありません。移行が終わるまでは :149、:150、:151 のいずれかに固定してください。
Python と Node:serve()
serve() は SDK の起動設定(ペルソナ、プロキシ、デフォルト設定)で Clearcote を起動してループバック上に CDP エンドポイントを開き、そのエンドポイントの URL を持つハンドルを返します。ほかのコードが以前のアドレスを前提にしている場合は port=9222 を渡してください。指定しなければ、serve() は空いているポートを選びます。
# pip install -U clearcote
from clearcote import serve
from playwright.sync_api import sync_playwright
with serve(fingerprint="acct-1", port=9222) as srv: # was: with Fortress() as f:
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(srv.cdp_url) # was: f.cdp_url
page = browser.contexts[0].new_page() # the served profile
page.goto("https://example.com")
print(page.title())
browser.close() # disconnect before the with blocks endclose() はブラウザを停止し、終了を待ってから、serve() が作成した一時プロファイルを削除します。Python では with ブロックがこれを自動で呼び出します。browser-use、Crawl4AI、Stagehand では、それぞれの CDP 設定に srv.cdp_url(Node では srv.cdpUrl)を渡してください。.NET SDK にも同じ呼び出しが ServeAsync として用意されています。詳しくは Puppeteer などの CDP クライアントをご覧ください。
Docker
イメージを差し替え、ポートはそのままにします。クライアントは以前と同じアドレスに接続します。
# was: docker run --rm -p 9222:9222 tilion/fortress:151
docker run -d --rm -p 127.0.0.1:9222:9222 -e CC_FINGERPRINT=acct-1 teamflatearth/clearcote
# the latest build: pass your key from the environment and keep the download in a volume
docker run -d --rm -p 127.0.0.1:9222:9222 -e CC_FINGERPRINT=acct-1 \
-e CLEARCOTE_LICENSE_KEY -v clearcote-cache:/opt/xdg-cache teamflatearth/clearcotebrowser = p.chromium.connect_over_cdp("http://localhost:9222") # unchanged
page = browser.contexts[0].new_page() # the container's own profile-p 127.0.0.1:9222:9222 にすると、エンドポイントはこのマシンの中に留まります。CDP ポートはブラウザを完全に操作できる入り口なので、公開するのは信頼できるネットワークだけにしてください。アイデンティティを選んだり再利用したりするには CC_FINGERPRINT を指定してください。指定しない場合、sdk-0.39.0 以降のイメージはコンテナごとにランダムなシードを割り当て、それより古いイメージはすべてのコンテナに同じシードを使います。イメージの設定はすべて環境変数(プラットフォーム、言語、タイムゾーン、プロキシ)で行い、その一覧は デプロイにあります。
シェルから:clearcote serve
バイナリや tilion ランチャーを自分で起動し、クライアントをポート 9222 に接続させていた場合は、clearcote serve(Python と Node のパッケージに含まれています)が常駐型の置き換え先になります。パラメーターなしの接続には共有のデフォルトブラウザが 1 つ割り当てられるので、既存のクライアントは変更なしで動きます。接続ごとに、URL で専用のアイデンティティを指定することもできます。
# was: tilion --headless=new --remote-debugging-port=9222 --user-data-dir=/tmp/p
clearcote serve --port 9222
# connect_over_cdp("http://127.0.0.1:9222") # the shared default browser
# connect_over_cdp("http://127.0.0.1:9222?fingerprint=acct-1") # a browser of its own for acct-1動作が異なる点
- アイデンティティはシードから決まります。BSD リリースの Fortress では、ランチャーが整合性のあるデフォルトの Windows ペルソナを 1 つ適用します。これを変更するには、
--uxr-*スイッチ(--uxr-timezone、--uxr-languages、--uxr-screen-width、--uxr-canvas-seedなど)やTILION_TZ/TILION_LANGを使って項目ごとに指定します。Clearcote は、サイトごとの canvas と WebGL のノイズも含めたペルソナ全体を、1 つのfingerprintシードから導出します。そのため、同じシードからは毎回同じアイデンティティが、新しいシードからは無関係なアイデンティティが得られます。--uxr-*の値を 1 つずつ移植するのではなく、アカウントごとに専用のシードを割り当ててください。プラットフォームはplatformで、タイムゾーンと言語はtimezoneとaccept_language(Node ではacceptLanguage)で設定するか、geoip でプロキシに合わせてください。推奨設定を参照してください。 - ページは提供されたプロファイルで開きます。例のように
browser.contexts[0]を使ってください。Puppeteer ではdefaultViewport: nullを指定して接続し、ウィンドウがペルソナで決まったサイズを保つようにします。 - プロキシはクライアントではなく Clearcote に渡します。
serve()にはproxyを、clearcote serveには--proxyを渡し、geoip を有効にして、タイムゾーン、言語、WebRTC アドレスをプロキシの出口に合わせます。ユーザー名とパスワードで認証するプロキシには最新ビルドが必要です。オープンビルドでは、IP で認証するプロキシを使ってください。プロキシと geoipを参照してください。 - Fortress 独自のスイッチや環境変数は、ここでは何の効果もありません。Clearcote のオプションは 起動オプションと フィンガープリントフラグにまとめています。
- 人間らしい入力は
launch()のオプションです。Playwright 側で動作するため、CDP 経由で接続したクライアントには適用されません。 - プラットフォームは BSD リリースと同じです:Windows x64 と Linux x64 で、Docker イメージは x64 用です。
どの Clearcote ビルドが使われるか
ライセンスキーがない場合、SDK とイメージはオープンビルドで動作します。BSD-3 で、すべてのパッチが公開され再現可能、Chromium 150 ベースで、アカウントは不要です。キーがあれば最新ビルド(Chromium 154)で動作します。これは非公開パッチを追加したビルドで、同時に 1 ブラウザまでなら GitHub で無料、それ以上は Pro です。キーは clearcote login で保存するか、CLEARCOTE_LICENSE_KEY を設定してください。インストールを参照してください。
切り替えを確認する
エンドポイントを起動した状態で、何が応答しているかを問い合わせます:
curl -s http://127.0.0.1:9222/json/version # the browser behind the endpoint
clearcote info # SDK, licence, cached build and a launch testclearcote info は、解決したビルドタグと、正確なブラウザバージョン付きの Launch test ok を表示します。各ビルドが報告するはずのバージョンと、チェックが失敗したときの対処は、セットアップ手順書にまとめています。