
1. はじめに
- YouTube 動画を見ていて「この内容、後でテキストで読み返したいな」と思ったことはありませんか?特に解説動画や講義動画では、重要なポイントを見逃したくないですよね。
- あるいは、「面白そうだが、動画の尺が長いので見る前に要点だけ知りたい」ということもあるでしょう。
- 今回紹介するのは、YouTube 動画の文字起こしを取得し、さらに Google Gemini API を使って要約まで自動作成してくれる Python ツール(CLI & GUI)です。
2. このツールでできること
主な機能
- 🎥 文字起こし取得:
yt-dlpを使用した安定した取得 - 🔗 堅牢な ID 取得機能: 様々な形式の YouTube URL から Video ID を取得
- 📝 Markdown 形式での出力: タイムスタンプ付きで読みやすいマークダウン形式
- 🔧 柔軟な出力オプション: タイムスタンプ、要約の有無などをカスタマイズ可能
- 🤖 AI 要約機能: Gemini API による構造化された要約(日本語・英語から選択可能)
- 解説動画を文字起こしして、重要ポイントを要約
- 大学の講義動画を要約して、復習用のノートを自動生成
- 英語の動画を文字起こし&日本語要約で効率的に学習
- 長時間のカンファレンス動画の要点を素早く把握
3. コードの構成について
このリポジトリは2つの使い方ができます:3.1. CLI バージョン
3.1.1. モジュール化されたバージョン main.py
main.py # メインスクリプト
├── url_extractor.py # URL/Video IDの抽出
├── transcript_processor.py # 文字起こしの処理
├── gemini_api.py # AI要約の生成
└── utils.py # ユーティリティ関数3.1.2. オールインワンバージョン all.py
シンプルに1ファイルで完結させたい場合は、全機能が統合された all.py を使用してください。
3.2. FastAPI を用いた GUI バージョン app.py
app.py を起動して、以下のような UI で利用することもできます。

4. インストール方法
4.1. スクリプトのダウンロード
GitHubからリポジトリをクローンまたはダウンロードします:git clone https://github.com/kkensuke/yt_dlp_transcript
cd yt_dlp_transcript4.2. 必要なライブラリのインストール
pip install yt-dlp
# `app.py` を使う場合は fastapi と uvicorn も
pip install fastapi uvicorn4.3. (オプション)Gemini API の設定
要約機能を使いたい場合は、Gemini API キーが必要です:- Google AI Studioで API キーを取得
- 環境変数の設定:
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY" - それぞれのファイル(
main.py,all.py,app.py)内で直接設定しても可:GEMINI_API_KEY = "YOUR_GEMINI_API_KEY"
5. 基本的な使い方
5.1. GUI の使い方
以下を実行し、ブラウザでhttp://localhost:8000 を開く。抽出に10秒ほどかかります。
python app.py5.2. CLI のシンプルな使い方
# YouTube URL を指定
python main.py 'https://www.youtube.com/watch?v=VIDEO_ID'
# または、Video ID だけでもOK
python main.py 'VIDEO_ID'all.py を使う場合も同様です。
これだけで、以下の2つのファイルが生成されます:
{video_id}_transcript.md- タイムスタンプ付き文字起こし{video_id}_summarized.md- AI 生成の要約(API キー設定時)
5.3. 生成されるファイルの例
文字起こしファイル(transcript.md):# Pythonプログラミング入門講座
**Video ID:** ABC123
**YouTube URL:** https://www.youtube.com/watch?v=ABC123
---
**[00:00:15]** こんにちは、今日は Pythonプログラミングの基礎について解説します。
**[00:01:30]** まず、変数について説明しましょう。変数とは、データを保存するための箱のようなものです。# Pythonプログラミング入門講座 - Summary
## 📝 要約
この動画では、Pythonの基本的な概念である変数、データ型、制御構造について...
## 🔑 主要な概念とキーワード
- **変数(Variable)**: データを格納する容器、重要度(高)
- **データ型(Data Type)**: 整数、文字列、リストなど、重要度(高)
## ✨ 重要ポイント
- Pythonは初心者に優しいプログラミング言語である
- 変数を使うことでデータを効率的に管理できる
...6. 詳細なオプション
6.1. タイムスタンプを削除
タイムスタンプが不要な場合:python main.py 'VIDEO_URL' --no-timestamps6.2. 要約をスキップ
文字起こしだけが欲しい場合:python main.py 'VIDEO_URL' --no-summary6.3. 要約言語を指定
動画は日本語だけど、要約は英語で欲しい場合:python main.py 'VIDEO_URL' --summary-lang enpython main.py 'VIDEO_URL' --summary-lang ja6.4. カスタムファイル名
出力ファイル名を指定したい場合:python main.py 'VIDEO_URL' -o my_custom_transcript.md7. 実践的な活用例
7.1. ケース1: 講義ノートの自動生成
# 大学の講義動画から日本語の要約ノートを作成
python main.py 'LECTURE_VIDEO_URL' --summary-lang ja -o lecture_note.md- 復習用の要点まとめ
7.2. ケース2: 英語学習教材の作成
# 英語動画の文字起こしを取得(要約は不要)
python main.py 'ENGLISH_VIDEO_ID' --no-summary- リスニング練習の答え合わせ
- 知らない単語やフレーズの確認
7.3. ケース3: 技術カンファレンスの動画を要約
# 長時間の技術カンファレンス動画から要点を抽出
python main.py 'https://www.youtube.com/watch?v=CONF_VIDEO' --summary-lang ja- 1時間以上の動画の要点を5分で把握
8. トラブルシューティング
8.1. Gemini API のエラー
- APIキーが正しいか確認
- Google AI Studioでクォータを確認
8.2. yt-dlpの抽出失敗
yt-dlpが古い場合はアップデート:pip install -U yt-dlp- 1日の利用制限の超過している場合は、翌日まで待つ
9. カスタマイズのアイデア
9.1. 要約プロンプトの調整
gemini_api.py 内のプロンプトをカスタマイズすることで、要約のスタイルを変更できます:
# 例:より技術的な要約にしたい場合
prompt = f"""
あなたは経験豊富なソフトウェアエンジニアです。
以下の技術動画の文字起こしから、実装に役立つ具体的な情報を抽出してください。
- ベストプラクティスを強調
- 注意点やよくあるミスも記載
...
"""9.2. 長文の処理
50,000文字を超える長い文字起こしの場合、main.py の MAX_SUMMARY_LENGTH を調整:
MAX_SUMMARY_LENGTH = 100000 # より長い動画に対応10. まとめ
このツールを使えば、YouTube 動画から効率的に情報を抽出できます:- ✅ 時間の節約: 長い動画を見る時間がない時に要約で要点把握
- ✅ 学習効率UP: 文字起こしで復習しやすく
- ✅ 言語の壁を越える: 英語動画→日本語要約で情報収集
- ✅ ナレッジベース構築: 技術動画をテキスト資料として蓄積
参考リンク: