使用说明
mcp-youtube分析器
一个MCP服务器,允许AI助手分析YouTube视频——获取元数据、提取转录本和捕获帧。
特性
- 获取_视频_信息 --获取视频元数据(标题、频道、持续时间、视图、可用字幕)
- get_transcript --提取带有时间戳的成绩单,并自动回退(字幕→ yt-dlp字幕→ 耳语)
- 提取帧 --以固定间隔或场景变化捕获帧,以base64 JPEG格式返回
- 分析视频 --按时间顺序交错的组合转录+帧
快速开始
先决条件
- Python 3.11+
- 紫外线
从源码安装
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
许可证
麻省理工学院