关于 esports
用于从免 API 密钥、免注册的公开来源获取电竞数据的技能。它涵盖 OpenDota 的 Dota 2 数据和 Leaguepedia Cargo 的《英雄联盟》电竞数据,并说明查询限流与分页方式。
主要功能
- 01Dota 2 比赛与战队数据
- 02Dota 2 联赛列表
- 03Leaguepedia 赛事查询
- 04Python 与命令行访问
- 05限流与分页说明
适用场景
- 01查看近期 Dota 2 职业比赛
- 02查询 Dota 2 战队或联赛
- 03查询 LoL 赛事和比赛表
- 04翻查较早的 Dota 2 比赛
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ machina-sports/ sports-skills --skill esports安装后在 Claude Code 中输入/esports确认已加载。
详细介绍
电竞数据
无需密钥,数据来自公开来源。无需 API 密钥,也无需注册。
- Dota 2 → OpenDota(
api.opendota.com)。返回真实 JSON。免费额度约为每分钟 60 次请求。 - 《英雄联盟》电竞赛事 → Leaguepedia Cargo(
lol.fandom.com)。返回结构化数据行。遵循 CC-BY-SA 许可——重用数据时请注明 Leaguepedia。
重要提示
- 只有 Dota 2 提供比赛、战队和联赛数据(OpenDota)。LoL 使用 Leaguepedia Cargo。
- **Leaguepedia 的速率限制非常严格。**触发限流时,HTTP 状态码为 200,但响应正文中会返回错误(
Leaguepedia API error: ...),而不是 4xx 错误。结果会缓存约 30 分钟;请勿频繁请求。带有order_by的查询每次都会返回该限流错误正文,因此请勿在lol_cargo_query中使用order_by,而应自行对数据行排序。 - OpenDota 不支持日期筛选。
get_pro_matches返回最新的职业比赛(每次最多 100 场)。要获取更早的比赛,请将响应中的next_less_than_match_id作为less_than_match_id传入。 - **匹配 Dota 战队时请使用
team_id,不要使用名称。**OpenDota 中有些记录的名称仅大小写不同(mouz,ID 为 161707,来自 2013 年;MOUZ,ID 为 9338413,是现在的战队)。 - **这里不提供赔率。**无需密钥即可获取的电竞博彩公司赔率目前不可用。如需隐含概率信号,请使用
kalshi get_esports_odds --game=cs2或polymarket get_esports_events。 - **仅限个人使用。**第三方服务条款仍然适用(OpenDota 使用 MIT 许可;Leaguepedia 使用 CC-BY-SA 许可)。
快速开始
命令行:
sports-skills esports get_pro_matches --limit=10
sports-skills esports get_pro_teams --limit=10
sports-skills esports get_leagues --tier=premium
sports-skills esports get_lol_tournaments --region=Korea --limit=5
sports-skills esports lol_cargo_query --tables=Teams --fields=Name,Region --limit=5
Python:
from sports_skills import esports
esports.get_pro_matches(limit=10)
esports.get_lol_tournaments(region="Brazil")
命令
| 命令 | 描述 |
|---|---|
get_pro_matches | 最新的 Dota 2 职业比赛,按时间从新到旧排列;使用 less_than_match_id 向前翻页(OpenDota) |
get_leagues | Dota 2 联赛/锦标赛,按时间从新到旧排列,可按级别筛选(OpenDota) |
get_pro_teams | 按评分排列的顶尖 Dota 2 战队(OpenDota) |
get_match | 按 ID 查询 Dota 2 比赛详情(OpenDota) |
get_lol_tournaments | 查询从两个月前的 1 日起开始的 LoL 电竞锦标赛,按时间从新到旧排列(Leaguepedia) |
lol_cargo_query | 原始 Leaguepedia Cargo 查询(可查询任意表和字段) |
Leaguepedia Cargo 参考
lol_cargo_query 需要 tables 和 fields。常用表(字段可能有所不同——请先使用小型查询进行验证):Tournaments(Name、DateStart、DateEnd、League、Region、Prizepool)、MatchSchedule(Team1、Team2、Winner、DateTime_UTC、BestOf)、ScoreboardGames、Players、Teams。完整架构:
https://lol.fandom.com/wiki/Special:CargoTables。行键使用你请求的字段名(DateTime_UTC),即使 Cargo 返回的字段名中带有空格。
故障排除
Leaguepedia API error: You've exceeded your rate limit→ 你触发了限流。请等待后重试;连接器会缓存约 30 分钟,以减少请求。- OpenDota 返回空的
matches/teams→ 可能是临时问题;OpenDota 由志愿者运营,尽力提供服务,不保证服务等级。请重试。
评论
支持 Markdown