Metadata

machina-sports/sports-skills/skills/metadata

作者 machina-sports09eb7e8566f4MIT242 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 天前更新

Sports metadata via TheSportsDB free API (key=3). Team logos and badges, player photos, stadium info, league info, and biographical data across 100+ leagues. No API key required, zero config. Use when: user asks for a team logo, crest, badge, banner, jersey, kit, player photo or headshot, stadium info, club description, or wants to search for teams or players by name across sports. Good for enriching responses from other skills with images and visual identifiers. Don't use when: user asks for scores, standings, fixtures, stats, or odds — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), fastf1 (F1), volleyball-data (Dutch volleyball), xctf-data (NCAA XC/TF). Don't use for prediction markets — use polymarket or kalshi.

AI 產生的概覽

透過 TheSportsDB 查詢球隊隊徽、球員照片、球場與俱樂部資訊,並支援球隊與球員名稱搜尋。

功能
包裝 TheSportsDB 免費 API,回傳球隊隊徽與徽章連結、球員照片連結,以及球場、簡介、成立年份和社群連結等完整球隊資訊。也提供跨多種運動項目的球隊與球員名稱模糊搜尋。結果以連結和中介資料欄位形式回傳,供其他回覆使用。
適用情境
當請求需要球隊隊徽、徽章、橫幅、球衣、球員大頭照、球場或俱樂部簡介時使用,也用於跨運動項目解析球隊或球員名稱。它還用於為其他體育技能輸出的戰績表或個人資料補充圖片和識別資訊。
執行需求
需要連線至 TheSportsDB 的網路存取;不需要 API 金鑰或註冊。此技能不含指令碼,僅為說明文件,但其中記錄了命令列與 Python SDK 介面。免費 API 金鑰限制為每分鐘約 30 次請求。

Sports Metadata

Wraps the free TheSportsDB API for team logos, player photos, and stadium info. No API key, no signup.

Quick Start

bash
sports-skills metadata get_team_logo --team_name="Arsenal"sports-skills metadata get_team_info --team_name="Real Madrid"sports-skills metadata get_player_photo --player_name="Messi"sports-skills metadata search_teams --query="Manchester"sports-skills metadata search_players --query="LeBron"

Python SDK:

python
from sports_skills import metadata
metadata.get_team_logo(team_name="Arsenal")metadata.get_team_info(team_name="Real Madrid")metadata.get_player_photo(player_name="Messi")metadata.search_teams(query="Manchester")metadata.search_players(query="LeBron")

CRITICAL: Before Any Query

CRITICAL: Before calling any metadata command, verify:

  • Team names use the full official name — especially for NBA (e.g., "Los Angeles Lakers", not "Lakers").
  • For get_team_logo, the sport parameter defaults to "Soccer". Pass sport="Basketball", "American Football", "Baseball", "Ice Hockey", "Motorsport", or "Cricket" when the team is not a soccer team — otherwise the lookup falls back to a close name match in any sport. If no result is close to the requested name, it returns an error listing what TheSportsDB offered.
  • Player searches use just the player name (e.g., "Messi", "LeBron James", "Tiger Woods").

Coverage

Teams (logos, banners, stadium info):

  • Soccer: 100+ leagues worldwide (Premier League, La Liga, Bundesliga, Serie A, MLS, and many more)
  • NFL (American Football)
  • NBA (Basketball) — requires full team names
  • MLB (Baseball)
  • NHL (Ice Hockey)
  • F1 (Motorsport)
  • Cricket (IPL, international)

Players (photos, bios):

  • All team sports above
  • Tennis (ATP/WTA players)
  • Golf (PGA/LPGA players)

Not covered: MMA/UFC, Rugby, Esports, Boxing.

Commands

CommandRequiredOptionalDescription
get_team_logoteam_namesportTeam logo / badge URL
get_team_infoteam_nameFull team info: stadium, description, social links, banner
get_player_photoplayer_namePlayer photo URL
search_teamsqueryFuzzy search for teams across sports
search_playersqueryFuzzy search for players across sports

Workflows

Enrich a Standings Response

  1. Call the sport-specific skill (e.g., football get_season_standings) for the standings table.
  2. For each team in the standings, call get_team_logo --team_name=<name> to attach a badge URL.
  3. Render the standings with logos alongside team names.

Build a Team Profile Page

  1. Call get_team_info --team_name="<name>" for stadium, description, founding year, social links.
  2. The same response includes badge and banner URLs — no second call needed.

Resolve an Ambiguous Team Name

  1. Call search_teams --query="<partial-name>" to disambiguate.
  2. Use the exact name field from the result for follow-up get_team_info calls.

Examples

