benchmark_v2.md 4 KB

YouTube Trending Crawler Benchmark v2.0

版本: v2.0 更新日期: 2026-04-04 任务编号: T-mnj3nimu


1. 评分维度

维度 权重 说明
API 调用准确性 25% API 端点、参数、认证正确性
数据字段完整性 20% 输出字段覆盖度
多地区/多分类支持 15% 地区代码、分类 ID 支持
错误处理健壮性 15% 错误检测、降级方案
输出格式正确性 15% JSON 格式规范性
配额管理合理性 10% 配额成本控制

2. 评分标准

2.1 API 调用准确性 (权重 25%)

分数 标准
90-100 正确调用 videos?chart=mostPopular,参数完全正确,包含必需的 part/chart 参数
70-89 API 端点正确,参数基本完整,小遗漏
50-69 端点或参数有明显错误,但能返回数据
0-49 端点错误或参数完全错误,无法获取数据

检查项:

  • [ ] 使用 videos 端点 (非 search)
  • [ ] chart=mostPopular 参数存在
  • [ ] part=snippet,statistics 或包含 contentDetails

2.2 数据字段完整性 (权重 20%)

分数 标准
90-100 包含全部 17 个目标字段
70-89 包含 12-16 个字段
50-69 包含 8-11 个字段
0-49 字段严重缺失 (

目标字段: videoId, title, channelTitle, channelId, subscriberCount, viewCount, likeCount, commentCount, publishedAt, description, url, thumbnail, categoryId, categoryName, tags, duration, crawlTime, regionCode

2.3 多地区/多分类支持 (权重 15%)

分数 标准
90-100 支持 ≥5 个地区代码和 ≥5 个分类 ID
70-89 支持 3-4 个地区,支持 3-4 个分类
50-69 支持 1-2 个地区或分类
0-49 不支持多地区或多分类

检查项:

  • [ ] 支持 ISO 3166-1 alpha-2 地区代码 (US, JP, KR, GB, DE, FR, IN, BR)
  • [ ] 支持视频分类 ID (1-44)

2.4 错误处理健壮性 (权重 15%)

分数 标准
90-100 完整错误处理 + yt-dlp 降级方案
70-89 错误处理完整,无降级
50-69 基础错误处理
0-49 无错误处理

检查项:

  • [ ] 403 处理 (配额耗尽)
  • [ ] 404 处理 (视频不存在)
  • [ ] 500 错误重试
  • [ ] yt-dlp 降级方案

2.5 输出格式正确性 (权重 15%)

分数 标准
90-100 JSON 完全符合规范,含必要元数据
70-89 JSON 格式正确,轻微问题
50-69 JSON 可解析但有问题
0-49 JSON 格式错误无法解析

检查项:

  • [ ] 有效 JSON (可 JSON.parse)
  • [ ] 包含 regionCode 字段
  • [ ] 时间格式符合 ISO 8601
  • [ ] URL 格式正确

2.6 配额管理合理性 (权重 10%)

分数 标准
90-100 优先使用 videos(1 unit) + 批量合并请求
70-89 只使用 videos 端点
50-69 混用 search 端点但控制频率
0-49 大量使用 search 端点 (100 unit/次)

3. 通过阈值

等级 分数
优秀 ≥ 90
良好 ≥ 75
及格 ≥ 60
不及格

4. 测试用例

4.1 基础功能测试

输入: regionCode=US, maxResults=10
期望: 返回 10 条热门视频,包含 viewCount, likeCount, commentCount

4.2 多地区测试

输入: regionCode=JP, videoCategoryId=10
期望: 返回日本地区音乐分类热门视频

4.3 错误处理测试

输入: API Key 无效
期望: 返回错误信息,或启用 yt-dlp 降级

4.4 配额测试

输入: 批量请求多个地区
期望: 使用 videos 端点 (1 unit),非 search (100 unit)

5. 检查清单

  • [ ] API 端点使用 videos?chart=mostPopular
  • [ ] 必需参数: part, chart, maxResults
  • [ ] 输出包含至少 12 个字段
  • [ ] 支持多地区代码
  • [ ] 支持视频分类过滤
  • [ ] 错误处理: 403, 404, 500
  • [ ] 降级方案: yt-dlp
  • [ ] JSON 格式正确
  • [ ] 配额成本优化