Cookie EditorCookie Editor
すべてのガイド

ドキュメント

n8n との連携

n8n 連携により、ワークフローが HTTP 経由でブラウザからクッキーを取得できます — 手動エクスポートは不要です。暗号化パスワードは拡張機能内にのみ保存され、サーバーには送信されません。

アーキテクチャ

n8n ──HTTP GET──► Cookie Editor Server ──WebSocket──► Extension ──► chrome.cookies
                        │                                    │
                        └──── encrypted data ◄───────────────┘
n8n decrypts with the password you configured

ステップ 1:n8n タブを開く

  1. Cookie Editor のサイドパネルを開きます。
  2. 右サイドバーの n8n アイコンをクリックします。
  3. 拡張機能が専用の n8n.html タブを開きます。
n8n タブ — Connect ボタンがある未接続状態
n8n タブ — Connect ボタンがある未接続状態

ステップ 2:拡張機能をサーバーに接続する

  1. Connect をクリックします。
  2. プロンプトが表示されたら storagealarms の権限を付与します。
  3. Connect モーダルで暗号化パスワードを入力します。
    • このパスワードはサーバーに送信されません
    • 拡張機能にローカル保存されます — n8n で復号する際も同じ値を使用してください。
  4. 拡張機能が wss://cookieeditor.org/ws/n8n(開発環境:ws://localhost:3000/ws/n8n)へ WebSocket を開きます。
  5. サーバーが ck_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx のような client_key を返します。
接続済み n8n タブ — client_key 表示、Disconnect と View usage ボタン
接続済み n8n タブ — client_key 表示、Disconnect と View usage ボタン

ステップ 3:client_key をコピーする

接続成功後、画面に表示される client_key をコピーします。n8n からのすべての API リクエストで使用します。

拡張機能の Usage / View usage タブには、すぐ使える fetch、curl、n8n Function の例が含まれています。

ステップ 4:n8n から API を呼び出す

HTTP Request ノード

Method: GET
URL: https://cookieeditor.org/api/n8n/cookies
Query:
  client_key: {{ $env.COOKIE_EDITOR_CLIENT_KEY }}
  url: https://example.com

curl

curl "https://cookieeditor.org/api/n8n/cookies?client_key=ck_YOUR_KEY&url=https://example.com"

fetch (JavaScript)

const res = await fetch(
  "https://cookieeditor.org/api/n8n/cookies?client_key=ck_YOUR_KEY&url=https://example.com"
);
const json = await res.json();
// json.data = AES-encrypted cookie string

成功レスポンス

{
  "success": true,
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "client_key": "ck_...",
  "url": "https://example.com",
  "domain": "example.com",
  "data": "U2FsdGVkX1+..."
}

ステップ 5:n8n で復号する

HTTP Request の後に Function ノードを追加します:

const CryptoJS = require('crypto-js');

const encrypted = $input.first().json.data;
const password = $env.COOKIE_EDITOR_PASSWORD; // same password as Connect

const decryptedBase64 = CryptoJS.AES.decrypt(encrypted, password)
  .toString(CryptoJS.enc.Utf8);

if (!decryptedBase64) {
  throw new Error('Decryption failed — wrong password?');
}

const cookies = JSON.parse(atob(decryptedBase64));

return cookies.map((cookie) => ({ json: cookie }));

必要に応じて n8n に crypto-js パッケージをインストールしてください。パスワードは拡張機能接続時に入力した値と一致している必要があります。

n8n が API を呼び出したときの流れ

  1. n8n が GET /api/n8n/cookies?client_key&url を送信
  2. サーバーが client_key で WebSocket セッションを検索
  3. サーバーが { type: "get_cookies", request_id, url } を拡張機能に送信
  4. 拡張機能:chrome.cookies.getAll({ url }) → AES 暗号化 → cookies_result を送信
  5. サーバーが暗号化された data を n8n に返す
  6. n8n がパスワードで復号

リクエスト履歴

拡張機能は n8n タブに直近 50 件のリクエストを保存します(ローカルのみ):

  • ドメイン、URL、時刻、ステータス、クッキー数、エラーメッセージ
  • Clear history ボタンで履歴をクリア
n8n タブのリクエスト履歴テーブル — ドメイン、url、ステータス、クッキー数
n8n タブのリクエスト履歴テーブル — ドメイン、url、ステータス、クッキー数

切断

n8n タブで Disconnect をクリック:

  • 拡張機能が { type: "disconnect" } を送信し WebSocket を閉じる
  • サーバーがセッションを削除 — 古い client_key は使えなくなる
  • 切断設定によりローカルパスワードがクリアされる場合あり

よくあるエラー

API エラー 原因
client_not_found 拡張機能が未接続、または既に切断済み
extension_timeout 拡張機能が 30 秒以内に応答しなかった
extension_error その URL にクッキーがない、またはローカルパスワードがない
Decryption failed n8n のパスワードが Connect 時のパスワードと異なる

安定動作のための要件

  • Chrome が起動しており、拡張機能が接続されていること
  • n8n タブまたはバックグラウンド service worker が WebSocket を維持すること
  • リクエストの URL にブラウザ内にクッキーがあること(そのサイトにアクセス済みであること)

次のステップ