tl-live-music-data
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<!-- Copyright (c) 2026 Todd Levy. Licensed under MIT. SPDX-License-Identifier: MIT -->
<!-- Copyright (c) 2026 Todd Levy. Licensed under MIT. SPDX-License-Identifier: MIT -->
Live Music Data APIs
现场音乐数据API
Reference documentation for live music data APIs and how they connect via external IDs. Covers artist metadata, concert events, setlists, and images across multiple providers.
现场音乐数据API及其通过外部ID关联方式的参考文档,涵盖多家提供商的艺人元数据、演唱会活动、演出曲目单和图片内容。
When to Use
使用场景
- "How do I get concert data for an artist?"
- "Which API should I use for setlists?"
- "How do I resolve artist IDs across platforms?"
- Building applications that need artist metadata, concert events, or setlists
- Resolving artist identities across multiple platforms
- Integrating live music data APIs
- "如何获取某艺人的演唱会数据?"
- "哪个API适合获取演出曲目单?"
- "如何跨平台解析艺人ID?"
- 构建需要艺人元数据、演唱会活动或演出曲目单的应用
- 跨平台解析艺人身份
- 集成现场音乐数据API
Outcomes
预期成果
- Analysis: API selection based on data requirements
- Reference: Endpoint documentation, auth patterns, rate limits
- Decision: ID resolution strategy (MBID hub vs name search)
- 分析:根据数据需求选择合适的API
- 参考:端点文档、认证模式、速率限制
- 决策:ID解析策略(MBID中心 vs 名称搜索)
API Quick Reference
API快速参考
Tier 1: Core APIs (High Value, Easy Access)
第一层级:核心API(高价值、易访问)
| API | Auth | Rate Limit | Primary Use | Reference |
|---|---|---|---|---|
| MusicBrainz | User-Agent | 1 req/sec | ID hub, external IDs, releases | musicbrainz.md |
| Setlist.fm | API key | Undocumented | Setlists, song data | setlistfm.md |
| Wikidata | None | Reasonable | Cross-references, SPARQL | wikidata.md |
| Discogs | User-Agent | 60/min auth | Discography, releases | discogs.md |
| nugs.net | None | ~2/sec | Live recordings catalog | nugs.md |
| API | 认证方式 | 速率限制 | 主要用途 | 参考文档 |
|---|---|---|---|---|
| MusicBrainz | User-Agent | 1 req/sec | ID中心、external IDs、releases | musicbrainz.md |
| Setlist.fm | API key | 未公开 | 演出曲目单、歌曲数据 | setlistfm.md |
| Wikidata | 无 | 合理限制 | 跨平台参考、SPARQL | wikidata.md |
| Discogs | User-Agent | 60次/分钟(认证后) | 音乐作品目录、releases | discogs.md |
| nugs.net | 无 | ~2次/秒 | 现场录音目录 | nugs.md |
Tier 2: Events and Concerts
第二层级:活动与演唱会
| API | Auth | Rate Limit | Primary Use | Reference |
|---|---|---|---|---|
| JamBase | API key | 3,600/hour | Most comprehensive events | jambase.md |
| Songkick | API key | Undocumented | Gigography (KEYS SUSPENDED) | songkick.md |
| Bandsintown | App ID | Undocumented | Artist events, tour dates | bandsintown.md |
| Ticketmaster | API key | 5,000/day | Events, venues, tickets | ticketmaster.md |
| API | 认证方式 | 速率限制 | 主要用途 | 参考文档 |
|---|---|---|---|---|
| JamBase | API key | 3,600次/小时 | 最全面的活动数据 | jambase.md |
| Songkick | API key | 未公开 | 演出履历(密钥已暂停) | songkick.md |
| Bandsintown | App ID | 未公开 | 艺人活动、巡演日期 | bandsintown.md |
| Ticketmaster | API key | 5,000次/天 | 活动、场馆、票务 | ticketmaster.md |
Tier 3: Supplementary Data
第三层级:补充数据
| API | Auth | Rate Limit | Primary Use | Reference |
|---|---|---|---|---|
| Last.fm | API key | Soft limit | Similar artists, tags | lastfm.md |
| Fanart.tv | API key | Undocumented | High-res artwork (needs MBID) | fanarttv.md |
| TheAudioDB | API key | 2/sec free | Metadata, images | theaudiodb.md |
| Genius | OAuth 2.0 | Undocumented | Song annotations (no lyrics) | genius.md |
| API | 认证方式 | 速率限制 | 主要用途 | 参考文档 |
|---|---|---|---|---|
| Last.fm | API key | 软限制 | 相似艺人、标签 | lastfm.md |
| Fanart.tv | API key | 未公开 | 高清作品封面(需MBID) | fanarttv.md |
| TheAudioDB | API key | 2次/秒(免费版) | 元数据、图片 | theaudiodb.md |
| Genius | OAuth 2.0 | 未公开 | 歌曲注释(无歌词) | genius.md |
Tier 4: Avoid / Difficult Access
第四层级:需避免/访问困难
| API | Issue |
|---|---|
| AllMusic | No public API - scraping only |
| IMDB | AWS Data Exchange subscription required |
| Spotify | Requires app review for production |
| API | 问题 |
|---|---|
| AllMusic | 无公开API - 仅支持网页抓取 |
| IMDB | 需要AWS Data Exchange订阅 |
| Spotify | 生产环境需通过应用审核 |
Web Scraping Fallback
网页抓取备选方案
When APIs are unavailable (Tier 4) or rate-limited, use web scraping as a fallback. Workflow escalation: search → scrape → crawl.
bash
undefined当API不可用(第四层级)或受速率限制时,可使用网页抓取作为备选方案。工作流优先级:搜索 → 抓取 → 爬取。
bash
undefinedScrape a single artist page to markdown
Scrape a single artist page to markdown
firecrawl scrape "https://www.allmusic.com/artist/mn0000004789" --only-main-content -o .firecrawl/artist.md
firecrawl scrape "https://www.allmusic.com/artist/mn0000004789" --only-main-content -o .firecrawl/artist.md
Wait for JS rendering (SPA sites)
Wait for JS rendering (SPA sites)
firecrawl scrape "<url>" --wait-for 3000 -o .firecrawl/page.md
firecrawl scrape "<url>" --wait-for 3000 -o .firecrawl/page.md
Extract structured data with a query
Extract structured data with a query
firecrawl scrape "https://example.com/artist" --query "What are the upcoming tour dates?"
**Best practices for music data scraping**:
- Respect `robots.txt` and rate limit aggressively (1-2 req/sec)
- Cache scraped content for 7+ days
- Prefer APIs when available - scraping breaks when sites change
- Use `--only-main-content` to skip navigation/ads
See [firecrawl/cli skills](https://skills.sh/firecrawl/cli) for comprehensive scraping patterns.
---firecrawl scrape "https://example.com/artist" --query "What are the upcoming tour dates?"
**音乐数据抓取最佳实践**:
- 遵守`robots.txt`并严格控制速率(1-2 请求/秒)
- 缓存抓取内容7天以上
- 优先使用API - 网站变更会导致抓取失效
- 使用`--only-main-content`参数跳过导航栏/广告
查看[firecrawl/cli技能](https://skills.sh/firecrawl/cli)获取完整的抓取模式。
---ID Mapping Architecture
ID映射架构
MusicBrainz serves as the central ID hub. Most services either accept MBID directly or can be resolved via MusicBrainz url-rels.
mermaid
flowchart LR
subgraph hub [ID Hub]
MB[MusicBrainz<br/>MBID]
end
subgraph direct [Accept MBID]
Setlist[Setlist.fm]
Fanart[Fanart.tv]
Lastfm[Last.fm]
end
subgraph multi [Multi-ID Lookup]
JamBase[JamBase<br/>12 ID sources]
end
subgraph linked [Via url-rels]
Discogs[Discogs]
Wikidata[Wikidata]
Spotify[Spotify]
end
subgraph name [Name Search Only]
Bandsintown[Bandsintown]
TM[Ticketmaster]
Genius[Genius]
end
MB -->|MBID| direct
MB -->|MBID or external ID| multi
MB -->|url-rels lookup| linked
MB -.->|artist name| nameMusicBrainz作为核心ID中心,大多数服务要么直接支持MBID,要么可通过MusicBrainz的url-rels进行解析。
mermaid
flowchart LR
subgraph hub [ID Hub]
MB[MusicBrainz<br/>MBID]
end
subgraph direct [Accept MBID]
Setlist[Setlist.fm]
Fanart[Fanart.tv]
Lastfm[Last.fm]
end
subgraph multi [Multi-ID Lookup]
JamBase[JamBase<br/>12 ID sources]
end
subgraph linked [Via url-rels]
Discogs[Discogs]
Wikidata[Wikidata]
Spotify[Spotify]
end
subgraph name [Name Search Only]
Bandsintown[Bandsintown]
TM[Ticketmaster]
Genius[Genius]
end
MB -->|MBID| direct
MB -->|MBID or external ID| multi
MB -->|url-rels lookup| linked
MB -.->|artist name| nameServices That Accept MBID Directly
直接支持MBID的服务
| Service | Endpoint Pattern |
|---|---|
| Setlist.fm | |
| Fanart.tv | |
| Last.fm | |
| JamBase | |
| TheAudioDB | |
| 服务 | 端点格式 |
|---|---|
| Setlist.fm | |
| Fanart.tv | |
| Last.fm | |
| JamBase | |
| TheAudioDB | |
Services Requiring url-rels Lookup
需要通过url-rels查询的服务
Get external IDs from MusicBrainz first:
GET /ws/2/artist/{mbid}?inc=url-rels&fmt=jsonReturns IDs for: spotify, discogs, wikidata, allmusic, lastfm, imdb, bandcamp, soundcloud, youtube
先从MusicBrainz获取外部ID:
GET /ws/2/artist/{mbid}?inc=url-rels&fmt=json返回以下平台的ID:spotify、discogs、wikidata、allmusic、lastfm、imdb、bandcamp、soundcloud、youtube
JamBase Multi-ID Support
JamBase多ID支持
JamBase accepts 12 different ID sources:
/artists/id/{source}:{id}
Sources: jambase, musicbrainz, spotify, ticketmaster, seatgeek,
eventbrite, axs, dice, etix, seated, viagogo, eventim-deJamBase支持12种不同的ID来源:
/artists/id/{source}:{id}
来源: jambase, musicbrainz, spotify, ticketmaster, seatgeek,
eventbrite, axs, dice, etix, seated, viagogo, eventim-deEnvironment Variables
环境变量
bash
undefinedbash
undefinedTier 1
Tier 1
MUSICBRAINZ_USER_AGENT="AppName/1.0 (contact@example.com)"
SETLISTFM_API_KEY=""
DISCOGS_TOKEN=""
MUSICBRAINZ_USER_AGENT="AppName/1.0 (contact@example.com)"
SETLISTFM_API_KEY=""
DISCOGS_TOKEN=""
Tier 2
Tier 2
JAMBASE_API_KEY=""
SONGKICK_API_KEY=""
BANDSINTOWN_APP_ID=""
TICKETMASTER_API_KEY=""
JAMBASE_API_KEY=""
SONGKICK_API_KEY=""
BANDSINTOWN_APP_ID=""
TICKETMASTER_API_KEY=""
Tier 3
Tier 3
LASTFM_API_KEY=""
FANARTTV_API_KEY=""
THEAUDIODB_API_KEY=""
GENIUS_ACCESS_TOKEN=""
---LASTFM_API_KEY=""
FANARTTV_API_KEY=""
THEAUDIODB_API_KEY=""
GENIUS_ACCESS_TOKEN=""
---API Selection Guide
API选择指南
| Need | Recommended API |
|---|---|
| Artist identity resolution | MusicBrainz (as hub) |
| Live events/concerts | JamBase (most comprehensive) |
| Historical setlists | Setlist.fm |
| Artist images | Fanart.tv (if have MBID) or TheAudioDB |
| Similar artists | Last.fm |
| Discography | Discogs |
| Song metadata | Genius |
| Live recordings | nugs.net |
| 需求 | 推荐API |
|---|---|
| 艺人身份解析 | MusicBrainz(作为中心) |
| 现场活动/演唱会 | JamBase(最全面) |
| 历史演出曲目单 | Setlist.fm |
| 艺人图片 | Fanart.tv(需MBID)或TheAudioDB |
| 相似艺人 | Last.fm |
| 音乐作品目录 | Discogs |
| 歌曲元数据 | Genius |
| 现场录音 | nugs.net |
ID Resolution Strategy
ID解析策略
Starting with Artist Name
从艺人名称开始
- Search MusicBrainz for MBID
- Use MBID to get external IDs via url-rels
- Use external IDs with other services
- 在MusicBrainz中搜索获取MBID
- 使用MBID通过url-rels获取外部ID
- 将外部ID用于其他服务
Starting with Existing ID (Spotify, etc.)
从已有ID(如Spotify)开始
- Use JamBase for direct lookup
/artists/id/{source}:{id} - Or lookup in Wikidata via property (P1902 for Spotify)
- Resolve to MBID for other services
- 使用JamBase 直接查询
/artists/id/{source}:{id} - 或通过属性在Wikidata中查询(Spotify对应P1902)
- 解析为MBID以用于其他服务
Rate Limit Summary
速率限制汇总
| API | Strategy |
|---|---|
| MusicBrainz | |
| Discogs | Monitor |
| JamBase | 3,600/hour = ~1/sec sustained |
| Ticketmaster | 5,000/day = throttle during batch |
| TheAudioDB | |
| API | 策略 |
|---|---|
| MusicBrainz | |
| Discogs | 监控 |
| JamBase | 3,600次/小时 = 约1次/秒持续请求 |
| Ticketmaster | 5,000次/天 = 批量处理时需限流 |
| TheAudioDB | |
OAuth 2.0 Patterns
OAuth 2.0模式
See OAuth 2.0 Patterns for the full Spotify Authorization Code + PKCE flow, the token refresh pattern, and recommended scopes per provider.
查看OAuth 2.0模式获取完整的Spotify授权码+PKCE流程、令牌刷新模式及各提供商推荐的权限范围。
Pagination Patterns
分页模式
See Pagination Patterns for cursor-based vs offset-based async iterators and the per-API pagination parameter table.
查看分页模式了解基于游标与基于偏移量的异步迭代器,以及各API的分页参数表。
Error Handling Matrix
错误处理矩阵
See Error Handling for the full retry strategy table by HTTP code, theimplementation, and API-specific error code interpretations.fetchWithRetry
查看错误处理获取按HTTP状态码分类的完整重试策略表、实现及API特定错误码的解释。fetchWithRetry
Caching Recommendations
缓存建议
| Data Type | TTL |
|---|---|
| Artist metadata | 7 days |
| Event listings | 1-4 hours |
| Setlists | 7-30 days |
| Images/artwork | 30+ days |
| External IDs | 30+ days |
| 数据类型 | 缓存有效期 |
|---|---|
| 艺人元数据 | 7天 |
| 活动列表 | 1-4小时 |
| 演出曲目单 | 7-30天 |
| 图片/作品封面 | 30天以上 |
| 外部ID | 30天以上 |
Local Data Architecture
本地数据架构
See Local Data Architecture for replica decision criteria, the external-ID-mapping schema (entities, entity_source_ids, sync_state), incremental sync patterns with overlap windows, ID resolution flow, the enrichment pipeline, and deletion/merge handling.
查看本地数据架构了解副本决策标准、外部ID映射 schema(entities、entity_source_ids、sync_state)、带重叠窗口的增量同步模式、ID解析流程、数据增强流水线及删除/合并处理方式。
Detailed Reference Files
详细参考文件
Each API has comprehensive documentation in the folder:
references/- musicbrainz.md - ID hub, url-rels, search, rate limiting
- setlistfm.md - Setlist search, MBID integration, response schemas
- jambase.md - Multi-ID lookup, geo search, event filters
- discogs.md - Discography, releases, rate headers
- wikidata.md - SPARQL queries, property codes
- nugs.md - Undocumented API, catalog methods
- bandsintown.md - Artist events, date filters
- ticketmaster.md - Events, attractions, venues
- songkick.md - Gigography, calendar (keys suspended)
- lastfm.md - Similar artists, tags, scrobbles
- fanarttv.md - High-res images via MBID
- theaudiodb.md - Metadata, images, free vs premium
- genius.md - Annotations, OAuth, no lyrics via API
每个API在文件夹中都有完整文档:
references/- musicbrainz.md - ID中心、url-rels、搜索、速率限制
- setlistfm.md - 曲目单搜索、MBID集成、响应schema
- jambase.md - 多ID查询、地理搜索、活动筛选
- discogs.md - 音乐作品目录、发行内容、速率响应头
- wikidata.md - SPARQL查询、属性代码
- nugs.md - 未公开API、目录方法
- bandsintown.md - 艺人活动、日期筛选
- ticketmaster.md - 活动、演出方、场馆
- songkick.md - 演出履历、日历(密钥已暂停)
- lastfm.md - 相似艺人、标签、播放记录
- fanarttv.md - 通过MBID获取高清图片
- theaudiodb.md - 元数据、图片、免费版 vs 付费版
- genius.md - 注释、OAuth、API不提供歌词
Skill Maintenance
技能维护
Keeping References Current
保持参考文档更新
Each reference file includes a "Keeping Current" section with:
- Authoritative docs - Official documentation links
- Version detection - How to check for API changes
- Test endpoint - Quick verification command
- Last verified - When this reference was last validated
每个参考文件都包含“保持更新”部分,内容包括:
- 官方文档 - 官方文档链接
- 版本检测 - 如何检查API变更
- 测试端点 - 快速验证命令
- 最后验证时间 - 该参考文档最后验证的时间
Monitoring for Changes
变更监控
| Check | Frequency | Method |
|---|---|---|
| Test endpoints | Weekly | Automated health checks |
| Documentation links | Monthly | Link validation |
| Version numbers | Monthly | Check API responses |
| Changelog reviews | Monthly | Visit official changelogs |
| 检查项 | 频率 | 方法 |
|---|---|---|
| 测试端点 | 每周 | 自动化健康检查 |
| 文档链接 | 每月 | 链接有效性验证 |
| 版本号 | 每月 | 检查API响应 |
| 更新日志查看 | 每月 | 访问官方更新日志 |
Update Triggers
更新触发条件
Re-verify a reference when:
- API returns unexpected errors
- New features announced in changelog
- Response structure differs from documented
- Rate limits or auth requirements change
当出现以下情况时,重新验证参考文档:
- API返回意外错误
- 更新日志中宣布新功能
- 响应结构与文档不符
- 速率限制或认证要求变更
Contribution
贡献方式
To update this skill:
- Verify changes against official docs
- Test endpoints with real API calls
- Update "Last Verified" date
- Note breaking changes prominently
如需更新本技能:
- 根据官方文档验证变更内容
- 通过真实API调用测试端点
- 更新“最后验证时间”
- 突出标注破坏性变更
References
参考资料
Quilted Skills
Quilted技能
- firecrawl/cli/firecrawl-scrape — Web scraping patterns
- firecrawl/cli/firecrawl-scrape — 网页抓取模式
First-Party API Documentation
官方API文档
- MusicBrainz API — ID hub, url-rels, JSON responses
- MusicBrainz JSON Web Service — JSON format details
- Setlist.fm API — Setlist search and retrieval
- JamBase API — Events, venues, multi-ID lookup
- Ticketmaster Discovery API — Events, attractions
- Spotify Web API — OAuth 2.0, artist data
- Spotify Authorization Guide — PKCE flow
- Discogs API — Discography, releases
- Last.fm API — Similar artists, tags
- Wikidata Query Service — SPARQL cross-references
- MusicBrainz API — ID中心、url-rels、JSON响应
- MusicBrainz JSON Web Service — JSON格式详情
- Setlist.fm API — 曲目单搜索与获取
- JamBase API — 活动、场馆、多ID查询
- Ticketmaster Discovery API — 活动、演出方
- Spotify Web API — OAuth 2.0、艺人数据
- Spotify Authorization Guide — PKCE流程
- Discogs API — 音乐作品目录、发行内容
- Last.fm API — 相似艺人、标签
- Wikidata Query Service — SPARQL跨平台参考
Community Resources
社区资源
- MusicBrainz Picard Documentation — Tagging patterns
- Wikidata SPARQL Examples — Cross-reference queries
- MusicBrainz Picard Documentation — 标签模式
- Wikidata SPARQL Examples — 跨平台参考查询