使用说明
腾讯视频下载器 MCP 服务器
一个基于 Model Context Protocol (MCP) 的服务器,使 AI 助手能够搜索、获取信息和下载腾讯视频。
功能特性
- 解析视频 URL:从腾讯视频 URL 中提取标题、时长、描述和上传日期
- 画质选择:获取可用的画质选项(1080P、720P、480P 等)
- 视频下载:按指定画质下载视频
- 格式转换:自动将视频转换为标准 MP4 (H.264) 格式
- 进度追踪:实时下载进度反馈
- 错误处理:包含可操作建议的结构化错误消息
前置要求
安装前请确保具备以下条件:
- Go 1.26.1 或更高版本:下载 Go
- yt-dlp:视频下载必需
pip install yt-dlp # 或从 https://github.com/yt-dlp/yt-dlp/releases 下载 - ffmpeg:视频格式转换必需
# Ubuntu/Debian sudo apt install ffmpeg # macOS brew install ffmpeg # Windows # 从 https://ffmpeg.org/download.html 下载
安装
从源码安装
git clone <repository-url>
cd mcp
go build -o tencent-video-mcp ./cmd/tencent-video-mcp
sudo mv tencent-video-mcp /usr/local/bin/
使用 Go Install
go install ./cmd/tencent-video-mcp@latest
配置
1. 创建配置文件
复制示例配置:
cp config.yaml.example config.yaml
2. 配置凭据
编辑 config.yaml 或设置环境变量:
tencent_video:
username: "${TENCENT_VIDEO_USERNAME}"
password: "${TENCENT_VIDEO_PASSWORD}"
3. 设置环境变量
export TENCENT_VIDEO_USERNAME="your_username"
export TENCENT_VIDEO_PASSWORD="your_password"
4. (可选)配置工具路径
如果 yt-dlp 或 ffmpeg 不在 PATH 中:
tools:
ytdlp_path: "/path/to/yt-dlp"
ffmpeg_path: "/path/to/ffmpeg"
使用
启动服务器
服务器通过 stdio 通信,适合与 MCP 客户端集成:
tencent-video-mcp [config.yaml]
如果未指定配置文件,默认使用当前目录下的 config.yaml。
MCP 工具
parse_video_url
解析腾讯视频 URL 并提取基本信息。
参数:
url(string, 必需):腾讯视频 URL
示例:
{
"url": "https://v.qq.com/x/cover/..."
}
响应:
{
"title": "视频标题",
"duration": "10:25",
"description": "视频描述...",
"upload_date": "2024-01-15",
"url": "https://v.qq.com/..."
}
get_video_qualities
获取视频的可用画质选项。
参数:
url(string, 必需):腾讯视频 URL
响应:
{
"qualities": [
{
"id": "137",
"label": "1080P",
"resolution": "1080P",
"is_default": true
},
{
"id": "136",
"label": "720P",
"resolution": "720P",
"is_default": false
}
],
"default_index": 0,
"url": "https://v.qq.com/..."
}
download_video
按指定画质下载视频并转换为 MP4 格式。
参数:
url(string, 必需):腾讯视频 URLquality(string, 可选):画质级别(如 "1080P"、"720P"),默认为最高可用画质output_path(string, 必需):保存视频的本地文件路径
示例:
{
"url": "https://v.qq.com/x/cover/...",
"quality": "1080P",
"output_path": "/path/to/video.mp4"
}
响应:
{
"success": true,
"file_path": "/path/to/video.mp4"
}
错误处理
所有错误包含:
- 错误代码:错误类型的数字代码
- 错误类型:错误类别(InputValidationError、AuthenticationError 等)
- 消息:详细的问题描述
- 建议:解决问题的可操作建议
- 上下文:额外的调试信息
错误代码
| 范围 | 类型 |
|---|---|
| 1000-1999 | 输入验证错误 |
| 2000-2999 | 身份验证错误 |
| 3000-3999 | 下载错误 |
| 4000-4999 | 转换错误 |
| 5000-5999 | 配置错误 |
与 AI 助手集成
Claude Desktop
在 ~/.claude_desktop_config.json (macOS/Linux) 或 %APPDATA%\Claude\claude_desktop_config.json (Windows) 中添加:
{
"mcpServers": {
"tencent-video": {
"command": "/path/to/tencent-video-mcp",
"args": ["/path/to/config.yaml"],
"env": {
"TENCENT_VIDEO_USERNAME": "your_username",
"TENCENT_VIDEO_PASSWORD": "your_password"
}
}
}
}
Cline (VS Code)
在 VS Code 设置中配置 MCP 服务器路径和参数。
其他 MCP 客户端
任何支持 MCP 协议的 AI 客户端都可以使用此服务器。
开发
运行测试
go test ./... -v
运行特定测试
go test ./internal/services/... -v
构建
go build -o bin/tencent-video-mcp ./cmd/tencent-video-mcp
故障排除
yt-dlp 未找到
Error: yt-dlp is not installed or not accessible
解决方案:使用 pip 安装 yt-dlp 或从 GitHub 下载二进制文件。
ffmpeg 未找到
Error: ffmpeg is not installed or not accessible
解决方案:使用系统包管理器安装 ffmpeg。
身份验证失败
Error: Login failure - check your credentials
解决方案:验证您的腾讯视频用户名和密码是否正确。
下载失败
Error: Download failed - network issue
解决方案:检查网络连接并确保视频可公开访问。
项目结构
mcp/
├── cmd/tencent-video-mcp/main.go # 入口点
├── pkg/types/ # 共享数据类型
├── internal/
│ ├── config/ # 配置层
│ ├── errors/ # 错误处理
│ ├── external/
│ │ ├── cmdrunner/ # 命令执行器
│ │ ├── ytdlp/ # yt-dlp 包装器
│ │ └── ffmpeg/ # ffmpeg 包装器
│ ├── services/
│ │ ├── parser.go # 视频解析服务
│ │ ├── downloader.go # 下载服务
│ │ └── converter.go # 格式转换服务
│ └── mcpserver/ # MCP 服务器
│ ├── server.go # JSON-RPC 2.0 服务器
│ ├── tools.go # 工具定义
│ └── handlers.go # 工具处理器
├── config.yaml.example # 配置示例
└── README.md # 本文档
什么是 MCP?
Model Context Protocol (MCP) 是 Anthropic 推出的开放协议,用于标准化 AI 助手与外部工具、数据源和服务之间的通信。
MCP 的优势
- 一次实现,多处使用:同一个 MCP 服务器可以被 Claude Desktop、Cline、Continue.dev 等多种 AI 客户端使用
- 标准化接口:统一的协议,无需为每个 AI 助手单独开发
- 双向通信:支持请求和通知
- 传输层无关:可通过 stdio、HTTP 等多种方式传输
本服务器完整实现了 MCP 协议,因此可以被任何支持 MCP 的 AI 客户端直接调用。
许可证
MIT License - 详见 LICENSE 文件
贡献
欢迎贡献!请提交 issue 或 pull request。