🎥 YouTube转录RAG系统
100%人工智能生成 |完全由 反重力 (谷歌的Gemini 3 Pro集成开发环境) 零人为编写的代码
MCP(模型上下文协议)服务器,用于检索YouTube视频转录本,在矢量数据库(ChromaDB)中对其进行索引,并对单个视频或整个索引集合进行语义搜索。
](https://www.docker.com/)   
______________________________________________________________________
✨ 特性
- 🎯 提取和索引:自动下载YouTube成绩单,按时间分组,并存储嵌入内容
- 🔍 语义搜索:使用自然语言查询特定视频或整个收藏
- 💾 持久性:数据保存到磁盘并在容器重新启动后仍然有效
- 🐳 Docker化:使用Docker Compose轻松部署
- 🤖 MCP集成:与Claude Desktop和其他MCP客户端无缝协作
- ⚡ 本地嵌入:用途
all-MiniLM-L6-v2用于快速离线语义搜索
______________________________________________________________________
🚀 快速开始
先决条件
- 已安装Docker和Docker Compose
- Python 3.11+(用于模型设置)
1.️⃣ 下载嵌入模型
首次运行前,在本地下载模型:
python setup_model.py这将下载 all-MiniLM-L6-v2 型号(~100MB) models/ 目录。
2.️⃣ 启动服务器
docker-compose up --build等待日志消息:
Starting YouTube Transcript RAG MCP Server...3.️⃣ 连接到克劳德桌面
- 找到您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 视窗: %APPDATA%\Claude\claude_desktop_config.json
- 添加此配置:
{
"mcpServers": {
"youtube-rag": {
"command": "docker",
"args": [
"exec",
"-i",
"youtube-rag-mcp",
"python",
"stdio_launcher.py"
]
}
}
}- 重新启动克劳德桌面
______________________________________________________________________
🛠️ 可用的MCP工具
fetch_and_index_transcript
检索并索引YouTube视频的文字记录。
输入:
youtube_url(string):完整的YouTube视频URL
输出: 带状态和块计数的JSON
例子:
Please fetch and index this video: https://www.youtube.com/watch?v=T-D1KVIuvjA______________________________________________________________________
query_video
在特定视频的转录中进行语义搜索。
输入:
youtube_url(string):目标视频URLquestion(string):搜索查询top_k(int,默认值=3):要返回的结果数
输出: 带有相关转录块和时间戳的JSON
例子:
Query the video https://www.youtube.com/watch?v=T-D1KVIuvjA with the question "What is Python used for?"______________________________________________________________________
query_all_videos
在所有索引的视频转录中进行语义搜索。
输入:
question(string):搜索查询top_k(int,默认值=5):要返回的结果数
输出: JSON,包含任何索引视频的相关结果
例子:
Search all videos for "machine learning concepts"______________________________________________________________________
list_indexed_videos
显示数据库中当前的所有视频。
输入: 无
输出: 带元数据的JSON视频列表
例子:
List all indexed videos______________________________________________________________________
🔧 配置
环境变量 .env:
| 变量 | 描述 | 默认值 |
|---|---|---|
CHROMA_PERSIST_DIRECTORY | ChromaDB数据路径 | /app/chroma-data |
EMBEDDING_MODEL | 句子转换器模型路径 | /app/models/all-MiniLM-L6-v2 |
LOG_LEVEL | 日志记录级别 | INFO |
CHUNK_TARGET_DURATION | 目标块持续时间(秒) | 150 |
CHUNK_OVERLAP | 块重叠(秒) | 30 |
DEFAULT_TOP_K | 默认结果数 | 3 |
______________________________________________________________________
🔍 数据库检查
使用附带的包装器脚本检查数据库:
# Show statistics
python inspect_docker.py stats
# List all indexed videos
python inspect_docker.py list
# Inspect a specific video
python inspect_docker.py inspect VIDEO_ID --full______________________________________________________________________
📁 项目结构
youtube-transcript-rag/
├── mcp-server/ # Main application directory
│ ├── services/ # Core services (ChromaDB, embeddings, chunking)
│ ├── tools/ # MCP tool implementations
│ ├── utils/ # Utility functions
│ ├── server.py # FastMCP server
│ ├── stdio_launcher.py # Claude Desktop integration
│ ├── db_inspector.py # Database inspection tool
│ └── Dockerfile # Container definition
├── docker-compose.yml # Docker Compose configuration
├── setup_model.py # Model download script
├── inspect_docker.py # Database inspection wrapper
└── .env # Environment variables______________________________________________________________________
🎬 演示工作流程
看 demo_script.md 完整的演示流程包括:
- 为多个视频建立索引
- 查询特定视频
- 跨视频语义搜索
- 持久性验证
______________________________________________________________________
🐛 故障排除
没有可用的成绩单
有些视频没有字幕/文字记录。在这种情况下,该工具将返回错误。
Docker构建速度慢
第一个构建下载嵌入模型(~100MB)和依赖关系。后续构建使用Docker的缓存。
未找到容器
确保容器正在运行:
docker ps | grep youtube-rag-mcp如果没有运行,请启动它:
docker-compose up -d______________________________________________________________________
🤖 关于本项目
整个项目是由 反重力,运行Gemini 3 Pro的谷歌新的人工智能IDE。
挑战: 为YouTube转录RAG创建一个生产就绪的MCP服务器
结果: 一个功能齐全、码头化、生产就绪的应用程序,具有:
- ✅ 干净的架构,适当分离关注点
- ✅ 全面的错误处理
- ✅ Docker容器化
- ✅ MCP集成
- ✅ 数据库检查工具
- ✅ 完整的文件
人类编写的代码行: 0
这展示了人工智能辅助开发的力量和现代人工智能编码助手的能力。
______________________________________________________________________
📝 许可证
麻省理工学院许可证-欢迎将此项目用作模板或学习资源!
______________________________________________________________________
🙏 致谢
- 内置于 FastMCP
- 嵌入方式 句子转换
- 矢量数据库 ChromaDB
- 成绩单通过 youtube转录api
______________________________________________________________________
由以下材料制成✨ 反重力(双子座3 Pro)
