コンテンツにスキップ

YouTube Digest - プレイリスト新着動画の自動要約・Discord通知

YouTubeの指定プレイリストを定期監視し、新着動画をGemini APIで要約してDiscordに自動通知するシステム。

概要

項目 内容
プロジェクトパス projects/youtube-digest/
実行スケジュール 毎日 09:00(Windows タスクスケジューラ)
対象プレイリスト 10件(AI活用、IT知見、プログラミングなど)
要約エンジン Gemini 2.0 Flash
通知先 Discord(Webhook)
重複防止 data/processed.json で処理済み動画IDを管理

処理フロー

タスクスケジューラ(09:00)
main.py 起動
config.yaml の全プレイリストをループ
yt-dlp で動画一覧を取得(cookies.txt で認証)
processed.json に未登録の新着動画だけ抽出
Gemini API に YouTube URL を直接渡して要約
Discord Webhook に1本ずつ通知
processed.json に動画IDを記録(次回スキップ)

ディレクトリ構成

projects/youtube-digest/
├── config/
│   └── config.yaml          # プレイリスト・各種設定
├── src/
│   ├── playlist_fetcher.py  # yt-dlpで動画一覧取得
│   ├── summarizer.py        # Gemini APIで要約
│   ├── discord_notifier.py  # Discord Webhook送信
│   └── state_manager.py     # 処理済みID管理
├── data/
│   └── processed.json       # 処理済み動画ID一覧(自動生成)
├── logs/
│   ├── run.log              # 詳細ログ(自動生成)
│   └── run_history.log      # 実行履歴(自動生成)
├── main.py                  # エントリポイント
├── run_scheduler.bat        # タスクスケジューラ用バッチ
└── setup_scheduler.ps1      # タスク登録スクリプト

設定ファイル

config/config.yaml

youtube:
  cookies_file: "Credentials/youtube_cookies.txt"
  playlists:
    - name: "AI活用"
      id: "PLFpCeOl-kj8ST1yZ4EuV3ANXrNgcsOiqQ"
    # ...(計10件)

gemini:
  credentials_path: "Credentials/gemini_api.json"
  model: "gemini-2.0-flash"

discord:
  enabled: true
  credentials_path: "Credentials/discord_webhook.json"
  username: "YouTube Digest"

プレイリストの追加・削除は config.yamlplaylists を編集するだけ。


Discord通知フォーマット

🎬 [動画タイトル(日本語)]

📂 AI活用
・要点1
・要点2
・要点3

手動実行

cd D:\Kazuma_Teramachi\MyLab
venv\Scripts\python.exe projects\youtube-digest\main.py

対象プレイリスト一覧

プレイリスト名 Playlist ID
AI活用 PLFpCeOl-kj8ST1yZ4EuV3ANXrNgcsOiqQ
IT知見 PLFpCeOl-kj8Q-vo7xYBiWp7GKz4akwxGV
プログラミング PLFpCeOl-kj8RT21YVqVTMhcmbN6Gir_N-
アフィリエイト PLFpCeOl-kj8RxsexxMjowGpyz0QIQ2Jyw
副業 PLFpCeOl-kj8QuaSWRuMIA6EtdTw0IIRBs
動画制作 PLFpCeOl-kj8Sh9cC7p2UGZjK33JosS7IQ
個人開発 PLFpCeOl-kj8SCJ5UGfRBarIqaEIjxKxYE
Webライター PLFpCeOl-kj8RsEtSOM0Oie1PKBvjtJMHO
ソフトスキル PLFpCeOl-kj8TZgtwYLPo26K-Q23lFkRIC
金融 PLFpCeOl-kj8Tui019Dz86UoJxatREJb7c

認証情報

ファイル 用途
Credentials/youtube_cookies.txt YouTube認証(非公開リスト取得用)
Credentials/gemini_api.json Gemini API キー
Credentials/discord_webhook.json Discord Webhook URL

cookies.txt の更新手順

cookies.txtは定期的に期限切れになる。以下の手順で再エクスポートする。

  1. ChromeまたはEdgeで Get cookies.txt LOCALLY 拡張機能をインストール
  2. YouTubeにログインした状態で youtube.com を開く
  3. 拡張機能アイコン → Export をクリック
  4. Credentials/youtube_cookies.txt に上書き保存

タスクスケジューラの再登録

実行時刻を変更したい場合:

  1. setup_scheduler.ps1$StartTime を編集
  2. 管理者権限のPowerShellで実行:
D:\Kazuma_Teramachi\MyLab\projects\youtube-digest\setup_scheduler.ps1

関連ドキュメント

  • YouTube文字起こしMCPサーバー: scripts/mcp/youtube_transcribe_server.py
  • YouTube MCP移行記録: docs/mcp/youtube-mcp-migration.md
  • note-collector(同様の仕組み): projects/note-collector/