deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:jerryqx/dsh-ximalaya
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DeepSeek Harness 喜马拉雅播客插件。
在 DSH 的 Web 界面里直接收听喜马拉雅:搜索专辑/播客/有声书、浏览曲目列表、一键播放,聊天输入区常驻播放条(播放/暂停/上一集/下一集/快进/快退/进度拖动/音量/倍速)。还注册了 ximalaya_play 模型工具——直接在对话框里说「播放三体」「来点郭德纲相声」,节目就响起来。
| 搜索专辑 | 专辑详情 |
|---|---|
![]() |
![]() |
| 我的订阅 | 关注的主播 |
|---|---|
![]() |
![]() |
ximalaya_play 模型工具:agent 可按关键词搜索播放(query),或直接指定 albumId/trackId;支持 action 暂停/继续/停止/下一集/上一集需要已安装 dsh CLI(Node ≥ 20)。
# 把 <profile> 换成实际 profile 名,如 web
dsh plugin --profile <profile> add dsh-ximalaya
或从本地目录 / tarball 安装:
# 本地目录
dsh plugin --profile <profile> add /path/to/dsh-ximalaya
# 或先打包再安装
npm pack
dsh plugin --profile <profile> add ./dsh-ximalaya-0.5.0.tgz
安装后重启 dsh web 并刷新页面:
ximalaya_play 工具,播放条 2 秒内响应1.0x 循环切换倍速;🔊 弹出音量条;⏪/⏩ 按步长快退/快进(默认 15 秒),右键这两个按钮可改步长(5/10/15/30/60 秒,选择会记住)说明:「声音 / 订阅 / 主播」三段读取的是喜马拉雅账号云端数据(App 内点 ♥ 喜欢、订阅专辑、+ 关注的都会出现),需先扫码登录;「★ 专辑」是插件本地的收藏(仅存本机)。
插件为「Host 端 + Web 端」双面结构:
lib/index.js):喜马拉雅接口代理(搜索/专辑/曲目/扫码登录/收藏声音/关注主播)、播放地址解析与音频流转发、ximalaya_play 工具、状态持久化lib/client.js):浏览器里的播放条 + 面板(搜索/专辑/主播/我的)由 cordis.patch.yml 插入 ximalaya-podcast 行自动组对:
- insert:
- id: ximalaya-podcast
name: 'dsh-ximalaya'
状态持久化:登录态、收藏、搜索历史、音量/倍速、面板位置、上次播放(专辑/曲目/进度)全部保存在 Host 端 ~/.dsh/ximalaya-state.json,重启/刷新不丢(dsh-desktop 随机端口下同样有效)。
npm install
npm test # vitest:xmly 纯函数单测 + host 路由集成测试 + Web 渲染冒烟(55 用例)
修改 lib/ 后本地调试:
dsh plugin --profile <profile> add ./ # 或直接改 profile 里的 link 目标
结构:
lib/
├── xmly.js # 喜马拉雅 API 库:搜索/专辑/曲目/播放地址(xm-sign 签名 + 解密)/扫码登录/收藏声音/订阅专辑/关注主播/云端写操作(订阅·收藏·关注)
├── index.js # Host 半边:/dsh-ximalaya/* 路由、音频流代理、云端写转发、ximalaya_play 工具
└── client.js # 浏览器半边:播放条 + 面板(slots 注入)
本插件通过非官方接口访问喜马拉雅内容,所播放内容的版权归喜马拉雅及权利方所有。仅供个人学习、技术研究、日常试听使用,严禁用于任何商业用途、公开传播、二次分发或盈利行为。扫码登录产生的账号风控、封禁等风险由使用者自行承担。如您不同意以上条款,请勿使用本插件。
播放条显示「浏览器拦截了自动播放」? 浏览器安全策略禁止未交互的音频播放。首次自动播放被拦截是正常的——在播放条上点一次 ▶ 即可解锁,之后恢复自动播放。
某些曲目提示「需要登录或已购/VIP 权限」? 该曲目是付费/VIP 内容。面板「我的」页扫码登录;若账号未购买该专辑或非 VIP,则无法播放(这是平台版权限制,插件不会绕过付费墙)。
搜索有结果但某专辑曲目为空? 该专辑可能已下架或仅含视频内容。插件只处理音频曲目。
订阅里的专辑点进去提示「已下架」? 部分专辑(多为播客类)已从旧版曲目接口迁移,插件会自动级联到网页播放器同款接口拉取列表——若仍失败,多为该专辑真的已下架。
扫码二维码过期了? 二维码约 3 分钟过期,「我的」页会自动提示,点「刷新二维码」重新生成即可。
音频拖动进度后卡住? Host 端播放地址缓存约 10 分钟过期,过期后首次请求会自动重新解析(多花 1–2 秒)。若持续失败,暂停后再点播放重试。
收听历史能同步到手机吗? 不能。喜马拉雅网页端没有「上报收听历史」的接口(对网页播放器代码与真实播放流量均验证过),手机 App 的收听历史走 App 私有签名接口,插件无法也不应伪造。插件内播放进度只存本机(断点续播用)。可云端同步的只有订阅/收藏/关注(见「使用」第 7 条)。
为什么插件里只能「取消收藏/取关」,不能新增收藏/关注? 经实测,点赞/关注的写方向接口有更严风控(需真实浏览器指纹签名,伪造请求会被拦截),只有取消方向与订阅的两个方向可纯接口可靠完成。要新增 ♥ 收藏或关注,请在手机 App / 网页端操作,插件内随时可查看与取消。
登录后 VIP 曲目还是不能播? 确认账号确实拥有该内容权限(已购买专辑/有效 VIP)。播放权限由喜马拉雅服务端判定,插件只做登录态转发。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。