ImmerNote

開発ノート

動画を止めずに保存する

出来事の時期:2026年5月29日〜6月21日

最終更新:2026年9月6日

ImmerNoteは、運営者が開発しているChrome拡張です。

作りはじめる前に決めていたことが、ひとつだけありました。動画を止めない。

英語に浸る時間を切らさないための拡張機能なので、保存のたびに再生を止めてしまうと本末転倒です。この1行を守ろうとしたところ、話は「字幕をどこから取るか」と「文をどこで切るか」になりました。

決めたのはその1行だけで、あとの問題は全部そこからぶら下がって出てきたものです。

何が起きたか

動画を止めないということは、ボタンを押した瞬間に、その時点で画面に出ている英文が手元に無ければならないということです。押してから探しに行くのでは間に合いません。

最初に採ったのは、ページが持っている字幕データを直接使うやり方でした。字幕の表示がオフでも取れるので、使う人に何も要求せずに済みます。

ところが動かしてみると、自動で生成された字幕では、その取得口が空を返しました。 人が付けた字幕なら取れますが、自動生成のものは取れません。英語の動画では字幕が自動生成であることは珍しくないので、これでは使えない場面が多く残ります。

そこで、画面に出ている字幕をそのまま読む方式に切り替えました。見えているものを読むだけなので確実です。代わりに、字幕の表示をオンにしていないと、読む対象そのものが無いという条件が付きます。

取り方取れるもの付いてくる条件
ページが持つ字幕データ人が付けた字幕自動生成の字幕では空が返る
画面に出ている字幕を読む表示されている字幕すべて字幕の表示をオンにしておく必要がある

この選び直しがいつ行われたかは、記録に日付が残っていません。日付が取れるのは、着手した5月29日、実装が終わった6月20日、公開の申請をした6月21日の3点だけです。

次に出たのが、取れた文をどこで切るかという問題でした。字幕は文の途中で区切られて流れてくるので、そのまま保存すると文が半分になります。文の終わりを見つけて、そこまでを1文として保存する必要がありました。

ここで2つ、間違えました。

ピリオドを文の終わりだと思ったこと。 meetup.com の途中や、3.5 の小数点や、U.S. の略記で文が切れました。ピリオドの直後が空白か行末のときだけ文の終わりとみなすように直しています。三点リーダー(...)も同じで、これも文末と誤認していました。

画面に出ている文のうち、最後の1文しか取っていなかったこと。 会話が続く動画では、画面に2文3文と並びます。そのうち1文だけを保存していたので、前の文が落ちていました。表示されている完全な文はすべて保存し、途中で切れている末尾だけを落とす形に変えました。

そして公開の直前に、いちばん危ないものが見つかりました。

拡張機能を更新すると、その時点で開いたままになっているタブの中身は古いままになります。この状態でボタンを押すと——再生している位置とは関係のない古い字幕が、何も言わずに保存されました。

失敗して止まるのではありません。保存は成功します。あとで見返したときに、身に覚えのない英文が入っている。

何を決めたか

① 黙って間違ったものを保存しない

いちばん重く受け止めたのはここです。エラーが出ないまま間違ったものが保存されるのは、保存できないことより悪いと考えました。

ボタンを押したとき、まず「この画面はまだ生きているか」を確かめます。生きていなければ保存を中止して、「拡張機能が更新されました。ページを再読み込みしてください」と画面に出します。

黙って失敗させない。黙って別のものを保存しない。どちらも避けたかったので、止めたうえで理由を伝える形にしました。

② AIには自動で渡さない

保存した英文は、AIに貼り付けて意味や文法を調べられる形にしました。ただし、こちらから送信はしないと決めています。整えた文をコピーして、新しいタブでAIを開くところまでにしました。

自動で送るには、そのサービスへ接続する許可が要ります。開くだけなら要りません。結果として、拡張機能が求める許可を増やさずに済みました。 申請したのは保存領域・開いているタブ・YouTubeの3つです。

③ 必要な条件と、できないことを先に書く

画面から読む方式にした以上、字幕の表示をオンにしてもらう必要があります。これは隠さず、ストアの説明文と使い方の案内に書きました。

同じ場所に2つ書き足しています。自動で生成された字幕は文の区切りが粗く出ること(元のデータがそうなっているので、こちらでは直せません)と、拡張機能を更新したあとはタブの再読み込みが要ることです。

使ったあとで気づかれるより、先に知ってもらったほうがよいと判断しました。

どうなったか

公開の申請までに、実際に使ってみて見つかった問題を4回に分けて直しました。上に書いた修正はすべてこの期間に入っています。

求める許可は、保存領域・開いているタブ・YouTubeの3つのままです。機能を足していく過程で、許可を1つも増やさずに済みました。

ただし、これらの修正が「十分だったか」は分かりません。公開前に自分で使って見つけたものであって、使う人の環境で何が起きるかを試したわけではないためです。

分かったこと・まだ分かっていないこと

ひとつ決めると、その下に問題が連なって出てきます。

決めたのは「動画を止めない」の1行だけでした。そこから字幕をどこから取るかの選び直しが起き、文の切り方の間違いが2つ出て、拡張機能を更新したときの事故が出ました。どれも最初の1行からは見えていませんでした。

言えることは2つです。

分かっていないこともあります。字幕データを直接使う方式を、あとから足せるかどうかは決めていません。人が付けた字幕では取れることが分かっているので、両方を持てば条件を外せる見込みはあります。ただし記録に残っているのは「空が返ったので画面から読む方式にした」ところまでで、その先は検討していません。

YouTubeで英語を学んで保存し復習する流れ全体はYouTubeで英語を学ぶ→保存→復習する完全フローに、字幕そのものの使い分けはYouTubeの英語字幕の使い方に書いています。

この記録の更新履歴