核心用法
本技能 my-play-music-from-yt 利用 playwright-cli 驱动可见浏览器访问 YouTube,实现音乐播放自动化。核心工作流程遵循 快照 → 定位元素 → 执行操作 的模式,禁止猜测或假设。
关键操作原则:
- 命名会话:所有命令必须附带
-s=music_player - 强制可见模式:默认使用
--headed,除非用户明确要求无头模式 - 先快照后操作:每次交互前必须执行
snapshot获取元素引用 - 纯引用驱动:仅使用
ref(如e123)进行点击、填充,禁止 CSS/XPath
主要功能场景:
1. 单曲播放:搜索 "ABBA Money Money Money",点击匹配标题的结果
2. 艺人歌单:搜索艺人名(如 "周杰倫"),优先选择 "Mix" 或播放列表结果实现连续播放
3. 流派/心情音乐:搜索 "relaxing spa music playlist" 或 "華語 60年代 老歌 playlist"
4. 播放控制:暂停、继续、下一首(Shift+n)、上一首(Shift+p)、跳过广告、关闭播放器
广告处理机制: 自动检测跳过按钮(支持中英文标签),非跳过广告等待 5 秒后重试,最多循环 4 次;若广告持续超过 20 秒则尝试 ESC 或刷新页面。
语音识别容错: 不主动要求用户确认疑似误听的歌手/歌名,依赖 YouTube 的自动纠错功能(如 "楊成林" 自动纠正为 "楊丞琳"),仅在结果明显无关时才回退到网络搜索。
显著优点
- 零 API 依赖:无需 YouTube Data API 或 Music API,规避配额限制和区域封锁
- 视觉反馈完整:可见浏览器模式让用户实时看到操作过程,增强信任感
- 多语言原生支持:直接使用原始语言搜索(中文、日文等),搜索结果质量优于罗马音
- 健壮的错误恢复:内置 session 冻结检测、页面重置、广告跳过、视频不可用回退等多重机制
- 语音转录容错:主动处理 ASR 错误,减少用户交互摩擦
潜在缺点与局限性
- 平台权限门槛:macOS 需手动授权屏幕录制、自动化、辅助功能三项系统权限,否则快照生成失败
- 广告不可完全消除:依赖手动跳过按钮,非跳过广告仍需等待,体验不如 Premium
- UI 依赖脆弱性:YouTube 前端更新可能导致元素引用(ref)失效,需维护快照解析逻辑
- 资源占用:可见浏览器持续运行占用内存和 CPU,长时间播放可能累积性能开销
- 无播放状态持久化:关闭 session 后播放进度丢失,无法恢复
- 版权风险:自动化访问可能违反 YouTube 服务条款,存在账号限制或封禁风险
适合人群
- 希望快速播放音乐而不愿配置 API 密钥的普通用户
- 多语言音乐爱好者(华语、日语、韩语等)
- 语音交互场景下需要容错纠错能力的用户
- 能够接受浏览器自动化交互方式的技术接受者
常规风险
| 风险类别 | 具体表现 | 缓解措施 |
|---------|---------|---------|
| **账号安全** | 频繁自动化操作可能触发 YouTube 反爬虫机制 | 避免高频搜索,使用单一稳定会话 |
| **隐私泄露** | 浏览器会话可能保留登录状态、搜索历史 | 定期清理会话或保持匿名模式 |
| **系统权限** | macOS 权限未授权导致功能完全不可用 | 引导用户完成权限配置流程 |
| **服务中断** | YouTube UI 变更导致元素定位失败 | 监控快照解析成功率,及时更新选择器 |
| **广告体验** | 无法屏蔽广告,可能连续播放多支广告 | 提供明确的跳过指导和等待策略 |
总体建议:适合作为个人本地音乐播放辅助工具,不建议用于高频商业场景或敏感账号环境。