Example 1: Get a Premier League team logo User says: "What does the Arsenal logo look like?" Actions:

  1. Call get_team_logo(team_name="Arsenal") — sport defaults to "Soccer", which is correct here. Result: Logo URL, sport, league, and country.

Example 2: NBA team — full name required User says: "Get the Lakers logo" Actions:

  1. Call get_team_logo(team_name="Los Angeles Lakers", sport="Basketball") — both the full name AND the sport filter are needed. Result: Lakers badge from the NBA branch of TheSportsDB.

Example 3: Player photo User says: "Show me a photo of Messi" Actions:

  1. Call get_player_photo(player_name="Messi"). Result: Player photo URL, sport, team, and nationality.

Example 4: Disambiguate "Manchester" User says: "Find me Manchester teams" Actions:

  1. Call search_teams(query="Manchester"). Result: List of teams matching "Manchester" — Manchester United, Manchester City, etc. — each with sport, league, and country.

Commands that DO NOT exist — never call these

  • get_stadium_info — does not exist. Stadium info is included in get_team_info.
  • get_league_logo — does not exist. Use get_team_logo for team badges only.
  • get_player_stats — does not exist on this skill. TheSportsDB metadata does not include stats; use the sport-specific skill (e.g., football get_player_profile, nba get_player_stats).
  • search_leagues — does not exist.

If a command is not listed in the Commands table above, it does not exist.

Troubleshooting

Error: get_team_logo returns the wrong team Cause: A short or ambiguous team name (e.g., "Lakers", "Arsenal") matched a different sport first Solution: Pass an explicit sport parameter and use the team's full official name

Error: get_team_logo / get_team_info say "No team named ... found" Cause: TheSportsDB's free search returned only teams whose names are not close to the query (e.g. "St. Louis Cardinals" -> "Louisville") Solution: Use the team's full official name, or search_teams --query=<partial> to find it

Error: get_player_photo returns null / empty Cause: Player not in TheSportsDB, or the name spelling differs (e.g., "Cristiano Ronaldo" vs "Ronaldo") Solution: Use search_players --query=<partial> first to find the canonical spelling, then retry

Error: Logo URL works but the image is low resolution Cause: TheSportsDB returns the badge as-is from contributors Solution: This is an upstream limitation. Most badges are 200×200 or larger; very small icons indicate a low-quality submission. No workaround.

Error: "TheSportsDB rate limit: the free API key allows 30 requests per minute" (status_code: 429) Cause: The free key answers HTTP 429 from the 31st request in a minute, then locks out for about 2 minutes. The client paces itself below that (bursts of 5, then about one request every 2.4 s), so this error means a long batch outran the pacing or another process shares the key Solution: Wait for the time in the message, then retry. Repeated lookups are cached for 5 minutes, so reuse earlier results rather than re-querying in a loop

來源與署名

來源:machina-sports/sports-skills位於skills/metadata提交09eb7e8

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架

更多來自 machina-sports/sports-skills 的技能

World Cup

machina-sports

Premium FIFA World Cup 2026 market & match intelligence — a hosted, read-only layer that fuses official match truth (fixtures, standings, squads, injuries, player performance) with live prediction markets (Kalshi + Polymarket: prices, order books, price history, movers, cross-venue edges) and AI-grounded context (prematch briefs, move explanations, fan/social pulse). Every entity carries a canonical machina URN cross-walked across api-football, sportradar, opta, entain and ESPN, so a market resolves to a fixture resolves to two teams. This skill is prompt-only and premium: it routes the agent to the hosted World Cup Intelligence project (a per-project Machina MCP server) via `machina-cli`. It runs no code locally and ships no API keys. Use when: the user wants World Cup 2026 odds + match context together, asks "what moved and why", wants a grounded market brief or fan-sentiment read on a fixture, or needs one stable id that joins markets ↔ fixtures ↔ teams across providers. Don't use when: the user wants fr

待分類2423 天前更新

Xctf Data

machina-sports

從 TFRRS 擷取 NCAA 越野賽與田徑運動員資料,並從 The Stride Report 取得新聞。

包含腳本
Data & Analytics2423 天前更新

Sports Reporter

machina-sports

透過 sports-skills 命令列工具取得即時資料,產生原創體育新聞文章。

包含腳本
Writing & Content2423 天前更新

Volleyball Data

machina-sports

透過 Nevobo API 取得荷蘭排球資料:積分榜、賽程、賽果、俱樂部、賽事與新聞。

Data & Analytics2423 天前更新

Polymarket

machina-sports

以唯讀方式存取 Polymarket 運動預測市場:賠率、價格、委託簿、賽事與市場搜尋。

包含腳本
Business & Finance2423 天前更新

Markets

machina-sports

Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value. Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill.

待分類2423 天前更新