@pickstar-2002/video-fetch-mcp
Version:
基于 MCP 协议的多平台视频下载服务端
186 lines (146 loc) • 6.94 kB
Markdown
# Video-Fetch-MCP 服务器测试报告
## 测试概述
**测试时间**: 2025年8月8日 11:39
**测试版本**: @pickstar-2002/video-fetch-mcp v1.0.1
**测试环境**: Windows 10 Enterprise, Node.js 18+
**测试目标**: 全面测试MCP服务器的视频下载功能
## 测试用例
### 1. 视频信息获取测试 (get_video_info)
#### 测试链接1: 腾讯云开发者视频
- **URL**: `https://cloud.tencent.com/developer/video/83322`
- **结果**: ❌ **失败**
- **错误信息**: `ERROR: Unsupported URL: https://cloud.tencent.com/developer/video/83322`
- **分析**: 腾讯云开发者平台不在yt-dlp支持的平台列表中
#### 测试链接2: B站视频
- **URL**: `https://www.bilibili.com/video/BV1FetGzdEy6/?share_source=copy_web&vd_source=f579462203f1a7fb3fb5839bba2bff50`
- **结果**: ✅ **成功**
- **视频信息**:
- 标题: "斗魂爆杀系列启动!你的最高瞬伤是多少?一牌4200!赌圣!"
- 时长: 748.766秒 (约12分29秒)
- 上传者: "不死斩剑圣"
- 平台: BiliBili
- 视频ID: BV1FetGzdEy6
- 支持格式: 15种不同分辨率和编码格式
- 最高分辨率: 1920x1080
- 音频格式: m4a (多种码率)
#### 测试链接3: 抖音视频
- **URL**: `https://v.douyin.com/Hl5Ol-grhZU/`
- **结果**: ❌ **失败**
- **错误信息**: `ERROR: [Douyin] 7534709152948063503: Fresh cookies (not necessarily logged in) are needed`
- **分析**: 抖音平台需要登录状态或新鲜的cookies才能访问
#### 测试链接4: 优酷视频
- **URL**: `https://v.youku.com/v_show/id_XNjQ4MDE0NDg1Mg==.html?spm=a2hkn.playlist.myhome.d_0`
- **结果**: ❌ **失败**
- **错误信息**: `ERROR: [youku] XNjQ4MDE0NDg1Mg: Youku server reported error -3007`
- **分析**: 优酷服务器返回错误,可能需要登录或地区限制
### 2. 视频下载测试 (download_video)
#### 测试用例2.1: 标准视频下载
- **URL**: B站视频链接
- **输出路径**: `test/output`
- **质量**: best
- **任务ID**: `6f605a41-389d-4f55-b6e0-3b679a5c1137`
- **结果**: ❌ **失败**
- **错误信息**: `下载失败 (退出码: 2): __main__.py: error: no such option: --extract-flat`
- **分析**: yt-dlp版本兼容性问题,`--extract-flat`参数不被当前版本支持
#### 测试用例2.2: 音频提取下载
- **URL**: B站视频链接
- **输出路径**: `test/output`
- **提取音频**: true
- **音频格式**: mp3
- **任务ID**: `ca4b1531-ec66-4665-9cdb-cb2892abfb1d`
- **结果**: 🔄 **任务已创建**
- **状态**: 任务创建成功,但由于yt-dlp参数问题可能也会失败
### 3. 任务管理测试
#### 测试用例3.1: 任务列表查询 (list_tasks)
- **结果**: ✅ **成功**
- **功能**: 能够正确列出所有任务及其状态
- **返回信息**: 任务ID、请求参数、状态、进度、创建时间、更新时间
#### 测试用例3.2: 任务状态查询 (get_task_status)
- **任务ID**: `6f605a41-389d-4f55-b6e0-3b679a5c1137`
- **结果**: ✅ **成功**
- **功能**: 能够正确返回指定任务的详细状态信息
#### 测试用例3.3: 任务取消 (cancel_task)
- **任务ID**: `6f605a41-389d-4f55-b6e0-3b679a5c1137`
- **结果**: ✅ **成功**
- **功能**: 能够成功取消指定任务
## 功能测试总结
### ✅ 正常工作的功能
1. **MCP服务器启动**: 服务器能够正常启动并响应MCP协议请求
2. **工具列表**: 能够正确返回所有可用工具的定义
3. **参数验证**: 使用Joi进行严格的参数验证
4. **B站视频信息获取**: 能够成功获取B站视频的详细信息
5. **任务管理**: 任务创建、状态查询、列表查询、取消功能均正常
6. **错误处理**: 能够正确处理和返回错误信息
### ❌ 存在问题的功能
1. **视频下载**: 由于yt-dlp版本兼容性问题导致下载失败
2. **平台支持限制**:
- 腾讯云开发者平台不支持
- 抖音需要登录状态
- 优酷存在访问限制
3. **依赖版本**: yt-dlp版本可能过旧,不支持某些参数
## 平台兼容性测试结果
| 平台 | 支持状态 | 信息获取 | 下载功能 | 备注 |
|------|----------|----------|----------|------|
| 腾讯云开发者 | ❌ | ❌ | ❌ | 不支持的URL格式 |
| B站 (Bilibili) | ✅ | ✅ | ❌ | 信息获取正常,下载有技术问题 |
| 抖音 (Douyin) | ⚠️ | ❌ | ❌ | 需要登录状态 |
| 优酷 (Youku) | ⚠️ | ❌ | ❌ | 服务器错误或地区限制 |
## 技术问题分析
### 1. yt-dlp版本兼容性
- **问题**: `--extract-flat`参数不被支持
- **影响**: 导致所有下载任务失败
- **建议**: 更新yt-dlp到最新版本或调整参数使用
### 2. 平台访问限制
- **问题**: 部分平台需要登录状态或有地区限制
- **影响**: 限制了服务的通用性
- **建议**: 添加cookie支持或用户认证机制
### 3. 错误处理机制
- **优点**: 能够捕获并返回详细的错误信息
- **改进空间**: 可以添加更友好的错误提示和解决建议
## 性能测试
### 响应时间
- **视频信息获取**: < 3秒 (B站)
- **任务创建**: < 1秒
- **任务状态查询**: < 100ms
- **任务列表查询**: < 100ms
### 资源使用
- **内存使用**: 正常范围内
- **CPU使用**: 信息获取时有短暂峰值
- **网络使用**: 取决于视频大小和网络状况
## 建议和改进方案
### 1. 紧急修复
- [ ] 更新yt-dlp到最新版本
- [ ] 修复`--extract-flat`参数问题
- [ ] 测试并验证下载功能
### 2. 功能增强
- [ ] 添加cookie支持以访问需要登录的平台
- [ ] 增加更多视频平台支持
- [ ] 添加下载进度实时更新
- [ ] 实现断点续传功能
### 3. 用户体验
- [ ] 提供更友好的错误信息
- [ ] 添加平台支持状态说明
- [ ] 实现批量下载功能
- [ ] 添加下载历史记录
### 4. 稳定性改进
- [ ] 添加重试机制
- [ ] 实现更好的异常处理
- [ ] 添加日志记录功能
- [ ] 实现任务队列管理
## 测试结论
**总体评价**: 🟡 **部分功能正常**
video-fetch-mcp服务器的MCP协议实现和基础架构是健全的,能够正确处理MCP请求和响应。主要问题集中在底层的yt-dlp工具兼容性上。
**核心功能状态**:
- ✅ MCP协议支持: 完全正常
- ✅ 任务管理: 完全正常
- ✅ 视频信息获取: 部分平台正常
- ❌ 视频下载: 需要修复yt-dlp兼容性问题
**推荐操作**:
1. 立即更新yt-dlp依赖版本
2. 修复参数兼容性问题
3. 重新测试下载功能
4. 考虑添加更多平台支持
该MCP服务器具有良好的架构基础,修复技术问题后将成为一个功能完整的视频下载工具。
---
**测试执行者**: CodeBuddy AI Assistant
**报告生成时间**: 2025-08-08 11:39:00 CST