MIT-licensed DSH plugin that parses Bilibili videos into structured, model-ready content — local ASR and OCR included, with a credential file you must keep private.
DSH integration
Native runtime
Author-claimed
Safety audit
Unaudited
Last verified
2026-11-13
License
MIT
01What can it help you accomplish?
Let the agent read a Bilibili video without watching it
Structured metadata, description, hot comments, danmaku peaks, subtitles or a local transcript, and OCR'd frame text — written to a manifest plus a summary the model can consume directly
DSH users who want the agent to reason about a Bilibili video's content instead of a bare link
Get text out of a video that has no usable subtitles
A four-step fallback chain — AI subtitles, local ASR, frame OCR, then plain frame reading — that reports which level answered and exits 1 when all four miss
People summarising talks, tutorials or commentary where the official subtitle track is missing or suspicious
Manage the local dependencies and the Bilibili login from the DSH panel
Per-dependency readiness with real paths and sizes, one-click installs, QR-code login, cache cleanup and 18 runtime parameters
Users who would rather click in the panel than assemble ffmpeg, Python venvs and a credential file by hand
02How to install into DeepSeek Harness
Prerequisites
- Node.js ≥ 22
- A DSH profile you can modify — the README uses `--profile web`
- Optional per capability: ffmpeg for frames, Python 3.10–3.14 with faster-whisper for ASR, rapidocr_onnxruntime for OCR, yt-dlp for non-Bilibili URLs
Installation steps
- 01
Run `dsh plugin --profile web add dsh-bili-watch` — DSH ≥ 0.2.0-rc.2 writes it into `dsh.profile.bundles` automatically; older versions need the name added by hand in the profile `package.json`
$ dsh plugin --profile web add dsh-bili-watch
- 02
Restart DSH — from 0.3.2 the plugin is enabled right after the restart, no plugin-page toggle needed
- 03
Optionally install the heavy dependencies with `node scripts/fetch-deps.mjs all`, or one by one from the panel
Verify the integration
- `dsh --profile web --dump-config` output contains `dsh-bili-watch`
- The plugin page card opens a panel with dependency status, QR login, cache cleanup and runtime parameters
Rollback
- `dsh plugin --profile web remove dsh-bili-watch`, then restart DSH
- Dependencies and config live outside the package in `$DSH_HOME/bili-watch/deps`, so uninstalling does not delete them
- The login credential `$DSH_HOME/bili-watch/credential.json` is also outside the package — delete it manually if you want it gone
03DSH integration and capability boundaries
Native DSH plugin bundle: `index.js` registers a `bili_watch` tool, a `/bili` command and a Web panel, all shaping arguments and spawning the same `tools/look.mjs` subprocess the npm CLI uses
Anonymous Bilibili reading (view / comments / danmaku / search / hot)
a BV id, `b23.tv` short link, av id or URL→metadata, description, hot comments, danmaku peaks bucketed by time, search results or the trending list
calls `api.bilibili.com` and `comment.bilibili.com` without a credentialcaches subtitles and comments under the cache directoryFour-step text fallback chain (`text`)
a video target, optionally `--fast` to skip local transcription or `--asr-max` to gate long videos→subtitles, a local transcript, OCR'd frame text or frame descriptions, with the level that answered recorded in the source line
downloads the 360p stream when frame extraction is neededexits with code 1 when all four levels missLocal ASR with hallucination checks
the video's audio track→a transcript plus a trust verdict — trustworthy, or suspected hallucination when VAD voice is under 0.5 s, repeated text dominates or `no_speech_prob` is high
runs the faster-whisper venv on your machine; nothing is uploadedFrame extraction, sheets and OCR
`frames`, `sheet` or `substrip` with `--step`, `--at` or `--grid`; `--ocr` adds text recognition→frames, a 9-frame contact sheet with optional cue lines, a subtitle strip, or OCR'd on-screen text
needs ffmpeg; missing it fails with an install hintwrites downloads into `cache/frames-dl` and `cache/audio-dl`, which `clean` does not remove automaticallyWeb panel with dependency management and QR login
the plugin page card in DSH→dependency readiness, one-click installs, QR-code login, cache cleanup and 18 tunable runtime parameters
writes the Bilibili login credential to `$DSH_HOME/bili-watch/credential.json`dependency downloads stop if DSH exits
04Who is it for? When not to use it?
Good for
- DSH users who want the agent to reason about a Bilibili video's content instead of a bare link
- People summarising talks, tutorials or commentary where the official subtitle track is missing or suspicious
- Users who would rather click in the panel than assemble ffmpeg, Python venvs and a credential file by hand
Not for
- Signing in with a phone scan stores a Bilibili login credential in `$DSH_HOME/bili-watch/credential.json`, next to (not inside) the cache root. That file is equivalent to an account login state: never share it or commit it, do not delete the parent directory when clearing the cache, and note that uninstalling the plugin does not remove it.
- There is no built-in rate limiting, so batch use needs your own sleep, and generic URLs handled through yt-dlp are not filtered for internal addresses — never point it at an intranet service.
- Subtitles and comments are third-party user content: the plugin flags injection-looking lines and marks long text, but the README states the guard is a prompt-and-marking layer, not a security boundary — do not grant extra permissions because a transcript asked for them.
05Compatibility, maintenance and safety notes
- Signing in with a phone scan stores a Bilibili login credential in `$DSH_HOME/bili-watch/credential.json`, next to (not inside) the cache root. That file is equivalent to an account login state: never share it or commit it, do not delete the parent directory when clearing the cache, and note that uninstalling the plugin does not remove it.
- The Bilibili side is read-only — no likes, comments, danmaku posting or watch history — and only AI subtitles need a login; metadata, comments, danmaku, search and the trending list work anonymously.
- There is no built-in rate limiting, so batch use needs your own sleep, and generic URLs handled through yt-dlp are not filtered for internal addresses — never point it at an intranet service.
- Subtitles and comments are third-party user content: the plugin flags injection-looking lines and marks long text, but the README states the guard is a prompt-and-marking layer, not a security boundary — do not grant extra permissions because a transcript asked for them.
MIT · README evidence only, latest release v0.4.10, safety not audited
06Frequently asked questions
How do I install dsh-bili-watch into DeepSeek Harness?
Run `dsh plugin --profile web add dsh-bili-watch` and restart DSH. DSH 0.2.0-rc.2 and later write the name into `dsh.profile.bundles` for you; older versions need `"dsh-bili-watch"` appended by hand in the profile `package.json`. Verify with `dsh --profile web --dump-config` — the output should contain `dsh-bili-watch`. From 0.3.2 the plugin is enabled as soon as you restart, no plugin-page toggle required.
Where does the Bilibili login credential go, and how should I treat it?
The panel's QR login writes it to `$DSH_HOME/bili-watch/credential.json`, a sibling of the cache root. The README is explicit that this file equals an account login state: never send it anywhere or commit it to a repository. When clearing the cache, do not delete the parent directory, and note that uninstalling the plugin does not remove the credential — delete it manually if you want it gone.
What does the plugin write into the DSH workspace or my home directory?
Downloads, frames, sheets and transcripts live under `$DSH_HOME/bili-watch/cache` (or `BILI_WATCH_CACHE`), and dependencies plus config live in `$DSH_HOME/bili-watch/deps` outside the package — which is why reinstalling does not wipe the two venvs and the transcription model. `clean` only deletes entries it can prove are its own; it never removes a directory tree by name.
Do I need ffmpeg, Python or a Bilibili account?
Only for the matching capability. Metadata, comments, danmaku, search and the trending list work anonymously with no extra dependency; frames need ffmpeg; local ASR needs Python 3.10–3.14 with faster-whisper; OCR needs rapidocr_onnxruntime; non-Bilibili URLs need yt-dlp. Anything missing is skipped and the fallback chain drops to the next level instead of failing the whole run.
Why does it warn about subtitles being untrusted?
Subtitles and comments are user-generated third-party content, so the plugin treats them as material, not instructions: it flags injection-looking lines, adds a `_untrusted` field in JSON output and writes a wrapped copy for the model to read. The README also says plainly that this is a prompt-and-marking layer, not a security boundary — do not hand out permissions just because a transcript asks.
07Related DSH workflows
modlens
by liustack
Vision bridge for text-only models: paste an image, get structured JSON evidence (OCR, layout, semantics).
dsh-image-gen
by shanliuling
Adds in-chat multimodal image generation via a `generate_image` tool with multi-provider support (Gemini/OpenAI/Seedream), interactive preview, copy/download, and session-attached results.
dsh-vision-router
by ysr666
Eyes for text-only DeepSeek Harness agents: built-in free vision chain (no key) + pixel-level vision tools (Q&A, grounding, crop, pixel diff, colors, OCR, SVG trace, cutout, screenshots). One-command install, no Python, image turns work like ordinary tool-calling turns.
agent-vision-toolkit
by anionex
Vision toolkit and skills that give text-only LLMs eyes — multi-image understanding, image Q&A, OCR, frontend UI restoration and GUI automation, with optional agent integration.
08Data and sources
DSH 插件 / CLI 工具:把 B 站视频解析成模型可消费的结构化内容(元数据、评论、弹幕、AI 字幕、本地 ASR 转写、抽帧 OCR)。
上排是 `index.js` 里的三个注册点,它们都只做参数整形,最后 spawn 同一个子进程;业务逻辑全在 `tools/look.mjs`,npm bin 与插件调的是同一个文件。
dsh plugin --profile web add dsh-bili-watch
This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-13. Found an error? Submit a correction.
Best DeepSeek Harness Plugins
Twelve plugins worth installing first — picked from the whole catalog, across every category.
