DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

SAI-h /

SAI-h/dsh-mood-dj

Verified

Mood and topic-aware NetEase Cloud Music radio for DSH. Reads the conversation, plays matched songs in the background, and keeps the queue filled.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@cce20abc

心绪电台 / Mood radio

一个带左侧栏入口的 DSH 插件。打开它时,它会读取当前会话最近的消息,推断此刻的情绪,打开本机的网易云音乐(或 QQ 音乐 / Spotify),播放一首适合调节当下氛围的歌。

没有明显情绪信号时,它会按顺序退回到:

  1. 上一首歌的气质;
  2. 你的历史收听与「喜欢 / 跳过」反馈形成的偏好;
  3. 当前时间(凌晨 / 清晨 / 工作时段 / 夜晚)。

用法

  • 左侧栏「心绪电台」图标 → 打开面板。首次打开(或上次选择超过 6 小时)会自动选歌;6 小时内再次打开会停在上次选好的歌,不会自动切歌。
  • 面板里可以「重新播放」「换一首」「安静一点」;只有这些操作才会主动切歌。
  • 情绪分析优先调用当前 DSH 模型,把最近真实用户发言总结成一句情绪判断,再按结果选歌;同一轮对话的分析缓存 10 分钟,避免反复调用模型。
  • 模型还会提取你明确谈到的具体对象:动漫/电影/游戏、事件、地点、活动。比如聊到「进击的巨人」,会先搜相关主题曲;聊到「毕业论文」「生日」,会用对应主题词找歌。泛泛的「动漫」「音乐」「事情」,以及技术/产品/插件/仓库/路径这类词,不会被当成话题。
  • 话题歌曲最多 3 首,随后补 2 首公开歌单里的「新发现」,剩余位置再用曲库补齐;话题搜索失败或没有具体对象时,就由「新发现 + 情绪画像」接手。话题搜索结果缓存 12 小时。
  • 连续批次会避开最近 12 首,同一批里尽量不重复同一位歌手;即使一直处在同一种情绪,也会在 42 首目录里轮换,并用时间种子做小幅随机,不会固定成同一组五首。
  • 没有具体话题时,也会先从曲库外的公开歌单里随机捞 2 首「新发现」,再用曲库补足 5 首;只有歌单请求失败才完全回退到曲库。卡片上会标出「曲库 / 话题 / 新发现」,能直接看出这首是不是兜底。
  • 面板顶部有「在对话中采集情绪」开关。开启后,电台会按队列时长在歌曲快结束前自动分析并补下一批;关闭后只在你点按钮时播放。
  • 采集开关旁有「自动补歌」小开关;关掉后当前队列播完就停,不会再自动续。
  • 非会员的 VIP 歌曲按 30 秒试听参与时长计算;一批试听按顺序播完并暂停时,会尝试补下一批。
  • 你在对话里直接说「好烦 / 累 / 难受 / 开心」等明显情绪时,开启采集的情况下会记入本轮情绪窗口,补歌时统一分析;不会为了这一句话硬切当前歌曲。
  • 每批会排 5 首同氛围的歌进网易云队列,补歌用追加方式接到队尾,播完自动续;每批排过的歌都会记入近期列表,避免下一批原样重来。
  • 面板每 5 秒读取当前实际播放曲目,队列自动切歌或手动下一首后,标题、歌手和队列数量会同步更新。
  • 点「喜欢 / 跳过」会写入本机的小型收听日记,下一次选歌会参考。
  • 情绪只在 DSH Host 本机分析,不上传;歌曲通过现代桌面客户端的 orpheus://<base64> 指令({"type":"song","id":"...","cmd":"play"})交给网易云桌面客户端。
  • 非黑胶会员播放 VIP 歌曲时,网易云会进入 30 秒试听;面板会提前标注这一点。

安装

从 GitHub 安装:

dsh plugin add -w github:SAI-h/dsh-mood-dj

也可以把本目录交给 DSH 的 plugin_manager 安装。

本目录就是一个 bundle:package.json 声明 dsh.bundle.patch 和 dsh.client,cordis.patch.yml 插入 mood-dj 行。

仓库:SAI-h/dsh-mood-dj

后台切歌

Windows 上优先使用网易云桌面客户端的本地 Chromium 控制通道:

  • 客户端未运行时,插件用 --remote-debugging-address=127.0.0.1 --remote-debugging-port=9223 启动它,再通过 CDP 在页面内派发 playing/play;
  • 客户端已经带控制通道运行时,切歌只改变播放状态,窗口不会被带到前台;
  • 如果客户端已经在运行、但没开控制通道,本次会回退到深链播放,面板出现「开启后台切歌」按钮;点一次会重启客户端并启用后台控制;
  • 控制通道不可用时仍会回退到 orpheus://<base64> 深链。

数据

收听日记默认保存在:

~/.dsh/mood-dj/state.json

可以用 MOOD_DJ_HOME 指到任意位置,例如:

MOOD_DJ_HOME=/path/to/dsh-save-place

只包含歌曲 id、标题、歌手、情绪标签、时间和反馈,不保存对话原文。插件不依赖仓库所在的本地路径。

关于 ncm-cli

可选的 @music163/ncm-cli 集成不随插件自动安装,也不要求固定目录。它适合搜索、歌单和 TUI;Windows 上它的 orpheus 播放器不可用,需要使用 mpv 后端,会是一个独立于官方客户端的播放器。

如果你本机想使用它,把命令里的 $NCM_CLI_HOME、$MPV_HOME 换成自己的安装目录:

ncm-cli --version
mpv --version

ncm-cli 的 player 设为 mpv,并确保 mpv 在 PATH 中。它和电台的后台切歌是两条独立路径:电台默认仍用官方客户端 + CDP,ncm-cli 由你手动使用。

API 私钥属于高敏感凭证,不写入插件、配置或日志。ncm-cli config set privateKey 请在你自己的终端里执行。

限制

  • 精确到歌曲的自动播放依赖网易云桌面客户端注册的 orpheus: 协议;其他客户端会尽量打开并提示手动确认。
  • 情绪推断是本地可解释的关键词 / 标点 / 表情信号,不调用外部模型;它不会假装读懂反讽或非常隐晦的表达。
  • 内置曲库是人工挑选的小型歌单,每首都有已验证的网易云歌曲 id,避免运行时搜索失败。
  • 首次启用后台控制可能需要重启一次网易云客户端;之后切歌不再弹出窗口。
—/ 5

No ratings yet

Verified DSH bundle

Commit cce20abc65eb

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout