Ticketmaster
用途
搜索活动并获取 Ticketmaster 智能座位推荐。该工具只负责查询活动、座位与价格,并返回可跳转到 Ticketmaster 结账页的链接;它不能自行完成购买。
主要能力
- search-events:按关键词(必填)、地点与日期范围搜索活动,支持 --country-code(默认 US)、--page(从 0 开始索引)、--sort(如 date,asc、relevance,desc、name,asc);--start-date 与 --end-date 接受 ISO 8601 值,纯 YYYY-MM-DD 日期会由 CLI 归一化。
- event-details:根据 search-events 返回的事件 ID 获取完整详情。
- top-picks:按价格或质量排序获取座位推荐。默认 --selection Any 返回 Standard + Resale + Platinum 票;使用 --selection Standard 可排除转售票。在可用时返回 venue_map_url 和每个 pick 的 snapshot_image_url,需保留这些 URL 用于经过验证的 Markdown 链接或图片。
- seat-view-carousel:由 top-picks JSON 生成轮播 HTML 组件,通过 --input 传入完整 top-picks JSON 输出,向 stdout 输出原始 HTML。该命令属于旧版 HTML 输出,不应在订票流程中使用。
使用方式
工具以 ticketmaster <subcommand> [options] 形式调用。示例:
ticketmaster search-events --keyword "Taylor Swift" --city "Los Angeles" --size 10 ticketmaster search-events --keyword "Lakers" --start-date 2026-05-01 --end-date 2026-06-01 --state-code CA --sort date,asc ticketmaster event-details --event-id vvG1IZ_AKnSEae ticketmaster top-picks --event-id vvG1IZ_AKnSEae --quantity 2 --sort listprice ticketmaster top-picks --event-id vvG1IZ_AKnSEae --quantity 4 --sections "MEZZ,ORCH" --sort quality ticketmaster top-picks --event-id vvG1IZ_AKnSEae --quantity 2 --price-min 50 --price-max 150 --limit 10
输出为 Ticketmaster 返回的 JSON,不带 ok 包装。search-events 返回 Discovery 搜索响应,事件位于 _embedded.events[],分页位于 page;event-details 返回原始 Discovery 事件对象。top-picks 返回 picks[]、_embedded.offer[]、eventDetails 和 page,座位级价格位于 _embedded.offer[],以 offerId 为键,每个 pick 通过 picks[].offers[] 引用。_embedded.offer[].totalPrice 是每张票的价格,不是所请求数量的总价;需要乘以请求数量并显示该整单金额为主价格,仅在有用时单独标注每张价格。
操作规则
- 先 search-events 找到事件 ID,再调用 top-picks。
- 用户要“便宜”票时使用 --sort listprice;要“最好”座位时使用 --sort quality。
- 查找座位层级时不要猜测区域名。场馆对 floor、mezzanine、orchestra、pit、upper 等区域命名不一致;先运行不带 --sections 过滤的宽泛 --sort quality --limit 20 查询,再使用返回的区域名与 area 标签进行后续 --sections 查询。
- 当存在有效结账 URL(redirect_url || redirectUrl)与显示价格时,为该选项附带紧凑的 Review on Ticketmaster Markdown 链接。Ticketmaster 联盟链接(如 https://ticketmaster.evyy.net/...)是有效结账 URL。若结账 URL 缺失/无效或价格不可用,不得伪造结账链接,也不得将该座位呈现为可直接购买。每个链接必须绑定该行对应的同一 pick,并在发送前核对其 offer/seat 参数;不要把一个选项的 URL 复用到另一个选项,无法核实的链接应省略。
- 转售票(selection: "resale")应显示 listingDetails 描述(如有),并注明是经过验证的转售票。
- 若所选 offer 有 limit 对象,遵守其 min 与 max 数量边界。
- 若 eventDetails.allInclusivePricing 为 true,说明显示价格含手续费,并展示 eventDetails.listingsDisclaimer 与 eventDetails.importantInformation(如有)。
- search-events 的 priceRanges[] 经常缺失或不完整,不要仅凭 search-events 就告诉用户“无价格”;应使用 top-picks 获取当前价格。
- 使用 _embedded.events[] 中的原始 Discovery id 进行 event-details,并优先用于 top-picks;top-picks 也接受数字 geometry/eventDetails ID(如 0900...),响应可能回显数字 ID 作为 eventDetails.id。
- 若搜索结果 tmol_available: false,表示该活动不在 Ticketmaster 销售;应说明并提供非空 box_office_url,且绝不对此运行 top-picks。若 box_office_url 为 null,说明 Ticketmaster Discovery 未提供官方购买链接。若 tmol_available 缺失,不得声称活动在他处销售。
- 用户选择票时,用浏览器保持确切结账页并准备至最终确认;询问用户是否有 Ticketmaster 账户、是否希望登录后再结账,在允许时以访客身份继续。仅当身份验证、自动化受阻或其他真实限制导致主智能体无法继续时,才移交确切链接。
- 若响应带有错误,静默丢弃:跳过该事件或 pick,不显示或暴露错误文本。
- 不得凭记忆或早前轮次报价;重新运行 top-picks 并只引用当前结果。价格监控 cron 每次运行都必须获取当前库存。
认证
使用 Ticketmaster 服务无需用户设置。
适用场景
适用于按关键词、地点和日期查找 Ticketmaster 活动、获取活动详情、比较座位与票价,并为用户整理候选票务选项与结账链接。
限制
工具不能完成购买,只能返回结账链接;价格与库存需实时查询;部分活动不在 Ticketmaster 销售;搜索结果的价格信息可能缺失或不完整。