Dots

ブログとか

WEBページのテキストを要約するChrome拡張 tl;dr


Chrome拡張「tl;dr」を作った (公開できてないけど)

ウェブページをOpenAI APIで要約するChrome拡張を作った。(ClaudeCodeで作成)

Chrome拡張のボタンを押すとポップアップが開き、Summarizeボタンで要約が生成され、ログが残る。

単にChrome拡張を作って公開したかっただけなので、あまり調査していないが、似たようなツールは他にもたくさんあるっぽい。

作っているうちにどんどん高機能になってしまったが、一旦機能を絞って最初の申請をすることにした。自分用ツールなので、審査が通らなくても問題なし。


技術構成


仕組み

Chrome Extension を作るには、スクリプトを含んだディレクトリに manifest.json を置き、それにスクリプトのエントリーポイントを指定したり、権限の設定を行ったりする。 zip にしたりもする。

Chrome拡張は複数のスクリプト(Content Script、Background Script、Popupなど)が別々のコンテキストで動くため、バンドル設定を工夫する必要がある。

src/ をwatchして dist/ にビルドし続けることで、ホットリロードしながら開発することはできるっぽい

各スクリプトの概要

Manifest V3のService Worker制約


時間がかかったところ

トークン数の問題

OpenAI APIでモデルを切り替えて試していたら、日本語の要約が途中で切れる問題が発生。

TypeScriptエラー211個

途中でtypecheckを入れたら211個のエラーが出て驚いた。

コスト計算

max_tokensを増やすとコストも増えるか心配だったが、OpenAI APIは実際に生成されたトークン数だけ課金される。

非同期処理の複雑さ

Content Script、Background Script、Popupの3つのコンテキスト間でメッセージをやり取りするのが意外と複雑。

Chrome Web Storeへの公開

審査に必要だったもの

審査期間


学び