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。
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 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)及插件作者均无隶属或背书关系。