🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

视频字幕转录 zeshuochen/dsh-watch-video

DeepSeek Harness
zeshuochen66 天前有提交已提供中文文档扫描:含敏感能力

抓取视频字幕并生成 Markdown 摘要

27.9/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zeshuochen/dsh-watch-video
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · search
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 66 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/5) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 3 处,展示前 3 条)
  • 执行外部命令固定命令
    src/index.ts:334
    else execFile('taskkill.exe', ['/PID', String(child.pid), '/T', '/F'], { windowsHide: true }, (error) => { if (error) child.kill('SIGKILL'); });
  • 读取本地文件
    src/index.ts:345
    return candidates.find((candidate) => existsSync(candidate)) || 'python';
  • 执行外部命令来自配置/变量
    src/index.ts:356
    const child = spawn(file, args, { cwd, shell: false, detached: process.platform !== 'win32', stdio: ['ignore', 'pipe', 'pipe'] });
扫描于 2026/11/2(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 抓取视频字幕
  • 生成Markdown摘要

README

由 DeepSeek 最新模型翻译生成
dsh-watch-video 面向 DeepSeek Harness 的字幕优先视频转录插件,使用确定性抽取式 Markdown 总结。它通过 yt-dlp 获取媒体;字幕不可用、失败或清洗后为空时,才使用 faster-whisper 的 large-v3。不调用外部 LLM。 安装 需要 Node.js 20+、Python 3.10+,并确保 yt-dlp 与 ffmpeg 在 PATH 中。运行 npm install,再运行 python -m pip install -r requirements.txt。Windows 可使用 winget install yt-dlp.yt-dlp 和 winget install Gyan.FFmpeg,也可使用系统包管理器。 运行 powershell -ExecutionPolicy Bypass -File scripts/bootstrap.ps1 会创建或复用项目 .venv、输出实际使用的 Python 可执行文件,并安装 Python 依赖;bootstrap 不会下载 Whisper 模型。
展开完整文档(README 剩余 1 节)
dsh-watch-video

面向 DeepSeek Harness 的字幕优先视频转录插件,使用确定性抽取式 Markdown 总结。它通过 yt-dlp 获取媒体;字幕不可用、失败或清洗后为空时,才使用 faster-whisper 的 large-v3。不调用外部 LLM。

安装

需要 Node.js 20+、Python 3.10+,并确保 yt-dlp 与 ffmpeg 在 PATH 中。运行 npm install,再运行 python -m pip install -r requirements.txt。Windows 可使用 winget install yt-dlp.yt-dlp 和 winget install Gyan.FFmpeg,也可使用系统包管理器。

运行 powershell -ExecutionPolicy Bypass -File scripts/bootstrap.ps1 会创建或复用项目 .venv、输出实际使用的 Python 可执行文件,并安装 Python 依赖;bootstrap 不会下载 Whisper 模型。运行 npm run doctor 可检查 Node.js、Python、yt-dlp 和 ffmpeg,只输出安装提示,不会泄露环境变量或凭证;node scripts/doctor.mjs --files-only 可执行离线的 bootstrap/依赖文件检查。显式配置的 pythonPath 始终优先;未配置时,Windows 优先使用 .venv/Scripts/python.exe,Unix 优先使用 .venv/bin/python,最后回退到 python。

模型首次下载

第一次真正触发 Whisper 回退时,faster-whisper/CTranslate2 会下载 large-v3,需要数 GB 磁盘空间。测试与 npm run pack:check 不下载模型,也不访问真实站点。默认优先 CUDA;如果 CUDA 初始化失败,scripts/transcribe.py 会自动用 CPU + int8 重试同一个 large-v3 模型。

配置

配置输出目录,并可选设置 ytDlpPath、pythonPath、transcribeScript、前置参数、device、computeType、timeoutMs(默认 15 分钟)和 outputLimitBytes(每个输出流默认 1 MiB)。staleJobAfterMs 默认 6 小时,范围为 5 分钟至 7 天,仅据明确过期的 heartbeat 恢复遗留任务;heartbeatIntervalMs 默认 30 秒,范围为 1 秒至 1 小时。Whisper 回退使用 host 进程内 FIFO 队列,由 maxConcurrentTranscriptions 控制;字幕任务不进入该队列,排队等待会使用任务超时并及时失败释放。产物保留配置 retentionDays 默认 30 天(1–3650),maxTotalBytes 默认 10 GiB(1–100 GiB);两者都必须是安全正整数。run() 保持 shell: false;超时或输出超限时会终止整个进程树:Windows 使用受控的 taskkill.exe /PID /T /F,Unix 使用 detached 进程组发送 SIGKILL,并保留子进程回退。URL 必须是 HTTP(S),不得含凭据或控制字符。maxConcurrentTranscriptions 默认 1,范围 1–4。

产物

每个任务写入 UUID 目录,包含 metadata.json、transcript.txt、summary.md;存在有效时间戳时还会生成 transcript.srt。该文件是 UTF-8 编码的 SubRip 字幕,时间格式为 HH:MM:SS,mmm --> HH:MM:SS,mmm,适合字幕播放器和后续编辑;如果没有有效时间戳,则不会生成 SRT,并会在 metadata.json 中记录原因。Whisper 模式还包含 audio.wav 与 transcript.json。工具只返回产物路径和短摘要,不把完整 transcript 塞进工具返回。不会保留原视频文件。

产物会先在目标目录写入完整 UTF-8 临时文件,再优先使用 rename 替换。Unix-like 系统在目标已存在时提供预期的原子替换;Windows 可能因目标已存在而拒绝 rename,此时插件使用兼容性的 copyFile 回退,但由于 Node 未公开 Windows ReplaceFileW 接口,不宣称严格原子覆盖。如果替换失败,插件不会先删除原目标,并会返回原始错误。

每次新任务开始前都会执行保留策略。清理会跳过当前任务、metadata.json 状态为 running 的任务、metadata 缺失或 jobId 不匹配的目录,以及 outputDir 直接子项中的符号链接。先删除超过 retentionDays 的已完成/失败任务;如果剩余产物总大小超过 maxTotalBytes,再按任务目录修改时间从旧到新删除可清理任务,直到低于上限。清理只处理 outputDir 直接下的任务目录,不跟随符号链接,也不会删除 outputDir 外部目标。

取消任务

使用 dsh_watch_video_cancel 并传入运行中任务的 jobId。取消能力只在当前 Node 进程内有效:只能取消当前进程注册的任务,metadata.json 不保存进程对象。正在运行的 yt-dlp 或 Whisper 会在 Windows 上通过 taskkill.exe /PID /T /F 终止进程树,在 Unix 上终止 detached 进程组;等待转录槽位的任务会从 FIFO 队列移除且不占用槽位。取消工具会等待清理完成,metadata 最终记录 status: cancelled 和用户取消原因,并清除媒体、transcript、summary、SRT 半成品及临时文件。已完成或已失败任务不会被后续取消请求再次终止。

查询任务

使用 dsh_watch_video_status 并传入 UUID jobId 查询单个任务,或无参数调用 dsh_watch_video_list,列出当前 Node.js 进程中的运行任务和保留的终态任务。状态摘要只包含 jobId、status、phase、createdAt、updatedAt、method、progress、message、found,不会包含 transcript、进程句柄、PID、凭证或绝对路径。除非存在可靠的有限进度值,否则 progress 为 null。不存在或已淘汰的任务返回 found: false 与 status: not_found。

支持的阶段为 queued、probing_subtitles、downloading_audio、transcribing、writing_artifacts、completed、failed 和 cancelled。当前进程按 FIFO 保留最近 1000 个 completed、failed、cancelled 终态摘要;运行任务在清理完成前单独保留。查询只读,不会启动进程或修改任务目录。先用 status/list 找到 jobId,再把它传给 dsh_watch_video_cancel;查询不会取消或重新激活任务,取消与完成仍遵守现有终态认领逻辑。

版权与责任边界

你必须自行确认对内容的访问、下载、转录和保存拥有许可,并遵守网站条款、访问控制、版权、隐私及适用法律。本插件不授予转载或再分发权,不应被用于绕过登录、付费墙、DRM 或平台限制。

验证

npm test、npm run typecheck、npm run pack:check 均不下载模型、不请求真实站点。

DSH 重启后,插件会依据 staleJobAfterMs 扫描合法任务目录,将心跳明确过期的 running/cancelling 任务标记为 interrupted,写入 stale_running_job 原因并清理不完整产物。默认阈值为 6 小时;心跳缺失、非法或未来时间会保守跳过,不会尝试恢复跨进程的实际运行状态。

子进程输出按流分别进行有界保留:stdout 保留前缀,stderr 保留末尾;限制以 UTF-8 字节为准,同时继续 drain 两个流。超时、用户取消或输出超限会清理整个进程树,并返回有界诊断信息。maxOutputBytes 优先于旧配置名 outputLimitBytes。

使用 npm run verify:pack 验收干净发布包:它会在临时目录中打包、解压并动态加载 tarball,不依赖源码目录或仓库 node_modules,不会下载 Whisper 模型,也不会访问真实视频站点。成功和失败后都会清理临时目录。
预览分享卡片长什么样 ↓zeshuochen/dsh-watch-video
分享 · DeepSeek Harness Hub
zeshuochen/dsh-watch-video

抓取视频字幕并生成 Markdown 摘要

回到顶部