dsh-netease-daily:Harness 定时从网易云每日推荐里挑歌、试听并写推荐理由

前言

在 DeepSeek Harness 里做长期陪伴型任务时,常见做法是手写 Schedule、自己接第三方 API,再在对话里拼一段固定话术。听歌场景更麻烦:既要账号登录、又要真实试听,还要把结果写回对话并留本地记录。下面介绍社区插件 dsh-netease-daily(维护者 zxcvbnmlxy),它把网易云「每日推荐」、本机 mpv 静默试听和当前 Harness 会话里的文本模型串成一条可配置的日报流水线。

这是什么

dsh-netease-daily 是 DeepSeek Harness 的插件包(npm 名 dsh-netease-daily,当前资料中版本 0.2.3,MIT 许可证)。目标很明确:按北京时间默认定时(21:00),从你已登录的网易云「每日推荐」里取 5 首候选,每首在本机用播放器试听(默认设置页为 15 秒,可调 5–120 秒;README 任务示例为每首 30 秒),由 DeepSeek 选出 3 首、写推荐理由和歌曲链接,发到开启任务的 Harness 对话;日报另存本机。你可以用「喜欢 / 不喜欢」反馈,后续选歌会参考本地偏好,并避开近 14 天已推荐过的歌。

说明两点边界,避免误解能力边界:

  • 这里的「听歌」是本机播放器真实播放(静默模式见下文),DeepSeek 依据歌曲资料、可用歌词和你的偏好写理由;文本模型不会因为播放了音乐就获得音频理解能力。
  • 插件使用社区维护的网易云 API 包(@neteasecloudmusicapienhanced/api 4.41.1),不是网易云官方插件;不提交虚假播放记录,不绕过会员或版权限制,不自动改收藏。

面向环境:README 写明已针对 Harness Desktop 0.2.1-rc.2 的工具与排程接口编写;需要 Node.js 22.19+(建议 24),engines.dsh 为 >=0.2.1-rc.2 <0.3.0。无需另填 DeepSeek API Key,使用当前 Harness 会话的模型。SkillHub 目录分类为「模型推理」,与「用会话模型做选歌与文案」一致。

核心功能

定时日报与偏好

  1. 在指定 Harness 对话里启用任务后,由 Harness 原生 Schedule 持久化定时;Harness 须在运行且本机联网。
  2. 同一天重复触发会复用当天候选;已完成的日报不重复改写;去重后没有新歌会如实告知。
  3. netease_feedback 只记录本机偏好,影响后续选歌。

设置页(重启 DSH 后出现「每日听歌」)

安装或升级后重启一次 DSH,左侧出现「每日听歌」。可变项集中在面板,保存后立即生效、重启后保留,不必改代码:

  • 每日运行时间(默认 21:00)与启用开关;
  • 推荐描述(心情 / 场景 / 风格),AI 据此从每日推荐和关键词搜索里挑歌;
  • mpv 就绪检测、可选 winget 安装;播放器路径留空则自动查找;
  • 日志目录(不可写会在面板报红);
  • 试听时长(默认 15 秒);
  • 扫码登录、任务开关与下次运行时间;
  • 面板 「最近推荐」:今日 3 首(带评分,点歌名可打开网易云)及近 7 天折叠历史。

静默试听与 AI 评价

播放使用:

mpv --ao=null --volume=0 --mute=yes --no-video

解码与进度照常推进,但不占用音频设备、不弹窗,全程没有声音。AI 评价会在文案中明确标注未直接听到音频;未安装 mpv 时返回 PLAYER_NOT_READY,设置页提示安装,不会静默跳过。

对话工具(日常使用)

意图 工具名
按描述推荐 netease_plan
搜歌 netease_search
静默试听 netease_listen
写评价 netease_evaluate
保存推荐 netease_daily_save
改设置 netease_settings
喜欢 / 不喜欢 netease_feedback
检查状态 netease_status

