YouTube助手

一款基于MCP的YouTube助手,提供视频搜索、频道订阅、视频点赞/取消点赞、观看历史记录、个性化推荐等功能。

  • by Likhitavanukuri
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Likhitavanukuri/mcp-youtube-agent

使用说明

🚀 YOUI–YouTube MCP代理

一个完全部署的基于MCP的YouTube助手,可以执行实时操作,如搜索视频、获取频道上传、喜欢/不喜欢视频、显示喜欢的视频、维护观看历史、订阅频道、列出订阅频道和生成个性化推荐。

作为MCP代理开发任务的一部分,该项目在48小时内端到端地设计和实施。 🔗 实时应用程序链接 前端(Vercel):https://mcp-youtube-agent-iota.vercel.app 后端(渲染):https://mcp-youtube-backend.onrender.com

📌 项目概要 该项目使用模型上下文协议(MCP)实现了一个由人工智能驱动的YouTube代理。 目标是将YouTube操作作为结构化MCP工具公开,并构建一个智能、交互式的前端助手。

该系统由以下部分组成: 后端(MCP服务器+YouTube API网关) Node.js(Express) googleapi(OAuth2+YouTube数据API) 自定义MCP工具路由器 安全令牌处理 前端(React仪表板+聊天用户界面) React+Vite 阿西奥斯 响应式仪表板 聊天风格命令执行 本地存储缓存 尽管是由新手在严格的限制下构建的,但该架构是干净、模块化和可扩展的。

🎯 项目如何满足MCP任务要求 ✔ 1.与外部平台集成

与YouTube Data API v3。 通过以下方式安全地处理身份验证: OAuth2授权码流 持久刷新令牌 任何地方都没有存储用户密码

✔ 2.将开发人员API作为MCP工具公开 MCP工具说明 youtube.search在youtube上搜索视频 youtube.channel视频获取频道上传 youtube.getLikedVideos检索用户喜欢的视频 youtube.getHistory获取观看历史记录(本地模拟) youtube.videoInfo获取任何视频的元数据 youtube.likeVideo喜欢或不喜欢视频 youtube订阅🔔 订阅YouTube频道 youtube.get订阅📺 列出所有已订阅的频道

工具遵循MCP定义的一致输入/输出结构。

✔ 3.用于实时操作+检索的MCP 代理人可以: 搜索YouTube 获取频道上传 喜欢/不喜欢的视频 维护手表历史记录 显示喜欢的视频 生成上下文建议 订阅频道 列出已订阅的频道

✔ 4.完全部署,可公开访问 前端→ Vercel CDN 后端→ 提供HTTPS服务 通过REST/mcp端点完成通信 所有通过环境变量处理的秘密

✔ 5.带有文档的GitHub存储库 存储库包括: 清理文件夹结构 清晰的设置说明 代码文档 架构说明 屏幕截图(可选)

🧠 技术方法 🟦 1.后端(节点+MCP服务器) 职责:处理OAuth2,自动刷新过期令牌,公开MCP工具处理程序,调用YouTube数据API,强制令牌安全 为前端提供响应,为什么要刷新令牌方法?,无重复登录提示,长期YouTube API访问,避免暴露访问令牌,行业标准方法

安全: 所有秘密都存储在Render-env-vars中,OAuth在服务器端处理,没有向前端发送凭据,强制HTTPS

🟥 2.前端(React+Vite) 特征: 搜索栏+聊天界面 左侧导航(历史记录、点赞、订阅) 右侧聊天机器人 视频结果主网格 完全移动响应 本地存储缓存: 观看历史 已订阅频道列表 UI状态

🏗 文件夹结构 mcp youtube代理/ │ ├── 后端/ │ ├── index.js#Express服务器入口 │ ├── auth.js#OAuth刷新逻辑 │ ├── youtube.js#youtube API包装器 │ ├── mcp.js#mcp工具路由器 │ └── youtubeRouter.js#其他REST端点 │ ├── 前端/ │ ├── src/ │ │ ├── App.jsx#主界面+聊天+视频网格 │ │ └── api.js#与后端/mcp通信 │ └── 公众/ │ └── README.md

📱 功能概述 ✔ 搜索YouTube:高质量的缩略图、标题和元数据。 ✔ 观看历史记录:自动将点击的视频添加到历史记录中。 ✔ 喜欢的视频:从YouTube获取用户喜欢的视频。 ✔ 喜欢/不喜欢视频:适用于结果网格、推荐和聊天。 ✔ 订阅频道🔔: 在每个视频下添加订阅按钮:更改状态(订阅→ 订阅),使用YouTube订阅API ✔ 查看已订阅频道📺:侧边栏按钮:“已订阅频道”,聊天命令:订阅,显示频道缩略图和标题 ✔ 建议

基于: 上次搜索 喜欢的视频 观看历史

✔ 基于聊天的交互 示例: 10宝莱坞视频 通道apna学院 如dQw4w9WgXcQ 订阅

✔ 完全响应 移动就绪布局。 🔐 安全说明 OAuth刷新令牌仅存储在后端 没有向前端发送访问令牌 受保护的环境变量 HTTPS端到端 未处理用户密码或敏感数据

⚡ 性能和延迟 缓存状态(历史、子) 优化的YouTube API查询 速度的最大结果有限 Vercel前端CDN托管 渲染处理令牌立即刷新 实现了平滑和低延迟的用户体验。

🚀 运行项目 后端: cd后端 npm安装 npm启动

前端: cd前端 npm安装 npm 运行开发

💬 支持的命令示例 devops视频 10喜剧视频 通道apna学院 喜欢的视频 历史 喜欢https://youtu.be/dQw4w9WgXcQ 订阅 订阅UC1234abcdXYZ