volleyball-data

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Volleyball Data (Nevobo — Dutch Volleyball)

排球数据(Nevobo — 荷兰排球)

Before writing queries, consult
references/api-reference.md
for endpoints, ID conventions, and data shapes.
在编写查询之前,请查阅
references/api-reference.md
了解端点、ID规范和数据结构。

Setup

安装配置

Before first use, check if the CLI is available:
bash
which sports-skills || pip install sports-skills
If
pip install
fails (package not found or Python version error), install from GitHub:
bash
pip install git+https://github.com/machina-sports/sports-skills.git
The package requires Python 3.10+. If your default Python is older, use a specific version:
bash
python3 --version  # check version
首次使用前,检查CLI是否可用:
bash
which sports-skills || pip install sports-skills
如果
pip install
失败(找不到包或Python版本错误),请从GitHub安装:
bash
pip install git+https://github.com/machina-sports/sports-skills.git
该包要求Python 3.10及以上版本。如果默认Python版本较低,请使用指定版本:
bash
python3 --version  # 检查版本

If < 3.10, try: python3.12 -m pip install sports-skills

如果版本 < 3.10,尝试:python3.12 -m pip install sports-skills

On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills

在使用Homebrew的macOS系统上:/opt/homebrew/bin/python3.12 -m pip install sports-skills

No API keys required. All data comes from the Nevobo (Nederlandse Volleybalbond) open API.
无需API密钥,所有数据均来自Nevobo(荷兰排球协会)的公开API。

Quick Start

快速开始

Prefer the CLI — it avoids Python import path issues:
bash
sports-skills volleyball get_competitions
sports-skills volleyball get_standings --competition_id=nevobo-eredivisie-heren
sports-skills volleyball get_results --competition_id=nevobo-eredivisie-dames
sports-skills volleyball get_schedule --competition_id=nevobo-topdivisie-heren-a
Python SDK (alternative):
python
from sports_skills import volleyball

standings = volleyball.get_standings(competition_id="nevobo-eredivisie-heren")
results = volleyball.get_results(competition_id="nevobo-eredivisie-dames")
推荐使用CLI,可避免Python导入路径问题:
bash
sports-skills volleyball get_competitions
sports-skills volleyball get_standings --competition_id=nevobo-eredivisie-heren
sports-skills volleyball get_results --competition_id=nevobo-eredivisie-dames
sports-skills volleyball get_schedule --competition_id=nevobo-topdivisie-heren-a
Python SDK(替代方案):
python
from sports_skills import volleyball

standings = volleyball.get_standings(competition_id="nevobo-eredivisie-heren")
results = volleyball.get_results(competition_id="nevobo-eredivisie-dames")

CRITICAL: Before Any Query

重要提示:查询前须知

CRITICAL: Before calling any data endpoint, verify:
  • The
    competition_id
    uses a valid value from
    references/competition-ids.md
    — never guess.
  • For club-specific commands, you have a valid Nevobo
    club_id
    (use
    get_clubs
    to find one — the
    organisatiecode
    field).
  • Do NOT guess club IDs or competition IDs. Use
    get_competitions
    or
    get_clubs
    to discover them.
重要提示:调用任何数据端点前,请确认:
  • competition_id
    使用
    references/competition-ids.md
    中的有效值——绝对不要猜测。
  • 对于俱乐部特定命令,你拥有有效的Nevobo
    club_id
    (使用
    get_clubs
    查找——对应
    organisatiecode
    字段)。
  • 请勿猜测俱乐部ID或赛事ID,请使用
    get_competitions
    get_clubs
    来获取。

The
competition_id
Parameter

competition_id
参数说明

8 leagues across the top 3 tiers of Dutch volleyball are pre-configured. The
competition_id
follows the pattern
nevobo-<league>-<gender>[-<pool>]
:
  • Eredivisie (Tier 1, 8 teams):
    nevobo-eredivisie-heren
    ,
    nevobo-eredivisie-dames
  • Topdivisie (Tier 2, 10 teams/pool):
    nevobo-topdivisie-heren-a
    ,
    nevobo-topdivisie-heren-b
    ,
    nevobo-topdivisie-dames-a
    ,
    nevobo-topdivisie-dames-b
  • Superdivisie (Tier 3, 10 teams):
    nevobo-superdivisie-heren
    ,
    nevobo-superdivisie-dames
