Cricket Data (ESPN + Cricsheet) 是一个板球数据查询技能,整合两个数据后端:ESPN 公开接口(接近实时)与 Cricsheet 开放数据(历史已结束比赛)。
用途 该工具用于获取板球赛事的相关数据,包括正在进行的系列赛比分与状态、联赛积分榜、单场比赛详细摘要与新闻,以及历史比赛的逐球数据和球员统计。
主要能力 ESPN 后端(接近实时)提供以下命令:
- get_series:列出当前活跃的板球系列赛及其 ESPN 系列 ID 和进行中的比赛
- get_scoreboard:查询某系列赛的比赛、比分与状态(可选 date 参数)
- get_standings:查询系列赛积分榜,但多数双边巡回赛为空(仅联赛/小组赛发布积分表)
- get_game_summary:查询单场比赛详情,含阵容、领先者、记分卡、各局比分与场地信息
- get_news:查询某系列赛的新闻文章
Cricsheet 后端(历史数据,ODC-BY 1.0 许可)提供以下命令:
- get_competitions:列出 Cricsheet 赛事代码
- get_matches:查询某赛事的已完赛比赛,按最新排序(可选 season)
- get_match_deliveries:查询某场已完赛比赛的逐球投球记录(可选 innings)
- get_player_stats:查询某球员的聚合击球与投球统计(可选 season)
- find_player:搜索 Cricsheet 球员注册表,返回 ESPNcricinfo ID 映射
使用方式 建议优先使用 CLI,以避免 Python 导入路径问题。示例命令: ESPN 后端: sports-skills cricket get_series sports-skills cricket get_scoreboard --series_id=8048 sports-skills cricket get_standings --series_id=8048 sports-skills cricket get_game_summary --series_id=8048 --event_id=1535465 sports-skills cricket get_news --series_id=8048
Cricsheet 后端: sports-skills cricket get_competitions sports-skills cricket get_matches --competition=ipl --season=2026 sports-skills cricket get_match_deliveries --competition=ipl --match_id=1473508 sports-skills cricket get_player_stats --competition=ipl --player="V Kohli" sports-skills cricket find_player --name=kohli
日期接受 YYYYMMDD 或 YYYY-MM-DD 格式。season 为起始年份(例如 2020 匹配 Cricsheet 的 "2020/21")。完整参数与返回结构见 references/api-reference.md;Cricsheet 赛事代码见 references/competitions.md。代理可运行 scripts/validate_params.sh 预校验 --competition、--series_id 与 --date。
关键注意事项
- ESPN 系列 ID 按系列赛而非联赛划分,需先用 get_series 发现。重复举办的赛事每季 ID 不同(如每个 IPL 赛季 ID 不同),不可硬编码(示例中的 8048 仅作示意)。
- 存在两个 ID 空间:get_series 返回 ESPN 数值 ID(实时),get_competitions 返回 Cricsheet 字母代码(历史)。两者除在比赛层面外无关:Cricsheet 的 match_id 等于 ESPNcricinfo 比赛 ID,可作为桥接。
- Cricsheet 仅覆盖已完赛比赛(比赛结束后约滞后一天)。实时或未来的比赛请使用 ESPN 命令。
- get_player_stats 需要 Cricsheet 精确的姓名拼写(如 "V Kohli",而非 "Virat Kohli"),先用 find_player 确认拼写。
- 不提供 ICC 排名,无免费来源(v1 限制)。系列赛积分榜来自 get_standings,多数双边巡回赛为空。
- 每个赛事每天首次调用 Cricsheet 会下载 zip。大型赛事(Tests、ODIs、IPL)为数十 MB。zip 缓存 24 小时于 ~/.cache/sports-skills/cricsheet/,同日后继调用较快。
不存在的命令(不可调用)
- get_player / get_player_info:不存在。用 find_player 解析姓名,再用 get_player_stats 查询生涯数据。
- get_match:不存在。用 get_matches(历史列表)或 get_game_summary(单场 ESPN 比赛详情)。
- get_rankings:不存在。无免费 ICC 排名来源。
- get_teams / get_team_roster:不存在。阵容来自 get_game_summary。
- get_play_by_play:不存在。已完赛比赛的逐球数据用 get_match_deliveries。
署名 Cricsheet 数据采用 ODC-BY 1.0 许可。每个 Cricsheet 响应均包含 attribution 字段("Data from Cricsheet (cricsheet.org), ODC-BY 1.0")。转载数据时需保留该署名字符串。