Skip to content

dsh-bili-music

Verified

dsh-bili-music · v0.1.15 · MIT · Web UI

在 DSH 里搜索并播放哔哩哔哩音频:侧边栏「音乐」面板 + 顶部常驻迷你播放条(电台续播 / 可拖拽吸附成悬浮球 / 歌单 / 点赞踩收藏 / 全局热键 / 播放进度记忆)

Install

dsh plugin add dsh-bili-music

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-bili-music

在 DeepSeek Harness(DSH) 里直接搜索并播放哔哩哔哩音频的插件:侧边栏一个「音乐」面板 + 一条常驻顶部的迷你播放条。

不需要登录 B 站,不下载视频,只播公开视频的音频流。


功能

侧边栏「音乐」面板

  • 搜歌:歌名 / 歌手 / UP 主都能搜,回车出结果;搜索历史一行 chip,点一下重搜、× 单条删除
  • 播放 / 加入队列,队列可单条移除
  • 电台模式:一首放完自动向 B 站要「相关推荐」接着播(不是打乱已有队列); 每随机 3~7 首会让「电台起点的那几首」重新影响一次推送,把一路漂远的风格拉回来(不定轮数)
  • 每日推荐:独立 tab,每天自动换一批;只收 2~5 分钟的曲子(片段/超长合辑不进)。 两种推送机制可切换(切换后立刻重新生成当天的歌单,不用等明天):
    • 按主题推荐(默认开):以队列里最近听过的几首歌为种子,顺着 B 站「相关推荐」补同类
    • 发散(关掉开关):不用种子链,每首独立抽词 + 独立抽页 + 作者不重复,前后两首没有风格联系
  • 自动歌单:按搜索 / 点赞 / 实际听歌时长算口味,生成最多 3 份主题互不重复的歌单; 样本少时会自动收敛成 1~2 份(防过拟合),收藏的主题一定会被生成
  • 口味表态:👍 点赞(计入口味权重)、👎 踩(降低这首歌出现频率,不连坐作者)、 ⭐ 收藏(强制生成该主题的歌单)、🚫 拉黑(永不出现)

顶部迷你播放条

  • 上一首 / 播放暂停 / 下一首、可拖动进度、滚轮调音量(10% 以下 1% 精调)
  • 音量图标 4 档(静音 / 低 / 中 / 高),不看数字也能估个大概
  • 整条可拖动:抓哪拖哪;拖到窗口边缘自动吸附并缩成圆形悬浮球,几乎不占地方
  • 悬浮球外圈有环形进度(逆时针),胶囊底部有细进度条
  • 按住时边框亮起(蓝色发光),一眼看出已经抓住了
  • 悬浮球拖离边缘即自动展开回播放条
  • 点 ▾ 展开第二行:点赞 / 踩 / 收藏 / 拉黑 / 清空 / 音质切换(64K / 132K / 192K)
  • 点 ▴ 折叠成小胶囊(更省地方)

全局热键(DSH 失焦 / 最小化也生效)

热键 动作
Ctrl + Alt + P 播放 / 暂停
Ctrl + Alt + → / ← 下一首 / 上一首
Ctrl + Alt + ↑ / ↓ 音量 +10% / −10%(10% 以下步长 1%)

热键由 host 编译的独立小进程(无窗口、无控制台)注册,DSH 关闭后会自动退出。

记忆

播放队列、当前曲目、播放进度(退出重进接着播)、音量、音质、播放条位置与形态、 拉黑名单、搜索历史、点赞 / 踩 / 收藏、面板当前页与正在看的歌单,全部记在本地(localStorage),重开后还原。


环境要求

  • DSH 桌面版(在 0.2.0-rc.2 上实测通过)
  • Windows(本地代理的启动与路径按 Windows 写的;其他平台未测试)
  • 能访问 bilibili.com(国内直连即可,无需登录)

安装

  1. 打开 DSH → 插件(Plugins)
  2. 选择从本地安装 / Install from file,选中 dsh-bili-music-*.tgz
  3. 安装完成后重启 DSH(关闭窗口,再双击图标打开)

为什么必须重启:插件的 host 半区代码在进程启动时加载,DSH 的模块缓存是进程级的,不重启不会生效。

重启后左侧边栏会出现一个 🎵 音乐 图标,点开就是搜索面板。


使用

想做什么 怎么做
搜歌 面板输入关键词 → 回车(或点历史 chip)
只入队不播放 结果行点「+ 队列」
电台续播 面板右上或播放条上点 📻 点亮
收起播放条 点 ▴ 变胶囊;拖到窗口边缘则变悬浮球
展开更多功能 点 ▾,播放条下方多出一行
点赞 / 踩 / 收藏 / 拉黑 ▾ 展开 → 对应图标
生成歌单 面板「歌单」页 → 生成
调音量 播放条上滚轮;或全局热键 Ctrl+Alt+↑/↓;静音点音量图标
复位播放条位置 拖到你想放的地方即可(位置会记住)

工作原理

B 站的音频流校验 Referer 必须是 bilibili.com,而浏览器里的 <audio> 改不了请求头,直连必定 403。所以插件在本地起了一个小代理(127.0.0.1:17862):

  • 带正确的 Referer 去 B 站取音频流,再把字节原样转发给播放器(含 Range 透传,所以进度条能拖)
  • B 站的搜索接口需要 wbi 签名(裸请求会被风控 412),签名也在代理里算
  • 封面图同样走代理(B 站接口给的是 http://,代理只放行 https,插件内部统一升级)

电台的选曲不是随便抓:以当前这首为种子问 B 站要「相关推荐」,然后按分区白名单 + 标题词表 + 时长过滤,把游戏实况、攻略、剧情 PV 这类非音乐内容挡掉;实在没有合适的就不续播,不会硬凑。


已知限制

  • 未登录状态:音质上限 192K(默认取最高可用)。要更高得登录,插件不鼓励往里塞 cookie
  • 全局热键冲突:Ctrl+Alt+P/←/→/↑/↓ 若被其它软件占用会静默失效(部分显卡/输入法工具也占用方向键组合), 可在 lib/index.js 的 HOTKEY_CS 里改 vks / mods 后重启
  • 接口依赖:B 站接口或风控策略变化可能导致功能失效,失效时面板上会直接显示错误原文
  • 端口占用:本地代理固定用 127.0.0.1:17862,若被占用则搜索会报错
  • 电台筛选是启发式:靠分区名 + 标题词表 + 时长判断,不是 100% 准确;遇到跑偏的内容用「拉黑」即可
  • 改代码后需重启:host 半区改动必须重启 DSH 才生效;client 半区可以热重载

卸载

DSH 插件页移除 dsh-bili-music → 重启 DSH。

本地残留只有浏览器 localStorage 里的几条键(dsh-bili-music.*)和队列数据,可在开发者工具里清掉。


许可

MIT。仅供个人学习与自用,请遵守 B 站用户协议;插件不提供任何下载 / 破解 / 绕过付费的能力。