For lower divisions (1e/2e/3e Divisie, regional, youth, beach — 6,400+ poules), use
get_poules
to discover them.
See
references/competition-ids.md
for the full reference with team counts and the Dutch volleyball pyramid.
荷兰排球前三层级的8个联赛已预先配置。
competition_id
遵循
nevobo-<联赛名称>-<性别>[-<分组>]
的格式:
  • Eredivisie(第1层级,8支球队):
    nevobo-eredivisie-heren
    nevobo-eredivisie-dames
  • Topdivisie(第2层级,每组10支球队):
    nevobo-topdivisie-heren-a
    nevobo-topdivisie-heren-b
    nevobo-topdivisie-dames-a
    nevobo-topdivisie-dames-b
  • Superdivisie(第3层级,10支球队):
    nevobo-superdivisie-heren
    nevobo-superdivisie-dames
对于更低层级的联赛(1e/2e/3e Divisie、地区联赛、青年联赛、沙滩排球——超过6400个分组),请使用
get_poules
来查找。
请查阅
references/competition-ids.md
获取包含球队数量和荷兰排球联赛体系的完整参考信息。

Commands

命令列表

CommandDescription
get_competitions
List all available competitions and leagues
get_standings
League table (rank, team, matches, points)
get_schedule
Upcoming matches (teams, venue, date)
get_results
Match results (score, set-by-set scores)
get_clubs
List volleyball clubs (name, city, province)
get_club_schedule
Club's upcoming matches across all teams
get_club_results
Club's results across all teams
get_poules
Browse Nevobo poules (for lower divisions discovery)
get_tournaments
Tournament calendar
get_news
Federation news
See
references/api-reference.md
for full parameter lists and return shapes.
命令描述
get_competitions
列出所有可用的赛事和联赛
get_standings
联赛排名表(排名、球队、比赛场次、积分)
get_schedule
即将到来的比赛(球队、场地、日期)
get_results
比赛结果(比分、局分)
get_clubs
列出排球俱乐部(名称、城市、省份)
get_club_schedule
俱乐部所有球队的即将到来的比赛
get_club_results
俱乐部所有球队的比赛结果
get_poules
浏览Nevobo的分组(用于查找低层级联赛)
get_tournaments
赛事日历
get_news
协会新闻
请查阅
references/api-reference.md
获取完整的参数列表和返回数据结构。

Examples

使用示例

Example 1: Eredivisie standings User says: "What are the current Dutch volleyball standings?" Actions:
  1. Call
    get_standings(competition_id="nevobo-eredivisie-heren")
    for men
  2. Call
    get_standings(competition_id="nevobo-eredivisie-dames")
    for women Result: League tables with rank, team name, matches played, and points
Example 2: Recent match results User says: "Show me recent Eredivisie volleyball results" Actions:
  1. Call
    get_results(competition_id="nevobo-eredivisie-heren")
    Result: Match results with home/away teams, match score (e.g. "3-1"), and set scores (e.g. ["25-21", "25-18", "21-25", "25-20"])
Example 3: Club schedule User says: "What matches does LSV have coming up?" Actions:
  1. Call
    get_clubs(limit=10)
    and find LSV's organisatiecode (CKL5C67)
  2. Call
    get_club_schedule(club_id="CKL5C67")
    Result: Upcoming matches for all of LSV's teams with venues and dates
Example 4: Second tier standings User says: "Show me the Topdivisie standings" Actions:
  1. Call
    get_standings(competition_id="nevobo-topdivisie-heren-a")
    for men pool A
  2. Call
    get_standings(competition_id="nevobo-topdivisie-heren-b")
    for men pool B Result: Two pool tables with 10 teams each
Example 5: Discover lower divisions User says: "What divisions are available in Dutch volleyball?" Actions:
  1. Call
    get_poules(regio="nationale-competitie", limit=20)
    Result: List of national-level poules including 1e/2e/3e Divisie with their abbreviations and descriptions
示例1:Eredivisie排名 用户提问:“当前荷兰排球的排名情况如何?” 操作步骤:
  1. 调用
    get_standings(competition_id="nevobo-eredivisie-heren")
    获取男子组排名
  2. 调用
    get_standings(competition_id="nevobo-eredivisie-dames")
    获取女子组排名 结果:包含排名、球队名称、已赛场次和积分的联赛排名表
示例2:近期比赛结果 用户提问:“展示最近的Eredivisie排球比赛结果” 操作步骤:
  1. 调用
    get_results(competition_id="nevobo-eredivisie-heren")
    结果:包含主客场球队、比赛比分(如“3-1”)和局分(如["25-21", "25-18", "21-25", "25-20"])的比赛结果
