Introduction¶
Developers using DSH often face repetitive tasks like “checking a batch of content every day and picking out what’s worth watching.” Manually scrolling through Bilibili and organizing the results afterward is tedious; delegating it to a script doesn’t guarantee quality. dsh-bili-scroll decomposes this into a single duty cycle within the plugin: it searches for videos from the last few days based on keywords, reads the subtitle text line by line to judge, writes a Markdown daily report for the worthy ones, and leaves a comment and @ mentions you for especially good ones.
Maintained by qinglang-fenglin, categorized as “Network Tools,” this is a local modification of c1overzz/dsh-bili-scroll 2.4.0. Below is an introduction to its origin, capabilities, and installation.
I. What is it¶
One-sentence positioning: A DSH plugin that turns “browsing Bilibili once a day and generating a report” into a scheduled task.
- Maintainer: qinglang-fenglin
- Category: Network Tools
- License: MIT (the built-in
vendor/bilibili-mcp/has a separate License) - Version:
2.4.0in package.json - Requirements:
dsh ≥ 0.1.7-rc.1,node ≥ 22
Please note that this is a fork. The upstream is c1overzz/dsh-bili-scroll 2.4.0. The main changes in this repository are: desktop DSH path detection, support for custom OpenAI-compatible model providers (e.g., SenseTime TokenPlan), and the settings page no longer hardcodes the provider list. The README explicitly asks to install this fork and not the old version available on npm.
Additionally, the plugin’s built-in “One-click Upgrade” still points to the upstream repository; upgrading will overwrite the changes made to this fork. The README suggests reviewing PATCH-NOTES.md before upgrading.
II. What it does¶
The core capability has only one main thread; everything else revolves around this thread.
- Search for videos from the last few days based on keywords you fill in; if keywords are empty, it uses the built-in sets.
- Read the subtitle text line by line to judge, ignoring summaries. For demo videos without subtitles, it will first extract a few frames from Bilibili’s storyboard to check the visual content. It only skips if it truly cannot read the content, or if you have enabled “Local Transcription”.
- Write a Markdown report to
out/<date>.md. Each entry contains “Why it’s worth watching” and “One sentence about it”. The paragraph starts fixed as### BV号. When the plugin counts how many items were picked today, it counts these title lines. - When “Auto Comment” is enabled, send a comment and @ mention you once per round. The default is 1 per round, adjustable up to 20 per round in the settings page.
- Can run automatically during peak and valley hours (DeepSeek’s discount periods) to save tokens.
III. Privacy and Permission Boundaries¶
This section deserves special mention because it determines whether this plugin can be safely used with “Auto Comment” enabled.
- No privacy leakage: Account, machine paths, things you talked about—none of this enters the comment.
- Controlled commenting: Send comments according to the count set in settings, comment the same video only once, no spamming, no arguing.
- No fabrication: Do not fabricate uncertain things; write “not found” truthfully in the report.
These are hard-coded into the prompts, not relying on self-discipline.
IV. Installation and Activation¶
Before installation, check a prerequisite: the machine must have Python 3.10+ or uv; having one is enough. The plugin will download dependencies on first use. The README explains that if neither is present, the plugin will download its own uv into its home directory (approx. 15 MB, no admin rights needed, no need to add to PATH). If antivirus blocks this download, just add %USERPROFILE%\.dsh\bili-duty\bin\ to the whitelist.
Installation command (from the original README):
# 从本仓库安装(需要机器上装了 git;pnpm 10 可能拦它的构建脚本)
dsh plugin --profile web add github:qinglang-fenglin/dsh-bili-scroll
After installation, you must restart dsh once because the plugin is assembled at the bundle layer. It won’t take effect without a restart, nor will it report an error.
After restarting, go to “Settings → Bilibili Scrubbing” (or “Bilibili Duty”), and do two steps for the first use:
- Click “Install Main Dependencies”. The plugin creates a standalone venv in its home directory and installs
bilibili-api-python/aiohttp/mcp<2/qrcode. Usually takes a few seconds with a domestic mirror, progress is written toinstall.log. - Click “Scan QR Code to Login”, scan the code on the page with the Bilibili app. When confirming, select the “Remember me / Long term” option; if you select 24 hours, you’ll need to rescan the next day. Credentials are stored only locally at
<DSH_HOME>/bili-duty/bili_credential.json, not uploaded anywhere.
V. How to use the Settings Page¶
Settings are divided into four tabs; it is recommended to only look at “Daily” for the first time.
| Tab | Main Content |
|---|---|
| Daily | Peak/valley auto-scrub toggle, max number to pick per day, list of videos scrubbed |
| Preferences | Persona prompt, keywords to follow, favorites where auto-saved items go, how detailed the daily report is |
| Interaction | Auto comment and @ mention you, reply to comments, delivery method, who to send DMs to, DMs bidirectional |
| Advanced | Install main dependencies / Test / Check updates / Scan QR code to login, copy diagnostic info, environment check, home directory |
The config file is at <DSH_HOME>/bili-duty/config.json; changes made on this page take precedence.
It is worth noting that “Auto comment and @ mention you” is disabled by default. The README explicitly states a rule: do not turn this switch on for the user; that is using the user’s account. It should be enabled only if the user fills in “Who to @” in the settings themselves.
VI. How it runs¶
Inside the plugin, a Python MCP (bilibili-mcp, built-in) starts up and registers its capabilities as DSH tools. When the time comes, a headless dsh session starts, handing over prompts/duty.md (duty charter) and the day’s settings to it. The working directory for that round is the plugin’s own home directory. Your filled AGENTS.md is read in and inlined into the prompt, so it speaks according to your settings.
This round doesn’t have access to all tools: by default, only six read-only ones are given (search video / read subtitle / read comment / view video info / view cover / view video frames). Only if “Auto Comment” or “Reply Comment” is enabled is an additional one to send comments added. Capabilities like uploading videos, posting dynamic status, private messaging, and scraping the whole site are never registered; the model can’t even see their names.
Starting from 2026-10-24, that round also runs on a dedicated profile bili-duty, with no file system, no commands, no network, and paths are fixed by the plugin, not accepting path parameters.
VII. Check these five things first if it won’t install or gets stuck¶
The README lists issues users have actually encountered in order:
- “Auto Run” gets stuck on the desktop version (DSH NEXT / 0.2.x). First use “Run a round now” in the settings page to run manually; that one is stable.
- “Install Dependencies” is stuck, or no QR code appears during scanning—highly likely due to version 0.1.0. Run
dsh plugin --profile web add dsh-bili-scrollto upgrade. If you don’t want to upgrade, an emergency command:<Home>\.venv\Scripts\python.exe -m ensurepip --upgrade, then click “Reinstall Main Dependencies” again. - It can’t download
uv(this link often fails on desktop versions). Place a copy ofuv.exein<Home Directory>\bin\; the plugin will use that copy and skip the download. - “Local Transcription” is two-step: just turning on the switch isn’t enough, you also need to click “Install Transcription Dependencies” below. If not installed, videos without subtitles will be skipped, and the report will write “Skipped N items due to no subtitles”.
- On desktop, after installation, “Bilibili Scrubbing” doesn’t appear in the settings page at all, and the log only shows
1 entry did not activate … failed to import—this is a bug on desktop versions 0.1.3 and earlier. The two packages the host partially imports are optional peers, and the desktop profile doesn’t install them. This has been fixed since 0.1.4; upgrade once:
dsh plugin --profile desktop add dsh-bili-scroll
VIII. Who is it for, and reminders¶
Suitable for DSH users who want “automatically filtering content and generating reports,” especially those willing to modify keywords and persona prompts themselves. If you care about token costs, the peak/valley auto-run switch is worth turning on. If you just want to check occasionally, “Run a round now” in the settings page is enough.
Two reminders. First, the plugin runs with the permissions of the current dsh process; it is recommended to review the source code and license before installing. Second, this is a community-maintained fork, licensed under MIT, with no official affiliation to DeepSeek / Huanfang; the plugin’s category on the community directory page is “Network Tools”.
Conclusion¶
Its value lies in bringing the “Bilibili Scrubbing + Daily Report” workflow into a single plugin. Judgment of quality comes from reading the original subtitle text rather than titles, and the output is a directly viewable Markdown report. If you want zero-config automation, it’s not exactly worry-free; you have to go through the initial dependency installation and login. If you are willing to do the initialization, the daily screening round afterwards is automatic.
Directory Page: https://www.skillhub.cn/plugins/qinglang-fenglin/dsh-bili-scroll
GitHub: https://github.com/qinglang-fenglin/dsh-bili-scroll