dsh-video-downloader:在 DeepSeek Harness 里用 yt-dlp 下载各平台视频

前言

在 DeepSeek Harness(DSH)里做资料整理、离线观看或备份时,经常需要把 YouTube、哔哩哔哩、X 等链接落到本机文件。直接在终端拼 yt-dlp 参数、自己处理 ffmpeg 和队列,对日常使用者成本偏高;纯 Web 下载站又往往不经过本机、也难以和 Harness 对话联动。

dsh-video-downloader(维护者 Raymond-Hear)是 DSH 社区目录中的联网工具类插件:侧栏提供「视频下载」页面,贴链接后由本机 yt-dlp 解析并下载视频、音频、字幕或封面,并在同一界面管理队列与进度。它本质是 yt-dlp 的图形前端,解析与落盘仍在你的电脑上完成。

这是什么

  • 名称:dsh-video-downloader(界面显示「视频下载器」)
  • 仓库:https://github.com/Raymond-Hear/dsh-video-downloader
  • 当前版本(package.json):1.3.0,许可证 MIT
  • 定位:贴链接 → 解析预览 → 选模式与画质 → 入队下载;支持 YouTube、哔哩哔哩、X、TikTok 及 yt-dlp 覆盖的上千站点(完整列表可用 yt-dlp --list-extractors 查看)

README 明确说明:仅供个人学习与备份;项目不托管、不分发内容,请遵守当地法律与平台服务条款。

核心功能

本机依赖与一键安装

插件会按顺序探测 yt-dlp:插件 bin/ 单文件 → 系统 yt-dlp → python3 -m yt_dlp 等,一般无需手动配 PATH。未安装时可在页面一键安装对应系统的官方单文件版(Windows / macOS / Linux);GitHub 超时会尝试镜像,再不行退回 pip install。

ffmpeg 用于高清合并、MP3、字幕转 srt、内嵌字幕、封面转 jpg。缺 ffmpeg 时不会整页报错,会降级到可下载形态并在任务行说明;也可从 PyPI 的 imageio-ffmpeg 静态构建一键装进插件 bin/,无需 Homebrew 或 sudo。

默认保存目录为 ~/Downloads/YT-DLP,可在页面底部修改。Cookies 支持上传 cookies.txt,或读取 Edge / Firefox 的 Cookie(会员、年龄/地区限制等场景常用)。

面板用法

界面为单列卡片(链接 → 解析 → 模式/画质 → 开始)加下载队列表格。解析后可看标题、UP 主、时长、播放量、封面、可选清晰度与字幕数量;封面支持页面内试播(临时直链,不落盘)。

四种下载模式:视频(最佳及 2160p~360p)、仅音频(MP3)、仅字幕(srt)、仅封面(jpg)。高级选项包括时间片段、播放列表范围、跳过已下载、代理、限速、并发 1–3、完成后自动打开等;队列支持暂停/继续(断点续传)、取消、失败重试,进度含速度与剩余时间。

对话中的 Agent 工具

除面板外,插件向 Agent 注册 4 个工具,与面板共用同一队列:

工具 作用
video_probe 解析链接:标题、作者、时长、清晰度、字幕数、是否直播
video_download 加入队列(video / audio / subs / thumb),立即返回任务编号
video_jobs 查询进度、成品路径、错误原因
video_control cancel / pause / resume

示例说法(README 原文):

帮我把这个视频的字幕下下来,然后读一遍整理成中文要点:https://www.youtube.com/watch?v=…

把这个视频下成 720p,下完告诉我文件在哪。

设计要点:video_download 只返回「任务已创建」,避免长下载导致工具超时;cookies 不走工具参数,使用本机已存凭据。

安装与启用

安装需要 Harness 的 danger-full-access 权限,按提示批准一次即可。

方式一(推荐):在 DSH 对话里发送:

帮我安装这个插件:https://github.com/Raymond-Hear/dsh-video-downloader

Agent 会调用 plugin_manager 的 install_bundle,将仓库作为安装源装入当前 profile 并默认启用。也可使用 github:Raymond-Hear/dsh-video-downloader。装好后侧栏点「视频下载」;在 设置 → 插件 中应能看到「视频下载器」。

方式二:若当前 Harness 不接受 git 地址安装,需先克隆仓库到本地,再让 Agent 对克隆目录的绝对路径执行 install_bundle,或在插件管理页选择该目录安装(README 给出的克隆命令见仓库说明)。

npm 包:维护者发布并去掉 package.json 中 "private": true 后,可安装包名 dsh-video-downloader(以仓库发布状态为准)。

首次打开:无 yt-dlp 时顶部有一键安装;无 ffmpeg 时有黄色提示与一键安装。更新可点页脚版本号比对 GitHub Release;卸载在插件管理器移除 bundle,已下载文件与 %LOCALAPPDATA%\dsh-ytdlp\(macOS/Linux:~/.local/share/dsh-ytdlp/)中的记录不会自动删除。

典型用法

  1. 侧栏打开「视频下载」,粘贴公开视频链接,等待解析。
  2. 选择模式(如 1080p 视频、仅 MP3、仅 srt 字幕)与是否需要播放列表、内嵌字幕等,点击开始下载。
  3. 在队列表格查看进度;需要时在对话中说「暂停刚才的任务」或调用 video_jobs 查路径。

公开内容在 README 已验证场景中,YouTube、X、哔哩哔哩在无 cookie 下可解析;仅字幕连续测试可能触发 YouTube 429,宜间隔重试。macOS / Linux 的完整回归以 README「已验证的环境与场景」为准,勿把未验证组合当作支持承诺。

适用场景与注意

适合:已在用 DSH、希望在本机用 yt-dlp 统一下载多平台视频/音频/字幕,并希望在对话里让 Agent _probe、入队、查进度的人。

注意:

  • 插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT 许可证,确认可接受其读写本机下载目录、cookies 与 dsh-ytdlp 状态目录等行为。
  • 下载能力来自 yt-dlp(Unlicense);站点解析问题更适合向 yt-dlp 反馈。勿称本插件为 yt-dlp「官方」产品。
  • DSH 社区插件目录(SkillHub 条目)为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-video-downloader 把 yt-dlp 的常用参数和队列收进 DSH 侧栏与 Agent 工具,减少在本机反复敲命令的成本,同时保留「数据不出本机、凭据不进对话参数」的边界。需要安装或细节时,以仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

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

小夜