集成MCP的YouTube AI摘要生成器
一个端到端的人工智能自动化系统,使用自定义微服务、n8n工作流自动化、本地LLM处理(Ollama)和与Claude Desktop集成的模型上下文协议(MCP)来分析YouTube视频。
🎯 特性
- YouTube转录提取:自定义Node.js微服务获取视频转录
- AI分析:当地LLM(Ollama)生成结构化摘要,其中包含关键点和行动项
- 工作流程自动化:n8n协调整个管道
- MCP集成:通过Claude Desktop进行对话访问
- 容器化:Docker和Docker Compose便于部署
- API成本为零:完全在本地基础设施上运行
🏗️ 建筑
User Request (Claude Desktop)
↓
MCP Server (Node.js)
↓
n8n Workflow (Docker)
↓
YouTube Transcript Microservice (Docker)
↓
Ollama LLM (Local)
↓
Structured Summary Response组件
- YouTube转录微服务 (
youtube-transcript-api/)
- Express.js API服务器 - 使用youtubei.js获取YouTube视频转录 - Docker化以实现一致的部署 - 在端口3000上显示REST API
- n8n工作流 (
n8n-workflow/)
- Webhook触发器接收YouTube URL - 提取视频ID - 调用转录微服务 - 发送给Ollama进行人工智能分析 - 返回结构化JSON响应
- MCP服务器 (
youtube-mcp-server/)
- 实现模型上下文协议 - 将Claude Desktop连接到n8n工作流 - 提供对话界面 - 工具: summarize_youtube_video
- Olama集成
- 本地LLM处理(推荐qwen2.5:7b) - API零成本 - 完全数据隐私 - 可定制的提示
📋 先决条件
- Docker桌面 (最新版本)
- Node.js 18+和npm
- 奥拉玛 已安装并正在运行
- 克劳德桌面版 应用程序(用于MCP集成)
- n8n (通过Docker)
🚀 快速开始
1.克隆存储库
git clone https://github.com/yourusername/youtube-ai-summarizer.git
cd youtube-ai-summarizer2.安装Olama模型
ollama pull qwen2.5:7b3.使用Docker Compose启动服务
docker-compose up -d这将开始:
- YouTube转录微服务(端口3000)
- n8n(端口5678)
4.配置n8n工作流
- 打开n8nhttp://localhost:5678
- 导入工作流:
n8n-workflow/youtube-summarizer-workflow.json - 激活工作流
5.设置MCP服务器
cd youtube-mcp-server
npm install配置Claude桌面:
# macOS
open ~/Library/Application\ Support/Claude/claude_desktop_config.json添加此配置:
{
"mcpServers": {
"youtube-summarizer": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/youtube-mcp-server/index.js"
]
}
}
}替换 /ABSOLUTE/PATH/TO/ 你的实际路径。
6.重新启动克劳德桌面
完全退出并重新打开Claude Desktop。
7.测试一下!
在Claude Desktop中,问:
“总结一下这个YouTube视频:https://www.youtube.com/watch?v=8jPQjjsBbIc"
📖 用法
通过克劳德桌面(推荐)
You: "Summarize this YouTube video: https://www.youtube.com/watch?v=VIDEO_ID"
Claude: [Uses MCP tool to analyze and return structured summary]通过API(直接)
curl -X POST http://localhost:5678/webhook/youtube-summary \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=VIDEO_ID"}'响应格式
{
"success": true,
"videoId": "8jPQjjsBbIc",
"url": "https://www.youtube.com/watch?v=8jPQjjsBbIc",
"summary": {
"content": "SUMMARY: [One sentence summary]\n\nKEY POINTS:\n- Point 1\n- Point 2\n- Point 3\n\nACTION ITEMS:\n- Action 1\n- Action 2\n\nTOPICS: topic1, topic2, topic3"
},
"wordCount": 2074,
"timestamp": "2024-12-05T20:50:40.390Z"
}🛠️ 配置
更改LLM模型
编辑n8n工作流Ollama节点:
- qwen2.5:7b -平衡精度和速度(推荐)
- 美洲驼3.1:8b -更好的指导
- 骆驼3.2:3b -最快但不太准确
自定义提示
编辑n8n工作流中的“构建提示”节点以进行调整:
- 输出格式
- 分析深度
- 要提取的具体见解
调整LLM温度
较低的温度(0.1-0.3)=更真实,更少创意 更高的温度(0.7-1.0)=更具创造力,更高的幻觉风险
推荐: 0.3 用于摘要
📁 项目结构
youtube-ai-summarizer/
├── youtube-transcript-api/ # Microservice
│ ├── Dockerfile
│ ├── package.json
│ └── server.js
├── youtube-mcp-server/ # MCP Integration
│ ├── index.js
│ └── package.json
├── n8n-workflow/ # Automation Workflow
│ └── youtube-summarizer-workflow.json
├── docker-compose.yml # Orchestration
├── docs/ # Documentation
│ ├── MICROSERVICE.md
│ ├── MCP_SETUP.md
│ └── DOCKER_GUIDE.md
├── .gitignore
└── README.md🔧 故障排除
MCP服务器未在Claude中显示
- 检查Claude Desktop配置路径是否正确
- 验证到的绝对路径
index.js - 检查克劳德桌面日志:
~/Library/Logs/Claude/ - 确保您完全退出并重新打开Claude Desktop
微服务连接被拒绝
# Check if container is running
docker ps
# View logs
docker logs youtube-transcript
# Restart container
docker restart youtube-transcriptOllama没有回应
# Check if Ollama is running
ollama list
# Start Ollama
ollama serve
# Test connection
curl http://localhost:11434/api/tagsn8n工作流错误
- 验证所有服务是否正在运行:
docker-compose ps - 检查n8n日志:
docker logs n8n - 确保工作流已激活(在右上角切换)
- 对于Docker n8n,请使用
http://host.docker.internal:3000微服务 - 对于Docker n8n,请使用
http://host.docker.internal:11434对于Ollama
🚀 高级用法
数据库存储(可选)
添加SQLite存储以持久化摘要:
# Install SQLite in n8n
# Add SQLite node to workflow after "Parse LLM Response"看 docs/DATABASE_SETUP.md 了解详情。
批处理
处理多个视频:
// In MCP server, add batch tool
{
name: "batch_summarize_videos",
description: "Summarize multiple YouTube videos",
inputSchema: {
type: "object",
properties: {
urls: {
type: "array",
items: { type: "string" }
}
}
}
}与其他服务集成
- Slack:将摘要发布到频道
- 电子邮件:发送分析视频的每日摘要
- 概念:保存到数据库
- 谷歌表格:记录所有摘要
🎓 教育价值
该项目展示了:
- 微服务架构:独立的集装箱服务
- 工作流程自动化:n8n用于编排
- 人工智能集成:本地LLM部署和提示
- MCP协议:尖端AI工具使用协议
- 码头工人:集装箱化和联网
- API设计:RESTful端点
- 错误处理:强大的错误管理
- 生产实践:健康检查、日志记录、重启策略
📊 演出
- 获取成绩单:500-2000ms(取决于视频长度)
- LLM处理:2-10秒(取决于型号和转录长度)
- 总管道:端到端约5-15秒
- 内存使用:总计约300MB(所有集装箱)
- 成本:0美元(完全本地)
🤝 贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📝 许可证
MIT许可证-有关详细信息,请参阅许可证文件
🙏 致谢
- Anthropic -Claude桌面和MCP协议
- n8n -工作流自动化平台
- 奥拉玛 -本地LLM部署
- youtubei.js -YouTube文字记录提取
📧 联系
鲁斯汀·科尔莫斯-
项目链接:https://github.com/rustinlabs/youtube-ai-summarizer
______________________________________________________________________
🎯 用例
- 内容创作者:快速分析竞争对手的视频
- 研究人员:从教育内容中提取关键点
- 教育工作者:为学生总结讲座视频
- 企业:分析行业网络研讨会和会议
- 个人:从保存的视频中构建可搜索的知识库
______________________________________________________________________
内置于❤️ Rustin Kormos
