YouTube视频元数据与字幕服务

一个基于FastMCP的YouTube视频元数据和字幕提取服务,支持多语言字幕自动回退。

  • by mpnikhil
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mpnikhil/youtube-mcp

使用说明

YouTube MCP服务器

一个简单的模型上下文协议(MCP)服务器,提供YouTube视频元数据和转录。内置于 FastMCP 更干净、更Python化的方法。

特性

  • 获取视频元数据:检索标题、描述、持续时间、浏览次数、上传日期、频道信息和缩略图
  • 获取视频转录:使用自动回退功能获取多种语言的视频转录

安装

  1. 安装Python依赖项:
pip install -r requirements.txt
  1. 使服务器可执行:
chmod +x server.py

用法

运行服务器

服务器使用stdio进行通信。运行它:

python server.py

MCP客户端配置

将此服务器添加到您的MCP客户端配置中(例如,在Cursor或其他兼容MCP的客户端中):

{
  "mcpServers": {
    "youtube-mcp": {
      "command": "python",
      "args": ["/path/to/youtube-mcp/server.py"]
    }
  }
}

工具: get_youtube_video_info

参数:

  • video_url_or_id (必填):YouTube视频URL或视频ID
    • 示例:
      • https://www.youtube.com/watch?v=dQw4w9WgXcQ
      • https://youtu.be/dQw4w9WgXcQ
      • dQw4w9WgXcQ
  • language_codes (可选):成绩单的首选语言代码数组(默认值: ["en"])
    • 例子: ["en", "es", "fr"]

退货:

  • video_id:提取的视频ID
  • metadata:视频元数据,包括标题、描述、持续时间、观看次数等。
  • transcript:转录数据,包括全文、片段、语言和生成状态

示例响应:

{
  "video_id": "dQw4w9WgXcQ",
  "metadata": {
    "title": "Video Title",
    "description": "Video description...",
    "duration": 212,
    "view_count": 1000000,
    "upload_date": "20231015",
    "uploader": "Channel Name",
    "channel": "Channel Name",
    "thumbnail": "https://...",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  },
  "transcript": {
    "transcript": "Full transcript text...",
    "segments": [
      {
        "text": "Segment text",
        "start": 0.0,
        "duration": 5.0
      }
    ],
    "language": "en",
    "is_generated": false
  }
}

依赖项

  • fastmcp:FastMCP框架-一个具有直观装饰器的Python MCP框架(由Prefect开发)
  • youtube-transcript-api:用于获取YouTube成绩单
  • yt-dlp:用于获取YouTube视频元数据
  • pydantic:用于数据验证

为什么选择FastMCP?

FastMCP是一个现代的Python框架,用于构建MCP服务器,它:

  • 使用直观的装饰器(@mcp.tool())代替手动工具注册
  • 通过以下方式简化服务器设置 mcp.run() 而不是管理stdio流
  • 提供更好的类型推断和验证
  • 提供更干净、更可维护的代码库
  • 由省长积极维护,并提供出色的文件

备注

  • 服务器自动从各种YouTube URL格式中提取视频ID
  • 如果手动创建的成绩单不可用,成绩单将回退到自动生成的版本
  • 如果没有首选语言的成绩单,它将尝试查找任何可用的成绩单