点歌与 VIP 降级

「最近推荐」里歌名对应「打开并播放」逻辑:经典桌面版可通过本地 Chromium DevTools Protocol(127.0.0.1:9223) 在客户端内搜索并点播放;Microsoft Store(MSIX)版无法定位到单曲,会打开应用并把「歌名 歌手」复制到剪贴板;未装客户端则回退网页 https://music.163.com/#/song?id=<id> 并提示 VIP 限制。对话里也可说「打开第 2 首」(netease_open)。

安装与启用

仅安装插件不会自行创建任务;需先登录网易云,再在目标对话里启用 Schedule。

从 npm 安装

dsh plugin --profile <profile> add dsh-netease-daily

npm 最新版本以 npm view dsh-netease-daily version 为准。pnpm 11 起默认 minimumReleaseAge: 1440 时,刚发布的新版可用 dsh-netease-daily@<版本号> 显式指定。市场登记:https://dsh-plugin.market/plugin/zxcvbnmlxy/dsh-netease-daily。

从 GitHub 安装

固定提交:

dsh plugin --profile <profile> add github:zxcvbnmlxy/dsh-netease-daily#9843d6f

或跟踪 main:

dsh plugin --profile <profile> add github:zxcvbnmlxy/dsh-netease-daily

profile 已启用 plugin_manager 时,也可在对话里说:安装 bundle github:zxcvbnmlxy/dsh-netease-daily,然后确认 netease_status 工具可用。

登录与开启任务

扫码登录(任选其一):

  • 插件目录运行 npm.cmd run login,用网易云 App 扫浏览器二维码;或
  • 在 Harness 里:调用 netease_login_start 显示二维码,扫码后调用 netease_login_check。

在准备接收日报的 Harness 对话里说(README 示例):

启用网易云每日听歌任务:北京时间每天 21:00,从我的每日推荐挑 5 首,每首试听 30 秒,给我推荐 3 首并说明理由。现在先执行一次。

这会调用 netease_schedule_enable;以工具返回的任务 ID 和下次执行时间为准。

本地开发目录安装、独立 CLI 的 link: / .tgz 方式见 GitHub README,此处不展开。

配置与数据位置

默认数据目录:%USERPROFILE%\.dsh\netease-daily(尊重 DSH_HOME),可用环境变量 DSH_NETEASE_DATA_DIR 覆盖。可变项在 settings.json(与设置页同一份存储)。主要文件:

  • logs/events.jsonl:追加事件;
  • logs/YYYY-MM-DD.md、logs/latest.md、logs/index.html(最近 30 天索引);
  • 日志保留 30 天,超期会在下次写入时清理;
  • credentials.json:登录凭证,仅本机;
  • history.json:候选、播放、推荐与偏好。

常见错误码:NOT_LOGGED_IN、PLAYER_NOT_READY、LOG_DIR_UNWRITABLE;设置页对应项会报红,不会静默失败。

适用场景与注意

适合:已在用 Harness Desktop / CLI、希望每天固定时间把「网易云每日推荐 + 本机试听 + 模型写理由」自动化,并愿意在本机保存日志与偏好的人。

安装前建议自行查看 源码与许可证,并理解插件以当前 dsh 进程权限运行;网易云 API 在独立进程中请求,登录失效需重新扫码。SkillHub 目录(https://www.skillhub.cn/plugins/zxcvbnmlxy/dsh-netease-daily)是社区索引,与 DeepSeek / 幻方无官方从属关系。

黑箱测试清单见仓库 docs/blackbox-test-checklist.md。

结尾

经过上面的步骤,你会得到一条可排程的「每日三首」流水线:登录一次、在对话里启用任务,其余时间交给 Schedule、mpv 静默试听和 Harness 会话模型。目录页:https://www.skillhub.cn/plugins/zxcvbnmlxy/dsh-netease-daily;源码与完整说明:https://github.com/zxcvbnmlxy/dsh-netease-daily。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