Paprika
分散ワーカー上の Chrome を Playwright スタイルの Python・PHP で操作、 AI を使って、ページの画像・動画・リンクをまとめて収集するブラウザ自動化プラットフォーム。
5 分で動かす → なぜ Paprika? Client インストールWikipedia の記事を投入 → 管理画面のライブパネル「ギャラリー」に画像が次々と並んでいく実際の動作(ハブ・ワーカー上で稼働中)。
Paprika とは
URL を渡すと、フリート上の実ブラウザがページを開き、画像・動画・HTML を収集して返します。 ログインが必要・JavaScript で描画される、といった「機械的な巡回が難しいサイト」でも安定して動くことを目指した基盤です。
主な用途は サイトアーカイブ・画像/動画の一括収集・証拠保全・新着監視など。 類似ツール(Stagehand、Browser-Use、Browserable)との違いは なぜ Paprika? に整理しています。
使い方は 3 通り。用途に合わせて選べます。
管理画面
ブラウザだけ。URL を貼って実行ボタン。コード不要。
HTTP API
curl や任意の言語(JS / Go / Ruby …)から REST/JSON で叩く。
SDK(Python / PHP)
Playwright スタイルで本格スクリプト。async / sync 両対応。
できること
画像・動画の一括取得
ブラウザが実際に読み込んだものをそのまま回収(URL に再リクエストしない)。遅延ロード・動画ストリームも対象。認証済みの画像も取りこぼしません。
Playwright スタイル SDK
page.goto() / click() / fill() に加え、evaluate()・待機・Locator まで。
AI コード生成(codegen-loop)
自然言語のゴールを渡すと LLM がスクリプトを生成・実行・失敗時に再生成。成功した script はそのまま rerun で再利用(次回からは LLM 不要・決定的)。
Chrome 拡張で JS 注入
同梱の paprika-agent 拡張(userScripts 権限)で、CDP では届かない領域(リクエストヘッダ書き換え、Content Settings、Proxy、Privacy)まで操作。任意の JS を全ページに常駐注入できます。
既存 Chrome 拡張を利用可能
普段使いの拡張(uBlock Origin / Bitwarden 等)を そのままワーカーに持ち込める(--load-extension)。広告抜きで収集、保存パスワードで自動ログインなど。
Chrome プロファイル流用
普段使いの Chrome の User Data フォルダをアップロードするだけ。Cookie / 保存パスワード / autofill / 拡張機能まで一式持ち込み、認証必須サイトもそのまま開けます(use_profile)。
最短の例
1 つの記事ページの画像を全部ダウンロードする:
import asyncio
from paprika_client import async_paprika
async def main():
async with async_paprika.connect() as cli:
job = await cli.fetch("https://example.com/article") # 開いて収集
await cli.download_job_assets(job.job_id, "out/") # 画像を保存
asyncio.run(main())
ブラウザを対話的に動かしたいときは cli.session():
async with cli.session("https://example.com") as page:
await page.click("text=ログイン")
await page.fill("#user", "alice")
await page.screenshot(path="shot.png")
次のステップ
自分の目的に近い行に沿って読み進めると最短です。
背景 — paps / ProtectionAI
特定非営利活動法人ぱっぷす(paps.jp)は、性的搾取・デジタル性暴力被害の相談窓口です。 意に反して拡散された画像・動画の探索と、サイト・プラットフォーム運営者への削除要請までを補助するシステム ProtectionAI を開発しています(対面・電話・メール・SNS で被害相談を受付)。
その探索基盤として、複雑なサイトでも安定してページを開き画像・動画・リンクを収集できる汎用クローラーが必要になり、Paprika が生まれました。 本リポジトリには被害者画像の検出ロジックは含まれず(それは ProtectionAI 側)、ここで公開しているのは汎用的な Web 自動化基盤です。
なぜ証拠保全が必要か
加害者だけが技術を使える社会では、被害者は沈黙させられる。
被害者側にも同じ技術を届けること — それが Paprika の出発点です。
被害者や支援者が直面する具体的な課題と、Paprika の機能がそれにどう対応するかを以下に示します。
| 被害者・支援者が直面する課題 | Paprika が提供する機能 |
|---|---|
| 画像がどのサイトにあるか分からない 拡散先が無数にあり、手作業では追いきれない |
分散ワーカーによる大規模並列巡回で、多数のサイトを網羅的に探索 |
| 削除要請に使える証拠を残せない スクリーンショットを撮る前にページが消える・変わる |
ページの HTML・画像・動画・取得時刻をタイムスタンプ付きで自動保存 |
| ログインの壁で中に入れない 閉鎖的なサイトの証拠取得が困難 |
Cookie 管理・プロフィール機能で、認証が必要なサイトにも対応 |
| 技術的知識がないと対応できない URL の取得やスクリーンショットにも専門知識が必要 |
管理画面から URL を入力するだけで収集が完了。SDK を使えばスクリプトによる自動化も可能 |
被害者が「自分の画像がどこにあるか」を知り、証拠を手元に残せる状態を作ること。それが削除要請の第一歩であり、Paprika はそのための技術基盤です。
利用について
Paprika は誰でも自由に使えるツールではありません。 被害者支援・証拠保全・正当な業務の文脈で運用されることを前提としており、運用者・利用者の双方に明確な責任を求めます。
絶対禁止 — 児童性的虐待コンテンツ (CSAM)
児童ポルノ・児童性的虐待コンテンツ (CSAM) の収集・保存・拡散を目的とした Paprika の利用は、児童買春・児童ポルノ禁止法に基づく刑事犯罪であり、子どもへの加害そのものです。PAPS はこの種の利用を一切許容しません。発見した場合、運用者は即時に該当ジョブ・セッションを停止し、警察および インターネット・ホットラインセンター (IHC) に通報してください。検知のための既知 CSAM ハッシュ照合・URL フィルタ・ブラックリスト等の技術的措置の導入を強く求めます (運用者の責務)。
絶対禁止 — 非合意の親密画像 (NCII / リベンジポルノ)
本人の同意なく撮影・公開された性的画像・動画を第三者が収集・転送・再公開する目的での Paprika の利用は、私事性的画像記録の提供等による被害の防止に関する法律 (リベンジポルノ防止法) に抵触する場合があり、許容されません。ただし、被害当事者本人またはその支援者が、自分・支援対象への加害コンテンツの所在を記録し削除要請に用いる「証拠保全」は PAPS の本来の用途であり、別物として明確に区別してください。判断に迷う場合は PAPS に相談してください。
想定用途 — 証拠保全
Paprika は、意に反して拡散された画像・動画の 《削除要請に使う記録》 — スクリーンショット・HTML・収集物・取得時刻 — をタイムスタンプ付きで保存する用途を前提に運用されています。 想定する利用者は デジタル性暴力被害支援団体・報道・弁護士 など、被害支援・著作権侵害対応・コンプライアンスなどの 正当な目的での利用 です。
禁止される用途のまとめ
- 児童性的虐待コンテンツ (CSAM) の収集・保存・拡散 — 児童ポルノ禁止法違反、刑事犯罪 (上記)
- 非合意の親密画像 (NCII / リベンジポルノ) の第三者による収集・拡散 — リベンジポルノ防止法 (上記)
- DRM の回避・解読 — Widevine / FairPlay / PlayReady 等。著作権法 第30条第1項第2号 / 第120条の2、米 DMCA §1201、EU 著作権指令 第6条 で世界的に禁止
- サイトのアクセス制御を破る形での利用 — ログイン要件・年齢制限・地理ブロック等を技術的に迂回する利用 (不正アクセス禁止法)
- 取得した第三者著作物の再配布・公開・商用利用 — 証拠保全・私的利用・引用の範囲を超えるもの (著作権侵害)
取得した画像・動画・テキストには 第三者の著作物 が含まれ得ます。対象サイトの利用規約と各国法令の遵守が求められます。判断に迷う場合は実行しないでください。
アクセス制御 — 公開時は必ず認証を入れる
公開 Hub を認証なしで運用してはいけません。
Paprika の Hub は 既定で認証がありません (private LAN 想定)。インターネットに公開する場合は、必ず手前にリバースプロキシと認証 (Basic 認証 / SSO / OAuth など) を入れてください。
認証なしの公開 Hub = 誰でも自由に画像・動画を取得できる状態 であり、上記すべての禁止用途 (CSAM・NCII・著作権侵害・不正アクセス) の温床になります。これは Paprika 側の技術では阻止できず、運用者が負うべき責任です。公開する以上は、自分で守ってください。
違反時の対応
PAPS は警察に通報し、必要な措置をとります。
運用者の責務
利用ポリシーに書かれた理念を現実のものにするには、運用者による 具体的な統制 が不可欠です。Paprika を公開・運用する組織は、最低限以下の 4 つを整備してください。
1. ユーザーの審査 (vetting)
不特定多数に開かない。利用者の身元・所属・利用目的を確認した上で、個別にアカウントを発行する。
2. ログの取得・保全
誰が・いつ・どの URL に・何を投げ・何が取れたか。事後の通報・調査の証跡として、消えない形で残す。
3. 悪用への毅然とした対応
警告 → 永久停止 → 関係機関への通報。グレーゾーンを許容しない姿勢を運用者が明示する。
4. CSAM の技術的検知
運用組織で利用可能な 既知 CSAM ハッシュデータベース との照合、URL ブラックリスト、明白な違法サイトの遮断などを導入する。