示例3:俱乐部赛程 用户提问:“LSV接下来有哪些比赛?” 操作步骤:
  1. 调用
    get_clubs(limit=10)
    并找到LSV的organisatiecode(CKL5C67)
  2. 调用
    get_club_schedule(club_id="CKL5C67")
    结果:LSV所有球队的即将到来的比赛,包含场地和日期信息
示例4:第二层级联赛排名 用户提问:“展示Topdivisie的排名情况” 操作步骤:
  1. 调用
    get_standings(competition_id="nevobo-topdivisie-heren-a")
    获取男子A组排名
  2. 调用
    get_standings(competition_id="nevobo-topdivisie-heren-b")
    获取男子B组排名 结果:两个各包含10支球队的分组排名表
示例5:查找低层级联赛 用户提问:“荷兰排球有哪些低层级联赛?” 操作步骤:
  1. 调用
    get_poules(regio="nationale-competitie", limit=20)
    结果:包含1e/2e/3e Divisie在内的全国性分组列表,及其缩写和描述

Commands that DO NOT exist — never call these

不存在的命令——请勿调用

  • get_scoreboard
    — does not exist. Use
    get_results
    for recent match results.
  • get_rankings
    — does not exist. Volleyball uses
    get_standings
    for league tables.
  • get_team_roster
    — does not exist. Use
    get_clubs
    for club information.
  • get_player_info
    — does not exist. Player-level data is not available via this API.
If a command is not listed in the Commands table above, it does not exist.
  • get_scoreboard
    —— 不存在。如需近期比赛结果,请使用
    get_results
  • get_rankings
    —— 不存在。排球赛事使用
    get_standings
    获取联赛排名表。
  • get_team_roster
    —— 不存在。如需俱乐部信息,请使用
    get_clubs
  • get_player_info
    —— 不存在。该API不提供球员级别的数据。
如果某个命令未在上述命令列表中列出,则表示该命令不存在。

Error Handling

错误处理

When a command fails, do not surface raw errors to the user. Instead:
  1. Catch silently and try alternatives
  2. If a club name is given instead of ID, use
    get_clubs
    to find the
    organisatiecode
    first
  3. If a competition_id returns no data, use
    get_competitions
    to verify available leagues
  4. Only report failure with a clean message after exhausting alternatives
当命令执行失败时,请勿向用户展示原始错误信息。请按以下步骤处理:
  1. 静默捕获错误并尝试替代方案
  2. 如果用户提供的是俱乐部名称而非ID,请先使用
    get_clubs
    查找对应的
    organisatiecode
  3. 如果
    competition_id
    返回无数据,请使用
    get_competitions
    验证可用的联赛
  4. 仅在尝试所有替代方案后,向用户展示清晰的失败提示

Troubleshooting

故障排除

Error:
sports-skills
command not found Cause: Package not installed Solution: Run
pip install sports-skills
. If not on PyPI, install from GitHub:
pip install git+https://github.com/machina-sports/sports-skills.git
Error: Standings returns empty list Cause: The competition's regular season phase may have ended, or the season hasn't started yet Solution: Use
get_results
to check recent results, or
get_poules
to discover current active poule paths
Error: Schedule returns 0 matches Cause: The competition phase has completed and no more matches are scheduled for that poule Solution: This is expected between season phases. Check other leagues (Topdivisie/Superdivisie may still be active)
Error: Club schedule/results returns error Cause: The club_id may be incorrect Solution: Use
get_clubs
to find valid club IDs (the
organisatiecode
field, e.g. "CKL5C67")
Error: Connection errors or timeouts Cause: The Nevobo API may be temporarily unavailable Solution: Wait a moment and retry. The API is public and unauthenticated but may have brief outages
错误:
sports-skills
命令未找到 原因:未安装该包 解决方案:运行
pip install sports-skills
。如果PyPI上没有该包,请从GitHub安装:
pip install git+https://github.com/machina-sports/sports-skills.git
错误:排名返回空列表 原因:该赛事的常规赛阶段可能已结束,或赛季尚未开始 解决方案:使用
get_results
查看近期比赛结果,或使用
get_poules
查找当前活跃的分组路径
错误:赛程返回0场比赛 原因:该分组的赛事阶段已结束,没有更多安排好的比赛 解决方案:这是赛季间隙的正常情况。可以查看其他联赛(Topdivisie/Superdivisie可能仍在进行中)
错误:俱乐部赛程/结果返回错误 原因:
club_id
可能不正确 解决方案:使用
get_clubs
查找有效的俱乐部ID(对应
organisatiecode
字段,例如"CKL5C67")
错误:连接错误或超时 原因:Nevobo API可能暂时不可用 解决方案:稍等片刻后重试。该API是公开且无需认证的,但可能会出现短暂的中断