Skip to main content
Glama

Video Learning Agent

Video Learning Agent は「動画を見て学ぶ」ことを自動化し、1本のエンジニアリングパイプラインにします。

B站/YouTube の動画リンク、コレクションリンク、または動画リストファイルを渡すと、まず字幕の取得を試みます。字幕がない場合は、レンタルした GPU クラウドホストにタスクを送信して ASR を実行します。文字起こしが完了したらローカルに引き戻し、Markdown 学習ドキュメントを生成し、ローカル検索インデックスを構築します。

B站 / YouTube 链接或列表
-> 优先获取字幕
-> 无字幕时上传任务到 GPU 云主机
-> GPU 下载音频并跑 faster-whisper ASR
-> 拉回 transcript.md / segments.jsonl
-> 生成可学习、可操作的 Markdown 总结
-> 建 SQLite / Chroma 搜索索引

こんな人に向いています

  • コース動画を一括で消化したい人

  • 公開動画を学習ドキュメントに変換したい人

  • 「知識ポイント + 例 + ツールコマンド + GitHub プロジェクト + AI 実践プロジェクト」を自動生成したい人

  • Claude、Codex、WorkBuddy に MCP 経由でこのフローを呼び出させたい人

Related MCP server: mcptube-vision

機能

  • B站 と YouTube に対応

  • 単一動画、コレクション、playlist、TSV/CSV 動画リストに対応

  • 字幕を優先的に取得し、字幕が利用できない場合のみ ASR を実行

  • GPU クラウドホストを手動でレンタルし、SSH 情報を Agent に渡して自動処理が可能

  • リモート ASR は faster-whisper を使用

  • デフォルトモデルは medium

  • デフォルトの GPU モードは cuda + float16

  • デフォルトで1バッチ20本の動画

  • デフォルトで 4090 なら 3 つの ASR worker の並列実行を試行可能

  • ダウンロード/ASR の進捗をリアルタイムで確認

  • 結果をローカルに引き戻した後、Markdown 学習ドキュメントを生成

  • ローカル SQLite 検索、Chroma セマンティック検索はオプション

  • MCP server を提供

インストール

git clone https://github.com/hahahng/video-learning-agent.git
cd video-learning-agent
python3 -m pip install -e '.[remote,mcp,test,yaml]'

システムに以下が必要です:

ffmpeg
yt-dlp
python >= 3.10

macOS では次のようにインストールできます:

brew install ffmpeg yt-dlp

最も簡単な使い方:字幕付き動画

動画に字幕があれば、GPU は不要です。

video-agent ingest "https://www.bilibili.com/video/BVxxx"

コマンドを実行すると、タスクディレクトリが作成されます:

work/jobs/<job_id>/

ステータスを確認:

video-agent status <job_id>

要約を生成:

video-agent digest <job_id> --index

検索:

video-agent search "文件系统"

字幕がない場合:GPU をレンタルして ASR を実行

動画に字幕がない場合、または字幕の品質が低すぎる場合は、NVIDIA GPU 搭載のクラウドホストをレンタルして ASR を実行します。

このプロジェクトは自動でマシンを購入しません。自分でクラウドプラットフォームで GPU インスタンスを起動し、SSH 情報を設定に記入してください。

推奨構成:

  • GPU:RTX 4090 / A10 / A100 / L40S いずれでも可

  • システム:Ubuntu 20.04 / 22.04

  • ディスク:最低 50GB、一括実行する場合は 100GB+ を推奨

  • ネットワーク:B站 / YouTube / Hugging Face モデルダウンロード先にアクセス可能であること

  • ログイン方法:SSH password または SSH key

1. GPU クラウドホストをレンタル

SSH に対応した任意の GPU クラウドプラットフォームを選択します。例:AutoDL コンソール:

https://www.autodl.com/console/instance/list

一般的な流れは次のとおりです:

  1. GPU インスタンスを選択します(例:4090)。

  2. Ubuntu イメージを選択します。

  3. 起動します。

  4. コンソールで SSH 接続情報を確認します:

    host
    port
    user
    password 或 private key
  5. ローカルでログインできることを先に確認します:

    ssh -p <port> <user>@<host>

このステップでログインできれば、Agent が以降の依存関係のインストール、タスクのアップロード、ASR の実行、結果の引き戻しを引き継げます。

詳細は:GPU ASR 使用説明 を参照

AutoDL の例

