在 DSH Web 界面收听小宇宙播客:粘贴分享链接即可免登录播放(host 代理音频流,支持 Range 拖动),扫码登录后同步账号订阅、关键词搜索节目与单集、加载完整单集分页、解锁已购付费单集;注册 `podcast_play` 工具让 agent 按链接、节目 pid 或单集 eid 直接播放。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-xiaoyuzhou
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:jerryqx/dsh-xiaoyuzhou
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH (DeepSeek Harness) Web 端的小宇宙播客播放器:在会话输入框下方注入播放条,弹出的播放面板支持订阅管理、粘贴分享链接打开节目、shownotes 阅读、断点续播和倍速播放;同时注册 podcast_play 模型工具,让 AI 直接帮你"播放某期播客"。
| 播放条 | 我的订阅 | 节目与单集 |
|---|---|---|
![]() |
![]() |
![]() |
功能
- 免登录收听:粘贴小宇宙分享链接(
https://www.xiaoyuzhoufm.com/podcast/...//episode/...,或xyzfm.link短链)即可打开节目并播放,音频经 host 代理流式传输(支持 Range / 拖动进度条) - 订阅:把常听的节目订阅到本地(
~/.dsh/xiaoyuzhou/state.json),跨重启保留 - 断点续播:每集播放进度自动记忆,重播时从上次位置继续(>30s 才记忆)
- shownotes:单集详情安全渲染(白名单标签 + 图片代理)
- 倍速:0.75x / 1x / 1.25x / 1.5x / 2x 循环切换
- 音量:播放条上滑动条调节(0–100%,可拖动/点击),喇叭图标一键静音/恢复;音量本地持久化,下次播放沿用
- 可选登录(解锁搜索/订阅同步):扫码登录——面板展示二维码,用手机小宇宙 App 扫一扫即可(登录后同步「我的订阅」、关键词搜索节目/单集、加载节目全部单集(免登录只展示最近约 15 集)、播放已购付费单集);也保留短信验证码登录作为兜底(小宇宙对第三方发码接口加了滑块验证码,被拦截时可在手机 App 登录页触发验证码短信,回来输入手机号+验证码)
- AI 工具
podcast_play:模型可直接播放链接 / pid / eid(传节目播最新一集),登录后支持关键词搜索播放;支持action暂停/继续/停止/上一集/下一集
安装
dsh plugin --profile web add dsh-xiaoyuzhou
# 然后重启 dsh web 并刷新页面
本地开发安装(tarball):
cd dsh-xiaoyuzhou
npm pack
dsh plugin --profile web add ./dsh-xiaoyuzhou-<version>.tgz
验证安装:
dsh web --dump-config | grep -i "xiaoyuzhou\|xyzfm"
使用
- 打开 DSH Web(
dsh web启动后访问对应地址),会话输入框下方会出现「🎙 小宇宙播客」播放条 - 点击播放条右侧面板按钮打开面板,在「打开」页粘贴小宇宙分享链接
- 想搜索:在面板底部登录框用手机号 + 短信验证码登录后即可关键词搜索
- 对 AI 说:「播放 https://www.xiaoyuzhoufm.com/episode/xxx」或(登录后)「播放最新一期科技早知道」
架构
lib/index.js host 半边:webServer 路由(/xyzfm/*)、音频/图片代理、
podcast_play 工具、systemPrompt、状态持久化
lib/xyzfm.js 小宇宙 API 客户端:匿名 SSR 抓取(__NEXT_DATA__)、
短信登录、搜索/分页/付费单集接口、shownotes 白名单消毒
lib/client.js browser 半边:slots 注入播放条(conversation.input.dock)
与面板(shell.overlay),React UI,intent 轮询
- 数据链路:匿名抓取
www.xiaoyuzhoufm.com/podcast|episode/<id>页面内嵌__NEXT_DATA__(含media.xyzcdn.net公开音频直链);host 以移动端 UA 绕过站点 WAF(桌面 UA 会 403) - 浏览器音频统一走
/xyzfm/audio?eid=...:host 解析音频地址并流式转发 Range 请求;付费单集在已登录时经private-media/get换取临时直链 - 状态(订阅/进度/音量/倍速)与登录 token 存放在
~/.dsh/xiaoyuzhou/,不使用浏览器存储 - 工具意图:
podcast_play在 host 写入 pendingIntent,client 每 2s 轮询/xyzfm/intent执行
已知限制
- 免登录只能拿到节目最近约 15 集(小宇宙 web 端限制);登录后可完整分页
- 付费单集需已在小宇宙 App 内购买,且需登录后才可能播放
- 小宇宙 Web 端 WAF 对非浏览器 UA 返回 403,本插件使用移动端 Safari UA 抓取;若站点策略变化,解析可能失效
- 第三方登录存在被小宇宙风控/封号的可能(与 ultrazg/xyz 等项目的警告一致),token 只存本机,请自行斟酌
开发与测试
npm install
npm test # vitest:输入归一化 / NEXT_DATA 解析 / 消毒 / 路由与工具(mock)
npm pack --dry-run
License
MIT
链接
同类插件
PC2005-cloud/dsh-pet#dsh-pet★ 1260
DSH Web UI 桌面宠物:25 个透明动画、屏幕漫游、点击反应与拖拽,附可复现的素材生成链。
Nagi-ovo/dsh-ads★ 660
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
vlln/whale-girl★ 357
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
yyh-001/dsh-meme★ 171
聊天表情包:纯文本斗图、情绪主动发图、像 QQ/微信 一样发图、AI 自动学图、自定义表情包。
a86582751/dsh-nexttavern★ 165
面向 DeepSeek Harness 的角色扮演工作台:人物卡可以导入(SillyTavern/TauriTavern),也可以从零交互式写出一张;长篇 TXT 能改编成可玩的角色卡,精读或粗颗粒度两种读法;主代理按剧情主动查阅世界书,正文在独立的酒馆阅读 TAB 中呈现;同一对话里探索多条世界线(重新生成、改后发送、显式分支);带作用域的文风预设(16 种自带文风)、角色 Agent 集群、独立决策卡,以及角色卡或小说导出;长篇由固定设定前缀、硬切上下文窗口、可追溯导演笔记与关键词/语义/混合检索撑住,嵌入可用在线服务,也可完全本地运行。面向 Harness 0.1.2-alpha.3,安装需按文档应用显式兼容补丁。
Sutera-Diffusus/dsh-whale-musume★ 120
元气鲸鱼娘桌宠:摸头养成、按工具类型联动的工作状态、494 条台词、30 项成就、成长日记、拖拽惯性、主题适配与无障碍模式。关键词感知与余额关心默认关闭、需手动开启;可选的天气心情只在你填了城市后才会请求 Open-Meteo。无遥测。



社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。