腾讯视频下载服务器

一个基于 Model Context Protocol (MCP) 的服务器,使 AI 助手能够搜索、获取信息和下载腾讯视频。

  • by MohitLolo
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 MohitLolo/tencent-video-mcp

使用说明

腾讯视频下载器 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, 必需):腾讯视频 URL
  • quality (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。