DeepSeek Harness Plugin

zeshuochen/dsh-watch-video

Stars ★ 2 Category Voice & Audio Added 2026-08-27

Subtitle-first video transcription with SRT export, cancellable job controls, and a faster-whisper large-v3 fallback when subtitles are unavailable.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:zeshuochen/dsh-watch-video

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

中文文档 | Full Chinese documentation

Subtitle-first video transcription for DeepSeek Harness. It uses subtitles when available, falls back to faster-whisper large-v3, and writes transcript, SRT, summary, and metadata artifacts without retaining the original video.

Features

  • HTTP(S) video input through yt-dlp.
  • Subtitle-first processing with Whisper fallback.
  • SRT, text, JSON, Markdown summary, and metadata artifacts.
  • Cancellable jobs with status and list tools.
  • Windows, Linux, and macOS support with process-tree cleanup.
  • No external LLM calls and no original-video retention.
  • Stale running jobs become interrupted after restart; the default staleJobAfterMs is 6 hours, and ambiguous heartbeats are skipped conservatively.

Child-process output is bounded independently per stream: stdout keeps a prefix and stderr keeps a tail, with limits measured in UTF-8 bytes while both streams continue draining. Timeout, cancellation, and output-limit termination clean the entire process tree and return bounded diagnostics. maxOutputBytes takes precedence over the legacy outputLimitBytes name.

Requirements

Node.js 20+, Python 3.10+, yt-dlp, and ffmpeg. Install Node and Python dependencies, run scripts/bootstrap.ps1, then npm run doctor. The first real Whisper fallback downloads the large-v3 model.

Tools

  • dsh_watch_video
  • dsh_watch_video_status
  • dsh_watch_video_list
  • dsh_watch_video_cancel

Verification

npm run verify:pack

This clean-package check runs entirely offline: it does not download a Whisper model or access real video sites.

Job status and cancellation are process-local. See README.zh.md for full configuration and platform details.

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.