前言¶
在 DSH(DeepSeek Harness)工作流里处理视频内容时,需要从各平台抓取链接、下载媒体、转写逐字稿、对齐时间轴,再整理成发布文案或字幕。这些步骤在网页端要重复多次:打开视频页、复制简介、手动听写、自己排版。如果批量处理十条,就是十次重复劳动。
插件把解析、下载、转写、对齐、排版收进侧栏工作台,媒体先落盘,转写没跑完就能先看片子。完成后再导出发布稿、字幕或打包 ZIP,也可以直接交给 agent 继续加工。
这是什么¶
dsh-video2text 是一个工作流插件,为 DSH 提供一个侧栏面板,把视频链接转成发布文案和逐字稿。面板内置播放器、逐字稿、字幕与导出功能,同时自带 video2text skill,让 agent 能直接使用。
维护者是 vlln,插件通过 GitHub 仓库发布,MIT 许可证。
核心功能¶
| 能力 | 说明 |
|---|---|
| 支持平台 | 抖音 / 小红书 / 微信视频号 / B站 / YouTube / 本地音视频 |
| 转写方式 | 云端 Qwen3-Omni(中文标点与专名更准)或本地 mlx-whisper / whisper.cpp |
| 播放器 | 自绘控件,支持播放/暂停、拖拽、倍速、字幕、逐句同步高亮、画中画、全屏 |
| 时间轴 | 默认按标点切句 + 分片内插值;需要时一键做词级对齐 |
| 导出 | 发布稿(自动章节)/ 字幕 SRT / 全部打包 ZIP |
| 账号登录 | 抖音、小红书扫码;视频号扫码 + 会话验证 |
| 任务管理 | 搜索、按天分组、重试复用原卡、删除、从其它目录导入 |
| 交给 agent | 新建会话、自动切到任务工作区、预填上下文 |
安装与启用¶
从 GUI 安装:
- 侧栏打开 Plugins
- 点击 添加插件
- 填入
github:vlln/dsh-video2text - 安装完成后重启
dsh web(Node 组件在启动时注册,刷新页面不会出现面板)
从命令行安装:
dsh plugin --profile web add "github:vlln/dsh-video2text"
两条路径在 dsh 0.2.1-rc.1 环境下验证过。安装后确认:侧栏出现「视频转文案」,粘贴一条 B 站链接按回车,几秒内出现任务卡与封面;转写完成后「导出 → 发布稿」应下载一个 .publish.md。
典型用法¶
入列即转写¶
粘贴视频链接按回车(或点「开始」)直接建任务。任务名就是抓到的视频标题,封面、作者、时长随元数据补上并写进任务记录。本地文件用文件名兜底。
边转边看¶
媒体下载完立刻落盘,播放器马上可用,转写在旁边继续跑,逐字稿完成后原地出现。多个任务并行,互不阻塞。
播放器 + 逐字稿¶
自绘控件支持播放/暂停、拖拽、倍速、字幕、跟随高亮、画中画、全屏。逐字稿按句同步高亮,点一句跳到对应时间。
键盘快捷键:
- 空格:播放/暂停
- ←→:快退/快进
- ↑↓:切换任务
- /:搜索
时间轴有两种状态:标题下的胶囊会标出来。估算(插值)和 精确(做过对齐)。
对齐(一次性动作)¶
默认不做词级对齐:云端转写后按标点切句、在分片内按字数插值时间,对连续口播通常只差零点几秒,而且不需要本地模型。
需要更准的边界时点「对齐」:用本地 whisper 的词级时间重算每句起止,只更新 json/srt,不重转、不改文案。对齐中会显示进度条和实时日志。
导出¶
三个出口,够用且不重复:
| 选项 | 产物 |
|---|---|
| 发布稿(带章节) | 标题 / 发布文案 / 自动章节 / 正文 / 字数语速 |
| 字幕 SRT | 逐句字幕 |
| 全部(ZIP) | 上面两份 + sidecar JSON |
交给 agent¶
选中一条任务点「问 AI」:新建会话、自动切到任务目录所在的工作区,并把上下文(标题、来源、时长、输出目录、文字稿/字幕/sidecar/媒体的绝对路径)填进输入框。回车就把活交给 agent —— 压稿、重写标题、切片段、跑批量。
工作区是「所有任务的上一级目录」,agent 能一并管理其它任务的产物。插件只读选择、不创建:侧栏里没有这个工作区时,会提示你用 Add workspace… 指一次。
任务列表¶
按今天/昨天分组、可搜索;每条右侧 ⋯ 里有「复制链接」「删除任务(含文件)」。缺登录时任务进入「需要登录」状态,卡片上直接扫码,扫完自动重跑。
agent 直接跑脚本的结果也会出现¶
面板会扫描以下目录,把含 sidecar JSON 的子目录收编成任务(标 imported):
$DSH_HOME/data/dsh-video2text/out- 环境变量
VIDEO2TEXT_IMPORT_DIRS(:分隔) - 插件配置
importDirs(逗号分隔)
导入的任务是只读收编:删除只从列表移除、不删磁盘,媒体保留策略也不会碰它们。
数据与权限¶
| 内容 | 位置 |
|---|---|
| 任务与产物 | $DSH_HOME/data/dsh-video2text/out/<任务ID>/ |
| 任务索引 | $DSH_HOME/data/dsh-video2text/jobs.json |
| 模型缓存 | ~/.cache/video2text/hf(跨实例共享) |
| 引擎配置(含密钥) | ~/.config/video2text/config.json(600) |
| 扫码会话 | ~/.cache/video2text/chrome-profile 等 Chrome profile |
密钥只在本机配置文件里,界面默认隐藏;不向任何第三方上报使用数据。转写选「云端」时音频分片上传到配置的 ASR 服务,选「本地」不出本机。媒体默认按 14 天 / 5 GB 清理,只删媒体,文案和字幕保留。
常见问题¶
| 症状 | 原因 / 处理 |
|---|---|
| 侧栏没有「视频转文案」 | 没重启 dsh web;或 boot 日志里有 plugin tree failed to load |
| 任务一直「需要登录」 | 对应平台登录态失效:点卡片上的「扫码登录」,完成后会自动重跑 |
| 发布文案是空的 | 本地文件没有平台描述;或旧任务当时没存该字段,重跑一次即可 |
| 时间轴标着「估算」 | 没做过词级对齐。点「对齐」精修,只更新 json/srt,不重转 |
| 导出按钮不见了 | 没有逐字稿(转写失败 / 无口播)时不显示导出菜单 |
| 云端转写很慢 | 受服务端排队影响,与分片大小关系不大;可切「本地」后端 |
| 小红书批量失败 | 本地 XHS-Downloader 没起(设置里有地址),会回退 yt-dlp |
| 模型下载卡住 | 缓存在 ~/.cache/video2text/hf;换 -q4 量化模型更快 |
YouTube 的 bot 校验¶
YouTube 对无登录态请求返回 Sign in to confirm you're not a bot。社区解法是 PO token(provider 造 token + yt-dlp 插件交付)。按网络环境选:
| 网络 | 该用什么 |
|---|---|
| 家宽 / 普通出口 | PO token:起 provider + 装 bgutil-ytdlp-pot-provider 插件 |
| 机房 IP / 代理出口 | 必须 Cookie(设置 → 浏览器 Cookie 填 chrome),PO token 不绕过 IP 级限制 |
| 临时看一条 | 直接 --cookies-from-browser chrome 最快 |
适用场景与注意¶
适合需要批量处理视频内容、把链接转成文案或字幕的开发者或内容工作者。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。
插件只在 dsh 0.2.1-rc.1 上验证通过,其它版本未验证。
短结尾¶
dsh-video2text 把视频转文案的完整流程收进侧栏面板,支持云端和本地转写、时间轴对齐、多格式导出,还能直接把任务上下文交给 agent 继续加工。适合需要在 DSH 里批量处理视频内容的工作流。
- 插件目录页:https://www.skillhub.cn/plugins/vlln/dsh-video2text
- GitHub:https://github.com/vlln/dsh-video2text