1. 目的
- Google Meetで字幕(キャプション)をONにした際、その字幕を自動で収集し、会議終了後に1クリックで逐語録ファイルとして保存できるようにする。
- 保存されたファイルは**生成AIにそのまま入力できる形式(プレーンテキスト、日本語逐語録)**とする。
2. 利用シナリオ(ユーザーストーリー)
- ユーザーはGoogle Meetで会議を開始し、字幕をONにする。
- 拡張機能がDOMを監視して字幕を逐次取得。
- 会議が終わったら、ユーザーは拡張アイコンをクリック。
- ポップアップ内の「Download TXT」ボタンを押す。
- 日付付きファイル(MeetTranscript_YYYY-MM-DD.txt)がデスクトップに保存される。
- 保存された逐語録を生成AIや翻訳ツールに入力し、要約・議事録化に活用する。
3. 機能要件
3.1 字幕取得
- 対象ページ:
https://meet.google.com/* - DOM要素
div[aria-live="polite"]を監視し、新規に表示された字幕を取得する。 - 空白・重複行は無視する。
3.2 タイムスタンプ付与
- 各行に 「分までの時刻」 を付与。
- 形式:
[HH:MM] 字幕テキスト - 例:
[09:58] みなさんおはようございます
3.3 データ管理
- 収集した字幕は拡張機能の
chrome.storage.localに逐次保存する。 - ブラウザタブを閉じてもデータは保持される(Meet終了後に保存可能)。
3.4 保存機能
- 「Download TXT」ボタンを押した時点で、収集済み字幕をテキストファイル化。
- ファイル名形式:
MeetTranscript_YYYY-MM-DD.txt - Chromeのダウンロード設定で指定されたフォルダ(ユーザー設定でデスクトップ)に保存。
3.5 ユーザーインターフェース
-
ポップアップ(
popup.html)に以下を表示:- 「Download TXT」ボタン
- 収集済み字幕のプレビュー(
<pre>形式で整形表示)
4. 非機能要件
-
対象ブラウザ: Google Chrome(Manifest V3対応)
-
実装言語: JavaScript, HTML, JSON
-
処理性能:
- 字幕取得はMutationObserverを利用し、遅延なく反映
- 数時間の会議でも字幕ログが破損しないよう、メモリに加えて随時
chrome.storage.localに保存
-
信頼性:
- 字幕が見つからない場合はコンソールに警告を出す
- 会議終了後でも保存操作が可能
-
セキュリティ:
- データはローカル保存のみ。外部送信なし。
- 個人利用を前提とするため、組織のセキュリティポリシーに抵触しない。
5. 出力フォーマット
- 逐語録(プレーンテキスト、UTF-8)
- サンプル:
[09:58] みなさんおはようございます
[09:59] 今日はプロジェクト進捗の確認を行います
[10:00] ではまず資料を共有します
6. 制約事項
- 無料版Google Meetでは「録画」「公式トランスクリプト」機能がないため、字幕ONが必須。
- 保存先はChromeのダウンロード設定に依存 → ユーザーが「デスクトップ」を指定しておく必要がある。
- 話者名の自動取得はMeetのDOM構造上難しい場合があり、逐語録は発話テキストのみ。
7. 将来拡張(Nice to Have)
-
話者識別(DOM構造から話者名を取得して
[09:58] Aさん: 発言内容の形式にする) - 自動保存(会議終了を検知して自動でTXT保存)
- 要約モード(逐語録とは別にAI要約を生成して保存)
- 多言語対応(日本語だけでなく英語字幕も保存)
👉 ここまでで「詳細要件定義」が揃いました。
次のステップとして、これをもとに 完成コード一式(manifest.json / content.js / popup.html / popup.js) を提示しましょうか?