YouTube视频元数据处理服务

一个用于提取YouTube视频元数据、字幕并将其转换为Markdown格式的服务器工具,支持多种模板和搜索功能。

  • by nattyraz
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 nattyraz/youtube-mcp

使用说明

YouTube MCP服务器

用于与YouTube视频交互的模型上下文协议(MCP)服务器。此服务器提供用于提取视频元数据、字幕并使用各种模板将其转换为markdown格式的工具。

特性

  • 视频元数据:获取全面的视频信息
  • 标题提取:支持自动生成和手动字幕
  • 多种语言:内置英语和法语支持
  • 模板系统:三个内置的markdown模板:
    • 基础:简单转录格式
    • 详细:带时间戳的完整元数据
    • 搜索:用上下文突出显示结果
  • 搜索功能:在视频字幕中搜索
  • 灵活的身份验证:同时支持API密钥和OAuth2身份验证

先决条件

  • Node.js(v16或更高版本)
  • npm或纱线
  • YouTube数据API密钥和/或OAuth2凭据

安装

  1. 克隆存储库:
git clone [repository-url]
cd youtube-mcp
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

配置

创建一个 .env 根目录中包含您的YouTube凭据的文件:

YOUTUBE_API_KEY=your_api_key
YOUTUBE_CLIENT_ID=your_client_id
YOUTUBE_CLIENT_SECRET=your_client_secret
YOUTUBE_REFRESH_TOKEN=your_refresh_token  # Optional, for OAuth2

MCP配置

将服务器添加到MCP设置文件中(通常在 ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "youtube": {
      "command": "node",
      "args": ["path/to/youtube-mcp/build/index.js"],
      "env": {
        "YOUTUBE_API_KEY": "your_api_key",
        "YOUTUBE_CLIENT_ID": "your_client_id",
        "YOUTUBE_CLIENT_SECRET": "your_client_secret"
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

用法

服务器提供以下工具:

1.获取视频信息

use_mcp_tool youtube get_video_info {
  "url": "https://www.youtube.com/watch?v=VIDEO_ID"
}

2.获取字幕

use_mcp_tool youtube get_captions {
  "url": "https://www.youtube.com/watch?v=VIDEO_ID",
  "language": "en"  // Optional, defaults to "en"
}

3.转换为Markdown

use_mcp_tool youtube convert_to_markdown {
  "url": "https://www.youtube.com/watch?v=VIDEO_ID",
  "template_name": "detailed",  // Optional, "basic", "detailed", or "search"
  "language": "en",            // Optional
  "options": {                 // Optional
    "include_chapters": true,
    "search_term": "keyword"   // Only for search template
  }
}

4.列出模板

use_mcp_tool youtube list_templates

依赖项

{
  "dependencies": {
    "@modelcontextprotocol/sdk": "latest",
    "googleapis": "^146.0.0",
    "google-auth-library": "^9.0.0",
    "youtube-captions-scraper": "^2.0.0",
    "express": "^4.18.2",
    "open": "^9.1.0"
  },
  "devDependencies": {
    "@types/node": "^20.0.0",
    "typescript": "^5.0.0",
    "tsx": "^4.0.0"
  }
}

OAuth2设置

对于OAuth2身份验证(私人视频访问需要):

  1. 在中创建项目 谷歌云控制台
  2. 启用YouTube数据API v3
  3. 创建OAuth2凭据(Web应用程序类型)
  4. 运行身份验证脚本:
node src/get-api-key.js
  1. 按照浏览器提示授权应用程序
  2. 将刷新令牌复制到您的配置中

自定义模板

您可以通过修改来添加自定义模板 DEFAULT_TEMPLATES 数组in src/index.ts模板遵循以下结构:

interface MarkdownTemplate {
  name: string;
  description: string;
  format: {
    header?: string;
    chapter_format?: string;
    caption_block: string;
    timestamp_format?: string;
    search_result_format?: string;
  }
}

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求