Chromeの特定クッキーをコマンドラインで取得

コマンド

用途に応じていくつかの選択肢がありますが、Python製のライブラリである browser_cookie3 を使うのが最も手軽で一般的です。OSごとのCookieの暗号化も自動で解除してくれるため非常に強力です。

方法1: 専用ツール browser_cookie3 を使う (推奨)

browser_cookie3 は、Pythonで書かれたライブラリで、ChromeだけでなくFirefoxなど多くのブラウザのCookieを簡単に取得できます。Windows, macOS, Linuxに対応しており、コマンドラインツールとしても利用できます。

準備

  1. Pythonのインストール: もしPCにPythonがインストールされていない場合は、公式サイトからインストールしてください。
  2. browser_cookie3のインストール: コマンドプロンプトやターミナルで以下のコマンドを実行します。Bashpip install browser-cookie3

使用方法

基本的なコマンドは browser_cookie3 [ブラウザ名] です。特定のドメインのCookieを取得したい場合は、--domain オプションを使います。

使用例:https://www.google.com/url?sa=E&source=gmail&q=google.comのCookieを取得する

Bash

# google.com に関連する全てのCookieをJSON形式で出力
browser_cookie3 chrome --domain .google.com

出力結果の例 (JSON形式):

JSON

[
    {
        "domain": ".google.com",
        "name": "NID",
        "value": "511=AbCdEfG... (実際のCookie値)"
        ...
    },
    {
        "domain": ".google.com",
        "name": "1P_JAR",
        "value": "2025-09-18-09"
        ...
    }
]

この出力を jq などのツールと組み合わせることで、特定のCookieの値だけを抜き出すことも可能です。

方法2: SQLiteファイルを直接読み取る (上級者向け)

ChromeのCookieは、プロファイルフォルダ内の Cookies という名前のSQLiteデータベースファイルに保存されています。これを直接クエリする方法もありますが、いくつかの大きな注意点があります。

  • OSによる暗号化: WindowsやmacOSではCookieの値がOSの機能(DPAPIやKeychain)で暗号化されているため、単純にデータベースを読んでも意味のある値は取得できません。復号する処理を自前で実装する必要があります。
  • DBのロック: Chromeが起動中はデータベースファイルがロックされており、読み取りに失敗することがあります。

Linux (暗号化されていない場合) でのコマンド例:

Bash

# パスは環境によって異なります
SQLITE_DB_PATH="~/.config/google-chrome/Default/Network/Cookies"
DOMAIN="%.google.com"

# sqlite3コマンドでクエリを実行
sqlite3 "$SQLITE_DB_PATH" "SELECT host_key, name, value FROM cookies WHERE host_key LIKE '$DOMAIN';"

この方法は、ツールの仕組みを理解したい場合や、外部ライブラリをインストールできない特殊な環境で役立ちますが、多くの人にとっては browser_cookie3 を使う方がはるかに簡単で確実です。

まとめ

方法メリットデメリットおすすめのユーザー
browser_cookie3簡単クロスプラットフォーム暗号化を自動解除Pythonのインストールが必要ほぼ全ての人
SQLite直接読み取り外部ライブラリ不要、仕組みがわかるOSごとの暗号化対応が非常に複雑、DBロックの問題上級者、開発者

セキュリティ上の注意 ⚠️

Cookieにはログイン情報などの機密情報が含まれています。取得したCookieの取り扱いには十分注意し、信頼できないツールやスクリプトは安易に実行しないようにしてください。

コメント

タイトルとURLをコピーしました