Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心

dsh-video-understand

字幕优先的视频转录与确定性抽取式 Markdown 总结;字幕不可用时回退到 faster-whisper `large-v3`。

zeshuochen @zeshuochen ⬇ 1 ★ 0 main

安装

dsh plugin --profile web add github:zeshuochen/dsh-video-understand
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

字幕优先的视频转录与确定性抽取式 Markdown 总结;字幕不可用时回退到 faster-whisper `large-v3`。

该插件未提供要点说明,请参考仓库 README。

  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/zeshuochen/dsh-video-understand
许可证未标注(见仓库)
主要语言main
下载量1
GitHub 星标0
最近推送2026-08-26
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-video-understand

Subtitle-first video transcription and deterministic extractive summaries for DeepSeek Harness. It uses `yt-dlp` for media access and faster-whisper `large-v3` only when subtitles are unavailable or unusable. No external LLM is called.

## Install

Requirements: Node.js 20+, Python 3.10+, `yt-dlp`, and `ffmpeg` on PATH. Run `npm install`, then `python -m pip install -r requirements.txt`. On Windows, `winget install yt-dlp.yt-dlp` and `winget install Gyan.FFmpeg` are convenient, or use your platform package manager.

Run `powershell -ExecutionPolicy Bypass -File scripts/bootstrap.ps1` to create or reuse the project `.venv`, print the Python executable it uses, and install Python requirements. Bootstrap does not download the Whisper model. Run `npm run doctor` to check Node.js, Python, `yt-dlp`, and `ffmpeg`; it prints installation hints without exposing environment variables or credentials. Use `node scripts/doctor.mjs --files-only` for an offline bootstrap/dependency file check. The configured `pythonPath` always wins; without it, the plugin prefers `.venv/Scripts/python.exe` on Windows or `.venv/bin/python` on Unix, then falls back to `python`.

## First model download

The first real Whisper fallback downloads `large-v3` through faster-whisper/CTranslate2 and needs several GB of disk space. Tests and `npm run pack:check` never download models or contact a video site. CUDA is preferred by default; if CUDA initialization fails, `scripts/transcribe.py` retries `large-v3` on CPU with `int8`.

## Configuration

Configure the output directory and optionally `ytDlpPath`, `pythonPath`, `transcribeScript`, prefix arguments, `device`, `computeType`, `timeoutMs` (default 15 minutes), and `outputLimitBytes` (default 1 MiB per stream). Whisper fallback uses the host-process FIFO queue controlled by `maxConcurrentTranscriptions`; subtitle jobs do not enter this queue, and queue waits time out with the job timeout. `run()` keeps `shell: false`; timeout and output-limit cleanup terminate the whole process tree: Windows uses controlled `taskkill.exe /PID /T /F`, while Unix uses a detached process group and group `SIGKILL` with a child fallback. URLs must be HTTP(S) without credentials or control characters.

| Setting | Default | Valid range |
| --- | ---: | --- |
| `timeoutMs` | 900000 | 1 to 86400000, safe integer |
| `outputLimitBytes` | 1048576 | 1 to 67108864, safe integer |
| `maxDurationSeconds` | 3600 | 1 to 86400, safe integer |
| `maxFileBytes` | 524288000 | 1 to 10737418240, safe integer |
| `maxOutputBytes` | 1048576 | 1 to 67108864, safe integer |
| `retentionDays` | 30 | 1 to 3650, safe integer |
| `maxTotalBytes` | 10737418240 | 1 to 107374182400, safe integer |
| `maxConcurrentTranscriptions` | 1 | 1 to 4, safe integer |

Invalid resource values fail before a job directory or external process is started. Whisper requires `transcript.json` to be an object with non-empty string `text`; when present, `segments` must be an array whose entries contain numeric `start`/`end` and string `text`.

## Artifacts

Each job is stored under a UUID directory containing `metadata.json`, `transcript.txt`, and `summary.md`; Whisper jobs also contain `audio.wav` and `transcript.json`. The tool returns artifact paths and a short transcript preview, never the complete transcript. Original video files are not retained.

Before each new job, the plugin applies the retention policy. It skips the current job, jobs whose `metadata.json` status is `running`, directories with invalid or mismatched metadata, and top-level symbolic links. Completed or failed jobs older than `retentionDays` are removed first; if the remaining artifacts exceed `maxTotalBytes`, eligible jobs are then removed from oldest to newest until under the limit. Cleanup only removes job directories directly inside `outputDir` and never follows symbolic links, so paths outside `outputDir` are protected.

## Copyright and responsible use

You are responsible for permission to access, download, transcribe, and retain material. Respect site terms, access controls, copyright, privacy, and applicable law. This plugin grants no redistribution rights and must not be used to bypass authentication, paywalls, DRM, or platform restrictions.

## Verify

`npm test`, `npm run typecheck`, and `npm run pack:check` run without model downloads or real-site requests.

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。