動画を止めずに保存する
最終更新 2026-09-05
ImmerNoteは、YouTubeで英語を学ぶためのChrome拡張です。動画を見ていて分からない英文が出てきたら、ボタンひとつでその文を保存し、あとで見返せます。
作りはじめる前に決めていたことが、ひとつだけありました。動画を止めない。
英語に浸る時間を切らさないための道具なので、保存のたびに再生を止めてしまうと本末転倒です。この1行を守ろうとしたところ、話は「字幕をどう取るか」と「文をどこで切るか」になりました。
何が起きたか
動画を止めないということは、ボタンを押した瞬間に、いま画面に出ている英文が手元に無ければならないということです。押してから探しに行くのでは間に合いません。
YouTubeの字幕を取る方法は2通りありました。
| 取り方 | できること | できないこと |
|---|---|---|
| 画面に出ている字幕をそのまま読む | 単純。見えているものがそのまま取れる | 字幕表示をオフにしていると、読む対象そのものが無い |
| ページが最初から持っている字幕データを使う | 字幕表示がオフでも取れる | 手順が複雑になる |
どちらか一方では、必ず取れない場合が残ります。両方を実装して、片方が空振りしたらもう片方に切り替えることにしました。字幕を出して見ている人にも、消して見ている人にも、同じボタンが効きます。
次に出たのが、取れた文をどこで切るかという問題でした。字幕は文の途中で区切られて流れてくるので、そのまま保存すると文が半分になります。文の終わりを見つけて、そこまでを1文として保存する必要があります。
ここで2つ、間違えました。
ピリオドを文の終わりだと思ったこと。 meetup.com の途中や、3.5 の小数点や、U.S. の略記で文が切れました。ピリオドの直後が空白か行末のときだけ文の終わりとみなすように直しています。三点リーダー(...)も同じで、これも文末と誤認していました。
画面に出ている文のうち、最後の1文しか取っていなかったこと。 会話が続く動画では、画面に2文3文と並びます。そのうち1文だけを保存していたので、前の文が落ちていました。表示されている完全な文はすべて保存し、途中で切れている末尾だけを落とす形に変えました。
そして公開の直前に、いちばん危ないものが見つかりました。
拡張機能を更新すると、その時点で開いたままになっているタブの中身は古いままになります。この状態でボタンを押すと——いま再生している位置とは関係のない、古い字幕が、何も言わずに保存されます。
失敗して止まるのではありません。保存は成功します。あとで見返したときに、身に覚えのない英文が入っている。
何を決めたか
① 黙って間違ったものを保存しない
いちばん重く受け止めたのはここです。エラーが出ないまま間違ったものが保存されるのは、保存できないことより悪いと考えました。
ボタンを押したとき、まず「この画面はまだ生きているか」を確かめます。生きていなければ保存を中止して、「拡張機能が更新されました。ページを再読み込みしてください」と画面に出します。
黙って失敗させない。黙って別のものを保存しない。どちらも避けたかったので、止めたうえで理由を伝える形にしました。
② 文の切り方は、両方の経路に同じものを効かせる
字幕の取り方を2通り用意した副作用として、文を切る処理も2か所に分かれかけました。 片方だけ直すと、もう片方に同じ間違いが残ります。
文の終わりを判定する部分をひとつにまとめ、ピリオドと三点リーダーの扱いを直したときに、両方の経路へ同時に効くようにしました。
③ AIには自動で渡さない
保存した英文は、AIに貼り付けて意味や文法を調べられるようにしています。ただし、こちらから送信はしません。 整えた文をコピーして、新しいタブでAIを開くところまでです。貼り付けと送信は使う人がやります。
自動で送るには、そのサービスへ接続する許可が要ります。開くだけなら要りません。結果として、拡張機能が求める許可を増やさずに済みました。 いま求めているのは保存領域・開いているタブ・YouTubeの3つだけです。
④ できないことを、説明文に書く
自動で生成された字幕は、文の区切りが粗く出ます。これは元のデータがそうなっているので、こちらでは直せません。
隠さずに、ストアの説明文と使い方の案内に書きました。拡張機能を更新したあとはタブの再読み込みが要ることも同じように書いています。使ったあとで気づかれるより、先に知ってもらったほうがよいと判断しました。
どうなったか
公開の申請までに、実際に使ってみて見つかった問題を4回に分けて直しました。上の3つの修正はすべてこの期間に入っています。
求める許可は、保存領域・開いているタブ・YouTubeの3つのままです。機能を足していく過程で、許可を1つも増やさずに済みました。
ただし、これらの修正が「十分だったか」は分かりません。公開前に自分たちで使って見つけたものであって、使う人の環境で何が起きるかを試したわけではないためです。
いま分かっていること
ひとつ決めると、その下に問題が連なって出てきます。
決めたのは「動画を止めない」の1行だけでした。そこから字幕の取り方が2通りに分かれ、文の切り方の間違いが2つ出て、拡張機能を更新したときの事故が出ました。どれも最初の1行からは見えていませんでした。
いま言えることは2つです。
- 黙って間違ったものを保存するのは、保存できないことより悪い。 使う人は、失敗したことには気づけますが、間違って保存されたことには気づけません
- やらないと決めておくと、余計なものを持たずに済む。 AIへ自動で送らないと決めたことで、求める許可が増えませんでした
分かっていないこともあります。映像に焼き込まれた字幕には対応していません。 字幕データとして存在しないものを読み取る必要があり、いまは対象外にしています。これを扱えるようにするかどうかは決めていません。
YouTubeで英語を学んで保存し復習する流れ全体はYouTubeで英語を学ぶ→保存→復習する完全フローに、字幕そのものの使い分けはYouTubeの英語字幕の使い方に書いています。
この章の更新履歴
- 2026-09-05 初版。「動画を止めない」から、公開前の3つの修正までを記録