DeepSeek Harness 音乐播放器插件

前言

DeepSeek Harness(DSH)的理念是“一切皆插件”。当用户在对话中需要播放音乐时,直接打开本地播放器会打断上下文流,而让模型输出文本链接又缺乏交互性。dsh-music 解决了这个问题:它在对话流中渲染一张可交互的播放器卡片,模型只需输出一个 dsh-music 围栏,卡片即刻出现并接管播放控制。

插件定位

  • 名称:jh-evil/dsh-music
  • 维护者:jh-Evil
  • 类型:客户端插件
  • 功能:将 DSH 会话中的 dsh-music 代码块渲染为支持网易云/QQ 双后端的音乐播放器卡片,提供视觉特效与完整播放控制。

核心功能

1. 双后端与自动降级

插件集成了网易云音乐和 QQ 音乐两个后端。
* 网易云音乐:支持搜索、播放直链(默认 320kbps)、歌词与翻译。
* QQ音乐:在免登录环境下,由于腾讯签名限制,多数歌曲无法获取直链。插件会自动跨后端切换到网易云音乐寻找同名同歌手曲目播放,并在状态栏标注降级原因。
* 容错机制:若两个后端均失败,卡片会标记为“不可播”并自动跳下一曲。

2. 视觉与交互

  • 主题:提供 glass(玻璃拟态)、neon(霓虹发光)、paper(纸感)、vapor(蒸汽波)四种预设主题,以及自定义主题对象。
  • 歌词模式:
    • bubble:悬浮玻璃歌词气泡,随播放浮动换行(默认)。
    • bar:内嵌三行滚动歌词栏(含翻译)。
    • none:不显示歌词。
  • 特效:播放时气泡随节拍从唱片边缘升起(基于 WebAudio 实时频谱驱动,跨域不可用时降级为模拟节拍);点击卡片任意处可触发气泡迸发;唱片随播放旋转。

3. 播放控制与状态

  • 完整控制:支持切歌、循环/单曲/随机切换、音量调节、进度拖拽。
  • 本地管理:支持本地收藏与电台模式(播完自动搜索相似歌曲加入队列)。
  • 系统集成:集成 MediaSession,支持锁屏控制与媒体键操作。
  • 状态持久化:刷新页面后自动恢复队列与偏好,直链过期时自动重新解析。

安装与启用

安装命令如下:

dsh plugin --profile web add dsh-music

安装完成后重启 DSH Web 界面即可。插件依赖 Node.js 环境运行,要求 Node >= 20,无运行时依赖。

使用示例

模型在回复中输出 dsh-music 围栏即可触发卡片。以下是几种典型用法:

  1. 搜索播放:
    输入:
    {"theme":"glass","backend":"netease","keyword":"周杰伦 晴天","autoplay":true,"lyricMode":"bubble"}
  1. 指定主题与歌单:
    输入:
    {"theme":"vapor","playlist":[
      {"title":"晴天","artist":"周杰伦"},
      {"title":"Lemon","artist":"米津玄師"}
    ]}
  1. 自定义主题:
    输入:
    {"theme":{"accent":"#f9a8d4","bg":"#3b0764"}}
  1. AI 推荐:
    点击卡片状态栏的「AI 推荐」按钮,会将当前曲目回传给模型,模型可据此回复新的播放指令。

配置与环境变量

变量名 作用
DSH_MUSIC_NETEASE_COOKIE 网易云 Cloud Music Cookie。填写后可提高 VIP 歌曲、高码率直链的成功率(默认使用匿名 Cookie)。
DSH_MUSIC_QQ_COOKIE QQ 音乐 Cookie。填写用户 Cookie 后,QQ 侧免费歌曲有机会直接获取直链,减少自动降级。

注意事项:
* 浏览器自动播放策略限制:首次 autoplay 可能需要用户点击播放按钮。
* 仅供个人学习使用,音乐版权归各平台所有。

结语

dsh-music 通过“Node 宿主半区”提供搜索与代理服务,结合“浏览器半区”的渲染与交互,实现了在对话流中无缝播放音乐的能力。对于需要在智能体场景中引入音频体验的开发者,这是一个轻量且功能完备的解决方案。

  • 目录页:https://www.skillhub.cn/plugins/jh-Evil/dsh-music
  • 源码:https://github.com/jh-Evil/dsh-music
羽毛球分组比赛记分
小程序二维码

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

小夜