birdChromeのcookieをJSON形式で書き出す

自分の使っているChromeに保存されているcookieを、例えばPlaywrightのstorageStateとして読み込めるような形のJSONで書き出す方法を調べてみたら、簡単にできそうなのに意外に情報がなく手間取ったのでここに記録。最終的にはChatGPT君に教えてもらいましたが、かなりHackishな方法+教えられた通りのままでは動かなかったのでちょい頭を使いました。しかし君、どこでそんな方法を学んだんだい?w

まずそもそもの前提として、

  • ChromeのDevToolsを使い、ApplicationStorageCookies を見れば、対象のdomainに関連するcookie全てが確認出来るが、ここから外へまとめて出力する手段は提供されていない
  • そもそも HTTPOnly flagの立ったcookieはcontent contextのJavaScriptからはaccessできない。Extensionのbackground.js側からはChrome Cookie APIを経由すればaccess出来るが機能拡張(Extension)を作る必要がある

という状況があります。DevToolsに特定domainのcookieをまとめてexportする機能があればあとはそれをconvertするだけで済んだんですが、おそらく悪用を恐れたのかそういった機能は今は提供されていませんでした。

ChatGPT君曰く、最初はDevToolsのsnippetを使えば出来るかも?なんて言っていたんですがここも所詮content contextのため全てのcookieを得ることは出来ず、そのままダラダラとAI君と何度かやりとりしていたところ、

  1. まず上で書いたように対象のsiteを表示しつつDevToolsを開き、Application/Storage/Cookiesへ行く
  2. そこでおもむろに再び Ctrl+Shift+I を押して「DevToolsのDevTools」を開く(!)
  3. その2つ目のDevToolsのconsoleで 下記のようなJavaScript codeを実行する
(() => {
  const cookies = [];
  document.querySelectorAll("table[class='data'] tbody tr").forEach(row => {
    const cells = row.querySelectorAll("td");
    cookies.push({
      name: cells[0]?.innerText,
      value: cells[1]?.innerText,
      domain: cells[2]?.innerText.startsWith(".") ? cells[2]?.innerText : `.${cells[2]?.innerText}`,
      path: cells[3]?.innerText || "/",
      expires: cells[4]?.innerText === "Session" ? -1 : new Date(cells[4]?.innerText).getTime() / 1000,
      httpOnly: cells[6]?.innerText === '✓',
      secure: cells[7]?.innerText === '✓',
      sameSite: cells[8]?.innerText || "None"
    });
  });

  const storageState = { cookies, origins: [] };
  console.log(JSON.stringify(storageState, null, 2));
})();

という、ちょっと驚くべき方法を教えてくれました。これ、DevTools上に表示されているcookieであればDevToolsのcontent contextから読める、というほとんど裏技的なテクニックを使った方法です。なおPlaywrightの storageState.json にはcookieの他にlocal storageに保存されているentryなども含まれますが、それらも上記と同じテクニックを用いて簡単に手元のbrowserのものをJSON化することが出来ました。マジかよ。

birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

image 0そうなんだ。俄然観たくなってきた。 https://x.com/Lithium_R_18/status/1903614851135746367?t=Tt8_-UDVI1DyK6Fze3ys7Q&s=09 (11:07 bskyから・詳細)

image 1沖ツラこと「沖縄で好きになった子が方言すぎてツラすぎる」、最後までとても楽しく面白かった!とても沖縄に行きたくなったよ。今期の中でもかなり好きなアニメでした。超良かった~。 https://okitsura.com/ (22:38 bskyから・詳細)

birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

image 0これだ。3Dモデルのすぐそばを回るカメラが「ダンシングアイ」っぽいと思ったんだよね。イメージが脳裏に刻まれすぎている… https://youtu.be/3uxhejwjMdA?si=QPxye3f4PIE5H2ai (00:25 bskyから・詳細)

今週末のAnime Japanではまた例年通り大量の新作公式PVが公開されるんだろうな。楽しみ。 (11:20 bskyから・詳細)

birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

スイッチ2体験会、落選したー (11:26 bskyから・詳細)

image 0ヤバす。そういや比較的最近我が家でも、何かのアニメのEDが「ダンシングアイ」っぽいよね、という話を家族にして、全く通じなかったのでYouTubeで動画を見せ白い目で見られる、ということがあったのだった。 https://x.com/yoshinokentarou/status/1902604827382968546?t=KinHS64U-ECFSc2A8kSpSQ&s=09 (23:55 bskyから・詳細)

birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

先週からリストにも広告出るようになったので今さらXでの広告の付き合い方を学んでいるのだが(遅い)、あれですね、不要な・不快な広告は片っ端からブロックしていくとそれなりに見られる状態になりますね。逆にそれをやらないととても見られたものじゃない感。 (09:59 bskyから・詳細)

僕の場合、健康系・美容/コンプレックス商法系・興味ないゲーム系辺りの広告を軒並みブロックすればかなりマシになった。 (10:20 bskyから・詳細)

ミュージカル故(?)の展開の早さや字幕で見たこともあっていろいろ唐突に感じたらしい。「もう少し余韻がほしかった。あと映画じゃなく舞台で見たいかも。」とのことで、なるほどなぁと。でもまあPart 2以降にも付き合ってもらえる約束を得たのでヨシ。 (10:51 bskyから・詳細)

そういえば週末、あゆみさんが見たがっていた「ウィキッド」を観に行きました。僕は素晴らしい歌や踊り、映像を堪能でき、やっぱりミュージカル大好きだなぁと実感したものの、あゆみさんはいまいち乗り切れなかった様子。 (10:51 bskyから・詳細)

本編とは関係ない話として、今回アニメ以外の映画を久々に見たんですがフツーの映画だとスタッフロール中に席を立ってしまう人があんなにいるのか、というのがかなり衝撃的だった。スタッフロールとても面白いのに… (10:51 bskyから・詳細)

とあるアニメでちょっと気になる(聞き覚えのある)声の声優さんがいて、誰だっけ…と思い調べてみたら結川あさきさんだった。「トラペジウム」の東ちゃんか。なるほど。 (10:58 bskyから・詳細)

お、bskyへのpostをforwardするscript、postが何故かskipされたり順番がわやになってしまうbugがあるな。後でちょっと見てみよう。 (15:16 bskyから・詳細)

birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

お、Xさんようやくリスト表示時にも広告を差し込む技術を開発したのか。そもそもどうしてこれまで入れていなかったんだ、という話ではある。 (17:27 bskyから・詳細)

image 0見る見るー(流石にリアタイは厳しいかもですが…)。 https://x.com/yoshiura_rikka/status/1900381374990766309?t=sqrEYZ4WeP1JcCayddulhg&s=09 (17:40 bskyから・詳細)

birdきょうのつぶやき@digitune.bsky.social

きょうのつぶやき@digitune.bsky.social

image 0今期一番前のめりで見てるアニメはやっぱり「メダリスト」。そのメダリストの原作者、つるまいかだ先生とOPを歌っている米津玄師さんのこちらの対談記事、とても良かった。必読。 https://medalist-pr.com/special/interview2.html (08:02 bskyから・詳細)

それにしても「Persona Alice」から聴かれていたとは…筋金入りですな。僕もかなり昔から米津さん(はちさん)好きだと思っていたけど、それでもTHE WORLD END UMBLERRAくらいからだからなぁ(ヲタクムーブ)。 (08:10 bskyから・詳細)

むむむ。今日は晴れていて風が強そうなので花粉がヤバそう。憂鬱。 (09:48 bskyから・詳細)

Xiaomi Pad 6でGoogle Sheetのリンクを開こうとしたら何故かXiaomi謹製アプリしか開くアプリの選択肢にない。そんな訳あるか、とリストにあったアプリを片っ端からアンインストール・無効化したら無事Google Driveで開けるようになった。しょーもな。 (20:49 bskyから・詳細)

First | Prev | 1 | 2 | 3 | 4 | 5 | Next | Last