Skip to main content
Glama

Video Learning Agent

Video Learning Agent превращает «обучение по видео» в автоматизированный конвейер.

Вы даёте ему ссылку на видео 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-данных агенту для автоматической обработки

  • Удалённый ASR использует faster-whisper

  • Модель по умолчанию — medium

  • Режим GPU по умолчанию — cuda + float16

  • По умолчанию — 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-сервера

Выберите любую GPU-облачную платформу с поддержкой SSH. Например, консоль 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>

Если на этом шаге вход работает, агент сможет взять на себя установку зависимостей, загрузку задач, запуск 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-граммами, работает офлайн.

Если нужен семантический поиск:

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