YouTube视频分析工具

一个AI助手服务器,用于分析YouTube视频,获取元数据、提取字幕并捕获帧。

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

使用说明

mcp-youtube分析器

一个MCP服务器,允许AI助手分析YouTube视频——获取元数据、提取转录本和捕获帧。

特性

  • 获取_视频_信息 --获取视频元数据(标题、频道、持续时间、视图、可用字幕)
  • get_transcript --提取带有时间戳的成绩单,并自动回退(字幕→ yt-dlp字幕→ 耳语)
  • 提取帧 --以固定间隔或场景变化捕获帧,以base64 JPEG格式返回
  • 分析视频 --按时间顺序交错的组合转录+帧

快速开始

先决条件

从源码安装

git clone https://github.com/TommasoBagassi/mcp-youtube-analyzer.git
cd mcp-youtube-analyzer
uv sync

MCP配置

克劳德代码

claude mcp add youtube-analyzer -- uvx mcp-youtube-analyzer

或者从本地克隆:

claude mcp add youtube-analyzer -- uv run --directory /path/to/mcp-youtube-analyzer mcp-youtube-analyzer

克劳德桌面版

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "youtube-analyzer": {
      "command": "uvx",
      "args": ["mcp-youtube-analyzer"]
    }
  }
}

或者从本地克隆:

{
  "mcpServers": {
    "youtube-analyzer": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-youtube-analyzer", "mcp-youtube-analyzer"]
    }
  }
}

工具

获取_视频_信息

无需下载即可获取视频元数据。

参数 类型 必填 说明
url string yes YouTube视频URL或视频ID

get_transcript

使用3步回退链提取文字/字幕。

参数 类型 必填 默认 说明
url string 是 -- YouTube视频URL或视频ID
lang string 否 "en" 首选语言代码
include_timestamps boolean 否 true 包括 [MM:SS] 时间戳
cursor string 否 null 前一个响应的分页光标

返回分页文本(50000个字符块)。使用返回的 next_cursor 值以获取后续页面。

提取帧

将帧提取为base64 JPEG图像。

参数 类型 必填 默认 说明
url string 是 -- YouTube视频URL或视频ID
interval_seconds 整数 否 30 捕获之间的秒数(间隔模式)
method string 否 "interval" "interval" 或 "scene" 用于场景变化检测
max_frames 整数 否 20 返回的最大帧数
max_resolution 整数 否 720 最大高度(像素)
quality 整数 否 60 JPEG质量(1-100)
start_time 整数 否 null 分段开始时间(秒)
end_time 整数 否 null 分段结束(秒)

分析视频

组合转录+帧,按时间顺序交错。使用更严格的默认值来管理输出大小。

参数 类型 必填 默认 说明
url string 是 -- YouTube视频URL或视频ID
lang string 否 "en" 首选文字记录语言
frame_interval 整数 否 60 帧捕获之间的秒数
max_frames 整数 否 10 返回的最大帧数
quality 整数 否 50 JPEG质量(1-100)
start_time 整数 否 null 分段开始时间(秒)
end_time 整数 否 null 分段结束(秒)

认证

默认情况下,只能访问公共视频。对于私人或年龄限制的视频,请通过环境变量配置基于cookie的身份验证:

变量 描述
YOUTUBE_COOKIE_SOURCE 浏览器从(例如。, firefox, chrome)
YOUTUBE_COOKIES_FILE Netscape格式cookies.txt文件的路径

YOUTUBE_COOKIE_SOURCE 如果两者都设置,则优先。

示例(克劳德代码):

claude mcp add youtube-analyzer -e YOUTUBE_COOKIE_SOURCE=firefox -- uvx mcp-youtube-analyzer

示例(克劳德桌面):

{
  "mcpServers": {
    "youtube-analyzer": {
      "command": "uvx",
      "args": ["mcp-youtube-analyzer"],
      "env": {
        "YOUTUBE_COOKIE_SOURCE": "firefox"
      }
    }
  }
}

配置

变量 默认值 描述
YOUTUBE_MAX_DURATION 10800 (3小时) 允许的最大视频持续时间(秒)
WHISPER_MODEL small 用于本地转录回退的更快耳语模型名称

Whisper(可选)

Whisper转录回退仅在没有字幕或字幕可用时使用。安装方式:

uv sync --extra whisper

测试

运行单元测试:

uv run pytest tests/ -v -m "not integration"

运行集成测试(需要网络访问,点击真实的YouTube):

uv run pytest tests/ -v --integration

许可证

麻省理工学院