AutoDL を使用する場合:

  1. AutoDL インスタンスリスト を開きます。

  2. GPU インスタンスを新規作成または起動します。

  3. 4090 を選択し、システムイメージは Ubuntu を選択することを推奨します。

  4. インスタンス詳細ページに入り、SSH ログイン情報をコピーします。

  5. 次のような情報が取得できます:

    host: connect.xxx.autodl.com 或平台提供的连接地址
    port: 具体端口
    user: root
    password: 实例密码
  6. 先にローカルでテストします:

    ssh -p <port> root@<host>
  7. ログインできたら、host/port/user を video-agent.config.yaml に書き込み、パスワードは環境変数に入れます。

2. GPU SSH を設定

設定ファイルをコピー:

cp video-agent.config.example.yaml video-agent.config.yaml

video-agent.config.yaml を編集:

jobs_root: work/jobs
data_root: data

gpu_profiles:
  my_4090:
    host: your.gpu.ssh.host
    port: 22
    user: root
    remote_root: /root/autodl-tmp/video-learning-agent
    password_env: VIDEO_GPU_PASSWORD

パスワードは設定ファイルに書き込まないでください。環境変数に入れます:

export VIDEO_GPU_PASSWORD='你的 GPU SSH 密码'

SSH key を使用する場合:

gpu_profiles:
  my_4090:
    host: your.gpu.ssh.host
    port: 22
    user: root
    remote_root: /root/autodl-tmp/video-learning-agent
    key_filename: /Users/you/.ssh/id_ed25519

3. 動画リストを一括実行

TSV 形式の例:

index	bv	title	url	duration
1	BVxxxx	第一节	https://www.bilibili.com/video/BVxxxx	
2	BVyyyy	第二节	https://www.bilibili.com/video/BVyyyy	

起動:

video-agent ingest ./videos.tsv \
  --gpu-profile my_4090 \
  --batch-size 20 \
  --asr-workers 3

すでに job を作成済みだが、リモート ASR をまだ起動していない場合:

video-agent run-remote-asr <job_id> \
  --gpu-profile my_4090 \
  --batch-size 20 \
  --asr-workers 3

4. 進捗をリアルタイムで確認

video-agent status <job_id> --gpu-profile my_4090 --watch

出力例:

进度:ASR 中
音频:51 / 73
转写:18 / 73
当前:BVxxxx
GPU:82%,显存 17.4G / 24.0G
音频占用:3.9G
数据盘剩余:46G
错误:无

5. 結果を引き戻す

video-agent pull <job_id> --gpu-profile my_4090

ローカルの結果は次の場所にあります:

work/jobs/<job_id>/transcripts/

各動画には以下が含まれます:

transcript.md
segments.jsonl

6. 学習ドキュメントを生成

video-agent digest <job_id> --index

出力:

work/jobs/<job_id>/digests/
data/video_learning.sqlite

OPENAI_API_KEY が設定されている場合、大規模言語モデルを呼び出してより豊富な要約を生成します:

export OPENAI_API_KEY='你的 OpenAI API Key'
video-agent digest <job_id> --index

API Key がない場合、構造が完全なローカルドラフトが生成されます。

要約ドキュメントのテンプレート

各動画に対して Markdown ドキュメントが生成されます:

# 编号|总结标题

## 0. 这节课的主线流程图
## 1. 知识点
## 2. 老师例子
## 3. 中间用了什么工具、命令、工作流,我们可以学什么
## 4. GitHub 可复现项目
## 5. 我们利用 AI 可以做什么项目
## 6. 今天可以动手做什么
## 7. 学完这节应该留下什么

第 7 節では可能な限り以下に落とし込みます:

落地产物
输入
步骤
命令
验收标准
效率提升

MCP の使い方

MCP server を起動:

video-agent-mcp

提供されるツール:

  • ingest_url

  • job_status

  • run_remote_asr

  • pull_transcripts

  • digest_transcripts

  • search_notes

Claude、Codex、WorkBuddy は MCP に対応していれば、これらのツールを呼び出せます。

オプションの Chroma ベクトルデータベース

デフォルトの検索は SQLite 中国語 n-gram で、オフラインで実行可能です。

セマンティック検索を行いたい場合:

python3 -m pip install chromadb
video-agent index --docs work/jobs/<job_id>/digests --chroma
video-agent search "能做什么 AI 项目" --chroma

セキュリティに関する注意

  • SSH パスワードを video-agent.config.yaml に書き込まないでください。

  • .env、video-agent.config.yaml、work/jobs/ をコミットしないでください。

  • GPU クラウドホストは音声のダウンロードと ASR のみを担当し、要約はデフォルトでローカルで実行されます。

  • 現在のプロジェクトはクラウドホストの自動購入、停止、破棄を行いません。

開発テスト

python3 -m compileall video_learning_agent tests
python3 -m pytest -q

Related MCP Connectors

Related MCP Servers