dsh-media-downloader:在 DSH 里粘贴链接即可多平台下载媒体

前言

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 进程权限运行,并会访问网络与本地写入配置目录,仅在信任维护者与代码的前提下启用。

典型用法

  1. 完成 install_bundle 并满足 Node、ffmpeg 等要求后,打开 DSH Web 界面。
  2. 复制目标页面链接(小红书建议使用 App「分享 → 复制链接」,以带上 xsec_token)。
  3. 在面板图标旁输入框粘贴,或在页面任意位置粘贴,等待选择器弹出。
  4. 勾选需要的画质、封面、图文或头像,确认下载;文件落到你在 DSH 中配置的下载目录(具体以面板与宿主配置为准)。
  5. 若由 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