Windows で YouTube 動画の URL から字幕を取得し、OpenAI API で要約して、ブラウザで読める HTML ページを生成するツールです。
生成されるページには、要約本文だけでなく、動画リンク、字幕、サムネイル、ストーリーボード画像も含まれます。必要に応じて、通常要約、低コスト要約、詳細要約を使い分けられます。
- YouTube URL から字幕を取得する
- 字幕をもとに章立て付きの要約を作る
- 章ごとに動画の該当位置へ飛べるようにする
- 字幕と対応した画像を HTML に埋め込む
- 詳細モードでは長めの解説も追加する
- Windows
- Python
- OpenAI API キー
- このフォルダを開きます。
setup.batを実行します。- 仮想環境の作成と必要パッケージのインストールが完了すれば準備完了です。
OpenAI API キーは初回実行時に入力を求められ、api_key.txt に保存されます。
- YouTube 動画の URL をコピーします。
- 次のいずれかの bat を実行します。
| ファイル | 用途 |
|---|---|
to_tube_summary.bat |
通常の要約を作る |
to_tube_summary_cheep.bat |
コストを抑えて要約を作る |
要約処理は 2 段階で行われます。Stage ごとに異なるモデルを指定できます。
| Stage | 役割 | 環境変数 |
|---|---|---|
| Stage 1 | 章構成の生成(分散指示) | OPENAI_MODEL_STAGE1 |
| Stage 2 | 章ごとの要約(heading 指示) | OPENAI_MODEL_STAGE2 |
各 bat ファイルでのモデル設定は次の通りです。
| ファイル | Stage 1 | Stage 2 |
|---|---|---|
to_tube_summary.bat |
gpt-5.4-mini-2026-03-17 |
gpt-5.4-mini-2026-03-17 |
to_tube_summary_cheep.bat |
gpt-5.4-mini-2026-03-17 |
gpt-5.4-nano-2026-03-17 |
モデルを変えたい場合は、bat ファイルの OPENAI_MODEL_STAGE1 / OPENAI_MODEL_STAGE2 の行を直接書き換えます。
実行時の動きは次の通りです。
- クリップボードに URL があればそれを使います
- URL がなければ手入力を求めます
- 処理完了後、生成した
index.htmlをブラウザで開きます
処理はおおむね次の順です。
- YouTube URL から動画 ID を取り出す
- 動画タイトルを取得し、出力フォルダを作る
- 字幕を取得して
.vttファイルとして保存する - 動画メタ情報、サムネイル、ストーリーボード画像を取得する
- OpenAI API で章立てと各章の要約を作る
- 必要なら詳細解説も追加生成する
- 要約結果を
data.jsとindex.htmlに変換する - 生成ページをブラウザで開く
字幕は日本語を優先し、なければ自動生成字幕や英語字幕を使います。該当字幕が見つからない動画は処理できません。
出力先は C:\temp\html\[動画タイトル]\ です。
主な生成物は次の通りです。
index.html要約ページ本体です。テンプレート HTML をコピーして使います。data.js動画ごとの要約、章、字幕、画像パスなどのデータです。index.html.txt要約の元になったテキストです。info.json動画タイトル、チャンネル、URL などのメタ情報です。Thumbnail.jpg動画サムネイルです。*.vtt取得した字幕です。images/ストーリーボードから切り出した画像です。
生成された HTML では次の内容を見られます。
- 動画のサムネイル
- 章ごとの要約
- 章ごとの動画リンク
- 章に対応する画像一覧
- 折りたたみ式の字幕テキスト
- 字幕を ChatGPT に渡すためのリンク
- 詳細モード時の追加解説
利用者目線で主要なものは次の通りです。
- OpenAI API 字幕から章立て、要約、ハイライト、詳細解説を生成します。
youtube-transcript-apiYouTube 字幕を取得します。yt-dlp動画メタ情報、サムネイル、ストーリーボード画像の取得に使います。requestsWeb ページや画像の取得に使います。Pillowストーリーボード画像の切り出しに使います。
setup.bat仮想環境の作成と依存パッケージのインストールを行います。youtube_transcript_downloader.pyエントリ本体です。URL 受付、字幕取得、画像取得、要約処理の起動を行います。ret_youyaku_html.pyOpenAI API を使った要約生成と HTML 出力を担当します。template/index.html生成ページの共通テンプレートです。
過去の古い HTML 出力を現在形式に変換したい場合は migrate.bat を使えます。
api_key.txt は .gitignore 対象です。リポジトリに含めない前提で使ってください。