YouTube MCP Server

by coyaSONG
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows querying YouTube data, including searching for videos, retrieving video and channel information, and fetching video comments through the YouTube Data API.

YouTube MCP 服务器

用于与 YouTube 数据交互的模型上下文协议 (MCP) 服务器。该服务器提供资源和工具,用于通过 stdio 接口查询 YouTube 视频、频道、评论和文字记录。

特征

  • 使用高级过滤选项搜索 YouTube 视频
  • 获取有关特定视频和频道的详细信息
  • 比较多个视频的统计数据
  • 按地区和类别发现热门视频
  • 分析频道性能和视频统计数据
  • 检索视频评论和文字记录/字幕
  • 生成视频分析和文字记录摘要

先决条件

  • Node.js(v16+)
  • YouTube 数据 API 密钥

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 YouTube MCP 服务器:

npx -y @smithery/cli install @coyaSONG/youtube-mcp-server --client claude

手动安装

  1. 克隆此存储库:
    git clone https://github.com/coyaSONG/youtube-mcp-server.git cd youtube-mcp-server
  2. 安装依赖项:
    npm install
  3. 在根目录中创建一个.env文件:
    YOUTUBE_API_KEY=your_youtube_api_key_here PORT=3000

用法

构建和运行

  1. 构建项目:
    npm run build
  2. 运行服务器:
    npm start
  3. 以开发模式运行:
    npm run dev
  4. 清理构建工件:
    npm run clean

Docker 部署

该项目包含一个用于容器化部署的Dockerfile:

# Build the Docker image docker build -t youtube-mcp-server . # Run the container docker run -p 3000:3000 --env-file .env youtube-mcp-server

API 参考

资源

  • youtube://video/{videoId} - 获取特定视频的详细信息
  • youtube://channel/{channelId} - 获取有关特定频道的信息
  • youtube://transcript/{videoId} - 获取特定视频的成绩单
    • 可选查询参数: ?language=LANGUAGE_CODE (例如enkoja

工具

基本工具

  • search-videos - 使用高级过滤选项搜索 YouTube 视频
  • get-video-comments - 获取特定视频的评论
  • get-video-transcript - 获取特定视频的文字记录(可选语言)
  • enhanced-transcript - 具有过滤、搜索和多视频功能的高级成绩单提取
  • get-key-moments - 从视频记录中提取带有时间戳的关键时刻,以便于导航
  • get-segmented-transcript - 将视频记录分成多个片段以便于分析

统计工具

  • get-video-stats - 获取特定视频的统计信息
  • get-channel-stats - 获取订阅者数量、观看次数和其他频道统计数据
  • compare-videos - 比较多个视频的统计数据

发现工具

  • get-trending-videos - 按地区和类别检索热门视频
  • get-video-categories - 获取特定区域可用的视频类别

分析工具

  • analyze-channel-videos - 分析特定频道视频的表现趋势

提示

  • video-analysis - 生成 YouTube 视频的分析
  • transcript-summary - 根据视频成绩单生成视频摘要,可自定义长度并提取关键字
  • segment-by-segment-analysis - 通过分析视频的每个片段提供内容的详细细分

示例

访问视频脚本

youtube://transcript/dQw4w9WgXcQ

获取特定语言的成绩单

youtube://transcript/dQw4w9WgXcQ?language=en

使用统计工具

// Get video statistics { "type": "tool", "name": "get-video-stats", "parameters": { "videoId": "dQw4w9WgXcQ" } } // Compare multiple videos { "type": "tool", "name": "compare-videos", "parameters": { "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"] } }

使用成绩单摘要提示

{ "type": "prompt", "name": "transcript-summary", "parameters": { "videoId": "dQw4w9WgXcQ", "language": "en" } }

使用增强转录工具

// Basic multi-video transcript extraction { "type": "tool", "name": "enhanced-transcript", "parameters": { "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"], "format": "timestamped" } } // With search and time filtering { "type": "tool", "name": "enhanced-transcript", "parameters": { "videoIds": ["dQw4w9WgXcQ"], "filters": { "timeRange": { "start": 60, // Start at 60 seconds "end": 180 // End at 180 seconds }, "search": { "query": "never gonna", "contextLines": 2 } }, "format": "merged" } } // With smart segmentation for easier analysis { "type": "tool", "name": "enhanced-transcript", "parameters": { "videoIds": ["dQw4w9WgXcQ"], "filters": { "segment": { "count": 5, "method": "smart" // Breaks at natural pauses } }, "format": "timestamped", "language": "en" } }

使用增强的转录分析功能

// Get key moments from a video { "type": "tool", "name": "get-key-moments", "parameters": { "videoId": "dQw4w9WgXcQ", "maxMoments": "5" } } // Get a segmented transcript { "type": "tool", "name": "get-segmented-transcript", "parameters": { "videoId": "dQw4w9WgXcQ", "segmentCount": "4" } } // Get a segment-by-segment analysis { "type": "prompt", "name": "segment-by-segment-analysis", "parameters": { "videoId": "dQw4w9WgXcQ", "segmentCount": "4" } } // Get customized transcript summary { "type": "prompt", "name": "transcript-summary", "parameters": { "videoId": "dQw4w9WgXcQ", "language": "en", "summaryLength": "detailed", "includeKeywords": "true" } }

错误处理

服务器处理各种错误情况,包括:

  • API 密钥无效
  • 未找到视频或频道
  • 无法获取成绩单
  • 网络问题

执照

麻省理工学院

致谢

ID: nuyw49oscd