基于 Gemini AI 的视频内容分析工具,支持 B站、小红书、YouTube 等平台的视频下载与智能分析。
核心功能:一键下载视频 → AI 分析生成知识库笔记
# 1. 安装依赖
pip install -r requirements.txt
# 2. 配置 Gemini API Key
# 方式一:环境变量(推荐)
export GEMINI_API_KEY='your-key'
# 方式二:创建 config_api.py
# API_CONFIG = {"gemini": {"api_key": "your-key"}}
# 3. 分析单个视频
python analysis/video_analyzer.py -video "视频路径" -m knowledge
# 4. 批量分析目录
python analysis/video_analyzer.py -dir "视频目录" -m knowledge| 功能 | 说明 |
|---|---|
| 视频下载 | 支持 B站/小红书/YouTube,流式下载提速 4 倍 |
| Gemini 分析 | AI 视频内容理解,5 种分析模式 |
| 知识库笔记 | 自动生成结构化笔记,适合构建第二大脑 |
| 批量处理 | 支持目录批量分析,自动并发 |
| 模式 | 输出内容 | 适用场景 |
|---|---|---|
knowledge |
知识库型笔记 | 推荐,构建第二大脑 |
summary |
详细总结 | 内容概览 |
brief |
简洁总结 | 快速了解 |
detailed |
深度分析 | 完整理解 |
transcript |
对话提取 | 访谈整理 |
## 📋 视频基本信息
- 视频类型、核心主题、内容结构
## 📖 视频大意(100-200字)
精炼概括核心内容
## 🎯 核心观点(三段论)
大前提、小前提、结论
## 📊 论点论据结构
主要论点、次要论点及支撑
## 💎 金句提取
引经据典、故事案例、精辟论据
## 📝 书面文稿
去除口语冗余的正式文本
## ⚠️ 内容质量分析
情绪操控检测、信息可靠性评估
## 🔗 相关延伸
推荐深入了解的方向
# 分析已下载的视频
python analysis/video_analyzer.py \
-video "downloaded/video.mp4" \
-m knowledge# 先下载视频
yt-dlp "视频URL" -o "downloaded/%(title)s.%(ext)s"
# 再分析
python analysis/video_analyzer.py \
-video "downloaded/video.mp4" \
-m knowledge# 批量分析(自动并发,flash-lite 模型 10 线程)
python analysis/video_analyzer.py \
-dir "downloaded_videos" \
-m knowledge
# 指定并发数
python analysis/video_analyzer.py \
-dir "downloaded_videos" \
-j 5# 自动跳过已分析的视频
python analysis/video_analyzer.py \
-dir "downloaded_videos" \
-m knowledgepython analysis/video_analyzer.py [选项]
必需参数(二选一):
-video PATH 单个视频文件路径
-dir PATH 视频目录(批量处理)
分析模式:
-m, --mode TEXT 分析模式 (默认: knowledge)
可选: knowledge/summary/brief/detailed/transcript
Gemini 设置:
--model TEXT Gemini 模型 (默认: flash-lite)
可选: flash-lite/flash/pro
-j, --jobs INT 并发处理数 (默认: 自动设置)
flash-lite: 10, flash: 3, pro: 6
--api-key TEXT Gemini API Key (覆盖配置文件)
输出控制:
-o, --output PATH 输出目录 (默认: gemini_analysis)
--keep 保留上传的文件
--force 强制重新处理所有视频
其他:
--list-modes 列出所有提示词模式
| 模型 | 请求/分钟 | 请求/天 | 速度 | 质量 | 推荐 |
|---|---|---|---|---|---|
| flash-lite | 15 | 1000 | 快 | 良好 | 批量处理 |
| flash | 5 | 100 | 中 | 很好 | 日常使用 |
| pro | 10 | 100 | 慢 | 最佳 | 高质量需求 |
免费配额说明:
- flash-lite:每天 1000 次请求
- flash/pro:每天 100 次请求
- 配额每天 0 点重置
biliSub/
├── tools/ # 核心工具
│ ├── ultimate_transcribe.py # 主字幕提取工具
│ ├── check_subtitle.py # 检查内置字幕
│ ├── download_videos_from_csv.py # 批量下载
│ └── optimize_srt_glm.py # 字幕优化
├── analysis/ # AI 分析模块
│ ├── video_analyzer.py # 视频AI分析
│ ├── subtitle_analyzer.py # 字幕AI总结
│ └── image_analyzer.py # 图文AI分析
├── workflows/ # 端到端工作流
│ ├── video_to_notes.py # 视频→笔记
│ ├── ai_bilibili_homepage.py # B站首页
│ └── auto_xhs_subtitle_workflow.py # XHS用户分析
├── bots/ # Telegram Bot
│ └── video_summary_bot.py # 主Bot
├── platforms/ # 平台实现
│ └── xiaohongshu/ # 小红书功能
├── utils/ # 工具模块
├── config_api.py # API 配置文件
├── FILE_STRUCTURE.md # 文件结构说明
├── requirements.txt # 依赖清单
├── docs/ # 文档
│ └── README_FULL.md # 完整文档
└── output/ # 输出目录
# Linux/Mac
export GEMINI_API_KEY='your-key'
# Windows PowerShell
$env:GEMINI_API_KEY='your-key'
# Windows CMD
set GEMINI_API_KEY=your-key创建 config_api.py:
API_CONFIG = {
"gemini": {
"api_key": "your_gemini_api_key"
}
}- 访问 Google AI Studio
- 创建项目
- 生成 API Key
python analysis/video_analyzer.py \
-video "课程视频.mp4" \
-m knowledge# 先用 yt-dlp 下载频道视频
yt-dlp -f "bestvideo+bestaudio" "频道URL" -o "downloads/%(uploader)s/%(title)s.%(ext)s"
# 批量分析
python analysis/video_analyzer.py \
-dir "downloads/UP主名" \
-m knowledgepython analysis/video_analyzer.py \
-video "video.mp4" \
-m briefpython analysis/video_analyzer.py \
-video "访谈.mp4" \
-m transcript分析结果保存为 Markdown 格式:
gemini_analysis/
└── 视频/
└── 视频名称_20260221_120000.md
每个分析文件包含:
- 元信息表格(视频文件、分析时间、使用模型、Token 使用)
- 结构化分析内容
- 质量评估(信息可靠性、知识价值评级)
| 视频时长 | flash-lite | flash | pro |
|---|---|---|---|
| 5 分钟 | ~1 分钟 | ~1.5 分钟 | ~2 分钟 |
| 10 分钟 | ~2 分钟 | ~3 分钟 | ~4 分钟 |
| 30 分钟 | ~4 分钟 | ~6 分钟 | ~10 分钟 |
注:包含上传和处理时间
A: Gemini 最大支持 2GB 视频文件。超过建议先压缩或分段。
A: 等待第二天重置,或使用 flash-lite 模型(配额最多)。
A: 重新运行相同命令,会自动跳过已分析的视频。
A:
- 使用 flash-lite 模型
- 增加并发数
-j 10 - 确保网络稳定
当视频没有内置字幕时,可以使用 video_fallback_processor.py 作为备选方案:
# 处理 CSV 中的无字幕视频
python utils/video_fallback_processor.py --csv "bilibili_videos_output/作者名.csv"
# 指定 Gemini 模型
python utils/video_fallback_processor.py --csv "bilibili_videos_output/作者名.csv" --model flash
# 限制处理数量(测试用)
python utils/video_fallback_processor.py --csv "bilibili_videos_output/作者名.csv" --limit 3功能说明:
- 自动下载视频文件
- 使用 Gemini 分析视频内容(理解画面和音频)
- 生成结构化的学习笔记(与字幕处理格式一致)
- 自动保存到
MediaCrawler/bilibili_subtitles/作者名/目录
Gemini 模型选择:
flash-lite- 推荐,速度快,配额最多flash- 质量更好,配额较少pro- 最高质量
如果需要提取视频字幕,可以使用内置的 Whisper 工具:
# 安装 Whisper
pip install openai-whisper
# 提取字幕
python ultimate_transcribe.py -u "视频URL" --model mediumWhisper 模型选择:
small- 日常使用medium- 中文推荐large- 高精度需求
# 基础依赖(必需)
pip install google-generativeai yt-dlp
# 字幕功能(可选)
pip install openai-whisper
# Telegram Bot(可选)
pip install python-telegram-bot或使用 requirements.txt:
pip install -r requirements.txt- 📁 重构项目目录结构
- 📝 新增 FILE_STRUCTURE.md 详细文档
- 🔧 移植 MediaCrawler 基础框架(CDP浏览器管理)
- 🤖 整合 Bot 功能到 bots/ 目录
- 📦 统一工具、分析、工作流模块
- 🗄️ 归档重复/过时文件
- 🔗 修复所有移动文件的导入路径问题
- 新增 Gemini 2.5 系列模型支持
- 知识库型笔记生成模式
- 批量分析自动并发
- 模型自动切换(配额不足时)
- 文件结构说明 - 详细的文件和使用说明
- Gemini API 文档
- yt-dlp 文档
- 完整文档
MIT License - 仅供个人学习和研究使用