核心用法
my-play-music-from-yt 利用 Playwright 浏览器自动化技术,在可见浏览器中控制 YouTube 完成音乐播放任务。用户可通过自然语言指令实现:单曲精准播放(如 "Play Money Money Money by ABBA")、艺人作品连播(如 "播放周杰伦的歌")、风格 mood 音乐(如 "放松 spa 音乐"、"60年代华语老歌"),以及完整的播放控制(暂停、继续、下一首、跳过广告、停止关闭等)。
工作流程遵循严格的会话管理机制:始终以 -s=music_player 命名会话,每次交互前执行 snapshot 获取页面元素引用(eN),完全基于引用操作而非 CSS 选择器。搜索策略智能适配不同场景——具体歌曲采用「艺人+曲名」、艺人播放直接用名字触发 YouTube 的「Mix」推荐、风格 mood 则附加 "playlist" 关键词获取长时合集。特别针对语音转录(ASR)错误设计容错机制,利用 YouTube 内置的自动纠错能力,无需用户确认直接搜索。
广告处理是核心环节之一。系统通过轮询快照识别跳过按钮(支持多语言关键词匹配:skip/Skip/略過/略過廣告),主动点击跳过;遇到不可跳过广告则等待 5 秒重试,最多 4 轮约 20 秒覆盖。考虑到 YouTube 常连播两条广告,每次跳过后需二次快照确认。
显著优点
- 零配置门槛:无需 YouTube API Key、无需账号登录,开箱即用
- 自然语言友好:支持模糊描述、风格 mood、年代标签等非结构化查询
- 健壮的错误恢复:内置会话存活检测、页面崩溃重建、视频不可用回退、Cookie/登录弹窗自动处理等机制
- 后台独立运行:播放启动后浏览器自主运行,不阻塞主会话,用户可并行处理其他任务
- 多语言原生支持:对华语、日语等非英语内容直接使用原字符搜索,效果优于罗马化拼写
潜在缺点与局限性
- 可见浏览器依赖:必须使用
--headless=false,无法纯后台运行,可能干扰用户当前工作 - 广告不可完全消除:虽能自动跳过可跳过广告,但无法绕过不可跳过广告和 Premium 推广弹窗,体验存在中断
- 元素引用脆弱性:YouTube 页面结构更新可能导致
eN引用失效,需依赖快照重试 - 无播放状态持久化:浏览器被用户关闭后会话即销毁,无法记忆播放进度或队列
- 键盘快捷键冲突:
Shift+n/p等全局快捷键可能与用户系统快捷键冲突 - 版权与地域限制:部分视频因版权或区域封锁不可用,需回退重试
适合人群
- 追求「一句话点歌」的 casual 用户,不愿配置 API 或管理播放列表
- 需要播放华语、日语等小语种音乐,且对搜索精准度要求不高(接受 YouTube 推荐 Mix)的用户
- 临时性音乐需求场景(工作背景音、聚会配乐),而非重度音乐管理用户
常规风险
- 隐私暴露:浏览器实例可能保留 Cookie、搜索历史,多用户场景需注意数据隔离
- 自动化检测:YouTube 可能识别 Playwright 自动化特征,触发反 bot 机制或限速
- 资源占用:Chromium 实例持续运行消耗内存(通常 200-500MB),长期播放需注意系统资源
- 弹窗误点风险:快照解析可能误判促销弹窗按钮,导致意外订阅或跳转
- 内容合规性:YouTube 搜索结果含用户上传内容,版权状态不确定,商用场景需谨慎
总体评估
该 skill 在「便捷性」与「可控性」之间取得实用平衡,适合个人非商用场景的快速音乐需求。技术实现上通过严格的引用操作和广告处理循环展现了工程健壮性,但可见浏览器的架构选择决定了其无法成为完全无缝的背景服务。