前言¶
DeepSeek Harness(DSH)的 Web 界面本身不带「把一条分享链接落成本地文件」的能力。日常又要从 B 站、抖音、小红书等页面取视频或图文,各站匿名画质、风控和字段各不相同;YouTube、X 等站点则往往已有 yt-dlp 生态。若在 Harness 里为每个站点单独写脚本或反复切终端,成本和出错面都偏高。
下面介绍社区插件 dsh-media-downloader(维护者 lohana20061023-29,分类:联网工具):在 DSH Web GUI 中统一入口——粘贴链接弹出选择器,B 站、抖音、小红书走三套原生解析,其余站点交给 yt-dlp,视频、封面、图文、头像可按需勾选下载。
这是什么¶
dsh-media-downloader 是挂在 DSH 上的插件包,不是独立桌面程序。包名 dsh-media-downloader,宿主入口 index.js,客户端入口 client.js;当前版本 1.8.4(见仓库 package.json),许可证 MIT。
它要解决的问题可以概括成:把「认平台、选解析路径、合流转码、登录隔离」收到插件里,你只负责提供 URL;抖音和小红书在资料说明中不需要登录,B 站高清与 YouTube 会员/年龄限制等内容才需要登录;登录使用独立 browser profile,cookie 写入 ~/.dsh/bili-dl/,不污染日常浏览器。
社区目录页:SkillHub 插件页。源码与说明:GitHub 仓库(README 标注 GitHub 星标为社区可见指标,请以页面为准)。
核心功能¶
统一入口与可选资源¶
README 说明三种唤起方式:面板输入框旁图标、输入框内粘贴、页面任意位置粘贴(自动弹出选择器)。可勾选的内容因平台而异,包括:视频画质、独立音轨(B 站含多码率 / 转 MP3)、封面、图文多张原图、作者头像。
平台支持与解析分工¶
| 平台 | 视频 | 图片 | 封面 | 作者头像 | 解析是否需要登录 |
|---|---|---|---|---|---|
| B 站 | 多画质 / 多编码 | — | 16:9 原图 | 支持 | 高清需要(匿名封顶 480P) |
| 抖音 | 无水印 | 图文多张 | 支持 | 支持 | 否 |
| 小红书 | H.264 / H.265 多档 | 图文原图 | 支持 | 支持 | 否 |
| YouTube | 由 yt-dlp 决定 | — | 支持 | 支持 | 会员/年龄限制内容需要 |
| X | 由 yt-dlp 决定 | — | 支持 | 支持 | 受保护账号需要 |
| TikTok | 由 yt-dlp 决定 | — | 支持 | 支持 | 部分视频需要 |
| 其它 | yt-dlp 支持的站点 | — | 支持 | — | 视站点而定 |
B 站、抖音、小红书各有一套原生解析器,不依赖 yt-dlp 的站点适配;其余站点仍走 yt-dlp,覆盖面与 yt-dlp 一致。音频方面:B 站可单独下载;视频下载自带音轨。
原生引擎要点(实现层面)¶
资料中的分工如下,便于理解失败时该查哪条路:
| 平台 | 入口 | 关键点 |
|---|---|---|
| B 站 | 官方 web API + WBI 签名 | x/player/wbi/playurl 取 DASH 流,ffmpeg -c copy 合流 |
| 抖音 | 移动端分享页 SSR | _ROUTER_DATA → play_addr,/playwm/ 改 /play/ 去水印;匿名 ttwid |
| 小红书 | 移动端分享页 SSR | __INITIAL_STATE__ → noteData.data.noteData;链接内 xsec_token,无需登录 |
非原生平台由 lib/ytdlp.mjs 封装;首次使用 yt-dlp 会自动下载到 ~/.dsh/bili-dl/bin/。合流与转码依赖 ffmpeg(优先 PATH,找不到会回退内置候选路径)。系统代理会被自动识别(Windows「Internet 选项」),也可在面板里修改。
Agent 工具调用¶
除面板外,插件向 Agent 暴露工具 media_fetch。示例参数:
{ "url": "https://www.bilibili.com/video/BV...", "quality": "1080" }
返回值为落地文件的绝对路径。
安装与启用¶
插件属于 DSH 生态的「bundle」安装方式,需本地目录后再用 plugin_manager 挂载。README 给出的步骤如下。
先取得仓库目录(README 示例使用 clone;你也可以用其它方式得到同目录内容,路径替换即可):
git clone https://github.com/lohana20061023-29/dsh-media-downloader.git
在 DSH 中挂成本地链接:
plugin_manager install_bundle target="link:/path/to/dsh-media-downloader"
请将 /path/to/dsh-media-downloader 换成你机器上的实际路径。
依赖与环境(来自 README 兼容性说明):
- DSH:Web GUI,需要
webServer与tools服务 - Node:≥ 18
- ffmpeg、yt-dlp(见上文)
- 登录窗口依赖 Edge 或 Chrome;资料写明 Windows 优先,其它系统需自行将 ffmpeg、yt-dlp 装好并加入 PATH
更新:在插件目录拉取新版本后重新挂载:
cd <插件目录> && git pull
plugin_manager install_bundle target="link:<插件目录>"
卸载:
plugin_manager remove_bundle target="dsh-media-downloader"
下载记录、cookie、登录态在 ~/.dsh/bili-dl/,卸载不会删除该目录;要彻底清理需手动删除。
安装前请自行阅读源码与 MIT 许可证;插件以当前 DSH 进程权限运行,并会访问网络与本地写入配置目录,仅在信任维护者与代码的前提下启用。
典型用法¶
- 完成
install_bundle并满足 Node、ffmpeg 等要求后,打开 DSH Web 界面。 - 复制目标页面链接(小红书建议使用 App「分享 → 复制链接」,以带上
xsec_token)。 - 在面板图标旁输入框粘贴,或在页面任意位置粘贴,等待选择器弹出。
- 勾选需要的画质、封面、图文或头像,确认下载;文件落到你在 DSH 中配置的下载目录(具体以面板与宿主配置为准)。
- 若由 Agent 代劳,调用
media_fetch并传入url与可选quality。
B 站需要高清时,通过插件提供的独立 profile 登录窗口完成登录,态仅保存在 ~/.dsh/bili-dl/。
适用场景与注意¶
适合:在 DSH 里做内容整理、离线备份(个人使用)、或让 Agent 通过 media_fetch 拉取公开链接对应媒体;需要 B 站/抖音/小红书原生解析且希望少碰 yt-dlp 站点差异的场景。
已知限制(README「已知限制」节,节选):
- B 站匿名最高 480P;封面仅提供 16:9 原图,公开链接拿不到作者专属的 4:3
cover43,故不提供裁切版封面。 - 小红书链接宜带
xsec_token;仅有笔记 ID 时会退回浏览器读取,较慢。 - 抖音首次解析需签发匿名
ttwid(约 1 秒),之后缓存 7 天。 - 平台改版可能导致 SSR 字段失效,会退回 yt-dlp 或直接报错,不会静默返回错误数据。
合规:README 写明仅供个人离线观看/备份,须遵守各平台服务条款与当地法律;项目说明不涉及 DRM 绕过,仅使用平台公开页面数据与播放地址。
SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系,安装来源以你核对的仓库与目录页为准。
结尾¶
dsh-media-downloader 把「粘链接 → 选资源 → 落盘」收进 DSH:三座国内站点原生解析,其余交给 yt-dlp,登录与 cookie 隔离在 ~/.dsh/bili-dl/。若你在 Harness 里常处理分享链接,可按 README 完成 bundle 挂载后再试面板或 media_fetch。
- 目录页:https://www.skillhub.cn/plugins/lohana20061023-29/dsh-media-downloader
- GitHub:https://github.com/lohana20061023-29/dsh-media-downloader