用途:通过已安装的 peloton CLI(直接使用 PATH 中的命令)连接 Peloton,浏览点播与直播健身课程、查看排期并预约课程。
主要能力:
- 课程浏览:peloton ride-archived 浏览点播课程,peloton ride-live 浏览直播课程,支持 --limit、--page、--fitness-discipline、--duration、--sort-by、--difficulty-level、--instructor 等筛选参数。
- 课程搜索:peloton search-class --query "<text>" --limit 10 --page 0,按自然语言或合作方术语搜索;搜索不支持 API 分页,--limit 与 --page 仅在本地结果集上切片,需换结果时应细化查询。
- 筛选元数据:peloton metadata-mappings 返回 instructors、class_types、equipment、fitness_disciplines、difficulty_levels、content_formats 等分类 ID,供 --super-genre-id、--class-type-id、--instructor 使用,避免硬编码。
- 日程管理:peloton schedule-event(点播用 --ride-id,直播用 --join-token)、delete-scheduled-event、reschedule-event。
- 深链:peloton deeplink --class-id <ID> 生成课程查看链接。
授权:Peloton 为 OAuth 技能。正常读取课程可直接调用读取命令,无需先执行 peloton status;若命令返回 not_connected 或用户要求管理连接,先运行 peloton status,未连接则完成链接流程。运行 peloton authorize-url 前需明确确认,说明提供方为 peloton,并提示会存储持久访问令牌,直到本地断开或在 Peloton 设置中撤销;连接消息中不得展示原始 OAuth scope 字符串。authorize-url 只运行一次,返回 connect_url 时以 Connect Peloton 形式分享,不要单独粘贴原始 URL;等待用户批准或回调期间不要重复调用,用 peloton status 检查待连接状态;回调完成后再次运行 status,仅在 connected 时继续。切勿打印 client_secret、access_token 或 refresh_token。
展示规则:面向用户的结果不显示原始内部标识、难度分数、星级、评分数量或课程 URL,除非用户明确要求技术细节;使用标题、教练名和时间作为回退文本。课程列表用 widget.create_list_widget 呈现 body.classes[],标题放 title,教练与 duration_minutes 放 subtitle,可用时把课程时间放 tertiary_title,thumbnail_url 复制到 image_url;有 deeplink_url 时用 type: "link" 并复制 data.url,否则用 type: "generic";把 embed_token 放入回复,不要用纯文本重复课程列表。无课程时直接说明;widget 创建失败时用简洁 Markdown 列表列出标题、教练和时长。不要自行构造课程 URL,不要以文本打印课程 ID 或图片 CDN URL。直播课程默认使用 --days 7 --exclude-complete true。日程预约与删除在用户请求清晰明确时可直接执行。令牌过期错误会自动刷新,若仍失败则重新检查 peloton status 并按需重新链接。
限制:搜索无服务端分页;课程读取保留原始 epoch 字段并附加语义时间字段,优先使用语义字段;具体收费、价格与平台支持情况资料未提供。