Back to directory

dsh-bili-watch

In a curated listMaintenance: Active

sacredbluedragon/dsh-bili-watch

Reads Bilibili videos into structured metadata, comments, danmaku, subtitles, local ASR, and frame OCR for DSH.

View on GitHub
$ dsh plugin --profile web add dsh-bili-watch

17

stars

2

forks

JavaScript

Language

MIT

License

2026-10-19

Created

2026-11-11

Last push

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

  1. 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

  2. 02

    Restart DSH — from 0.3.2 the plugin is enabled right after the restart, no plugin-page toggle needed

  3. 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

DSH integrationNative runtime

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 directory
  • Four-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 miss
  • Local 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 uploaded
  • Frame 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 automatically
  • Web 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.
2026-10-192026-11-10v0.4.10

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.

08Data and sources

  • Author-claimedgithub.com9fc91781ad57…

    DSH 插件 / CLI 工具:把 B 站视频解析成模型可消费的结构化内容(元数据、评论、弹幕、AI 字幕、本地 ASR 转写、抽帧 OCR)。

  • Author-claimedgithub.com9fc91781ad57…

    上排是 `index.js` 里的三个注册点,它们都只做参数整形,最后 spawn 同一个子进程;业务逻辑全在 `tools/look.mjs`,npm bin 与插件调的是同一个文件。

  • Author-claimedgithub.com9fc91781ad57…

    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.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.