READMESource: main@0711ee8d
dsh-listen-together
给 DeepSeek Harness(DSH)用的网易云「一起听」插件:在 设置 里单开一栏,登录一个网易云账号,粘贴邀请链接就能进房;房间里的消息记在这一栏里,还可以绑一个 DSH 会话,让回复用那个会话的人格。
独立插件,不依赖任何其他项目或服务,所有数据都存在本机。
功能
- 登录:网易云 App 扫码(本地生成二维码),或者直接粘
MUSIC_Ucookie。 - 进房:粘贴「一起听」邀请链接。长链、手机分享的文案、电脑版复制出来的
163cn.tv短链都认;粘进来就先告诉你这是双人还是多人。 - 在场:定时心跳、跟着房间同步当前歌曲(双人房的歌在
playlist/get的playCommand里)。 - 说话:多人房发在房间聊天室;双人房没有房间聊天接口,走网易云私信。
- 记录:进房、换歌、收发消息都记一条,插件里直接翻。
- 自动退出:可以设「听满 N 分钟」或「听满 N 首歌」就自己退房,两个都填 0 表示不启用。
- 人格:绑定一个 DSH 会话后,房间里的新消息会交给它,用那个会话的人格生成回复再发回去。房间散了也能接着回私信(记得上次一起听的是谁)。
安装
插件目录放到任意位置,然后链接进 DSH 的 profile(把 <插件目录> 换成你自己的路径):
$profile = "$env:USERPROFILE\.dsh\profiles\desktop"
$src = "<插件目录>" # 例:D:\plugins\dsh-listen-together
New-Item -ItemType Junction -Path "$profile\node_modules\dsh-listen-together" -Target $src
再编辑 $profile\package.json:
dependencies里加一行:"dsh-listen-together": "link:<插件目录>"dsh.profile.bundles里加一项:"dsh-listen-together"
保存后刷新 DSH 页面;如果设置里没出现,完整重开一次 DSH。
macOS / Linux 把
New-Item -ItemType Junction换成ln -s,路径用正斜杠即可。
使用
- 打开 设置 → 一起听。
- 点「用二维码登录」,用网易云音乐 App 扫码确认;或者粘 cookie。
- 在网易云里开一个「一起听」,把邀请链接复制过来,粘进「进房间」,点「进去」。
- 房间里的消息会出现在「房间记录」里,换歌也会记一条。
- 想让回复有性格:在「绑定 DSH 会话」里选一个会话,打开「有人说话就自动回一句」,保存。
数据放在哪
默认在 ~/.dsh/listen-together/,可用环境变量 DSH_LISTEN_TOGETHER_DIR 改:
| 文件 | 内容 |
|---|---|
account.json |
网易云 cookie(只在本机,不会上传) |
config.json |
心跳间隔、绑定会话、自动回复、自动退出等设置 |
state.json |
当前房间、当前歌曲、上次一起听的人、上次错误 |
chat.jsonl |
房间记录 |
已知限制
- 双人房没有房间聊天接口(官方只给多人房开了聊天室,双人房走云信私有协议)。所以双人房里「说话」实际是发网易云私信,记录里也会标出来。
- 双人房的当前歌曲只能从
sync/playlist/get的playCommand取,对方还没开始放歌时是空的。 - 多人房的聊天室接口对频率和内容有限制(发太快会被拒)。
- 自动回复要绑定一个正在用或能恢复的 DSH 会话;建议别绑正在聊天的那个会话,否则回复会跟你的对话挤在一起。
- 网易云电脑版的一起听入口按下去通常没有「双人 / 多人」的选择,发起的一般是双人房;多人房多在手机 App 里开。插件两种都能进。
- 一起听房间有时效:对方退出或超时后房间就散了,这时进房会提示「房间已失效」,让对方重新开一个再发链接。
隐私
cookie 只写在本机的 ~/.dsh/listen-together/account.json,插件不联网发送给任何第三方;所有请求都直接发往 music.163.com。
开发
index.js 宿主薄壳:盯 lib/ 的修改时间,热加载 host.mjs
client.js 设置页(React,走 window.__ModuleLoader__)
lib/host.mjs 路由 + 轮询 + 自动回复
lib/netease.mjs 网易云接口层(明文 / weapi / eapi)
lib/room.mjs 房间:邀请解析、心跳、收发消息、当前歌曲
lib/session.mjs 绑定 DSH 会话、用会话的人格生成回复
lib/store.mjs 本机存储
vendor/qrcode.mjs 二维码渲染(qrcode-generator,MIT)
改完 lib/ 下的文件不用重开 DSH,下一次请求或下一轮轮询就会用新代码。
License
MIT。二维码渲染使用 qrcode-generator(MIT)。
No comments yet. Be the first to write one.