DSH Plugin MarketA community catalog for DeepSeek Harness plugins

dsh-bili-watch

Verified Tools & capabilities ★ 15 0.4.8

把 B 站视频读成文本给 AI 用:元数据、评论、弹幕、字幕、本地 ASR 转写、抽帧 OCR;支持 b23.tv 短链与 av 号,抽帧缓存目录可换。本地跑不上传、内容一致性检查、二次读瞬时、为 AI 设计落盘+摘要。

What it is

把 B 站视频读成文本给 AI 用:元数据、评论、弹幕、字幕、本地 ASR 转写、抽帧 OCR;支持 b23.tv 短链与 av 号,抽帧缓存目录可换。本地跑不上传、内容一致性检查、二次读瞬时、为 AI 设计落盘+摘要。

How to install

Run this in the DSH web profile, then refresh the page.

$ dsh plugin --profile web add dsh-bili-watch@0.4.8

DSH versions accepted

>=0.2.0-rc.2 <0.3.0-0

Author and traction

Sacredbluedragon · ★ 15 · Updated 2026-11-07

About this plugin

dsh-bili-watch

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

为什么用它

  • 本地跑不上传:ASR 转写 + OCR 抽帧全在本机,不依赖云 API、不花钱
  • 防字幕诱饵:语速异常或字幕自称「实验/钓鱼」即判可疑;关键词命中率只在语速也异常时才作补充;可疑时加 --verify 抽 5 帧 OCR 比对画面(不加只提示一句)
  • 二次读瞬时:缓存目录 + 文件锁,同一视频二次读取秒出
  • 为 AI 设计:manifest 落盘 + 摘要输出,agent 直接消费不用再解析

一条链接进来之后

给它一个链接,它按成本从低到高找文本:官方字幕 → 本地转写 → 画面认字。字幕几秒就有;没有字幕才下模型转写;连音轨都没有才逐帧认画面。哪一级没成都会写进报告的「来源」行,不会把截图的字当成台词。

想改代码、想知道模块怎么分层,见文末[「模块架构」](#模块架构)。

特性

  • 支持 b23.tv 短链、BV 号、av 号及通用 URL(经 yt-dlp)
  • 降级链:AI 字幕 → 本地 ASR → 抽帧 OCR → 读图,四级全 miss 时退出码为 1
  • 匿名可用:元数据、评论、弹幕、搜索、热榜无需登录
  • 可选依赖:ffmpeg(抽帧)、Python venv(ASR/OCR)、faster-whisper(转写模型)
  • Web 面板:依赖管理、扫码登录、缓存清理、18 项运行时参数可调

安装

DSH 插件

dsh plugin --profile web add dsh-bili-watch

重启 DSH 后生效。DSH ≥ 0.2.0-rc.2 自动写入 dsh.profile.bundles;更早版本需手动在 profile package.json 的 dsh.profile.bundles 数组追加 "dsh-bili-watch"。

> 装完重启即可用。 本插件的 bundle patch 不带 disabled,装进 profile 的 dsh.profile.bundles 后重启 DSH 就生效,命令直接存在。

>

> 0.3.1 及更早的版本不是这样:包在装的那一刻就被写进 dsh.profile.bundles(reconcile() 干的),所以插件页显示「已启用」,但实际不加载——因为层里那行 disabled: true 是插件页开关碰不到的位置。症状是「显示已启用但命令不存在,点开关也没用」。那个 disabled 是 0.2.17 应急修 bug 时误加的,带了 7 个版本,0.3.2 已去掉。

> 从旧版本升级的注意:reconcile() 只在「新增依赖」时跑,所以以前手动从 dsh.profile.bundles 删过包名的人,pnpm update 到 0.3.2 之后包名不会自动补回来,需要重跑一次 dsh plugin --profile web add dsh-bili-watch。

验证:dsh --profile web --dump-config 输出中可检索到 dsh-bili-watch。

亦可直接放入 profiles//node_modules/dsh-bili-watch。

插件依赖 @deepseek-ai/dsh-tools(peer, optional)。缺失时 bili_watch 工具不注册,/bili 命令与面板仍可用。

CLI 全局安装

npm i -g dsh-bili-watch
bili-watch view BV1EPnG6DEJC

或 clone 后直接运行:

node tools/look.mjs view BV1EPnG6DEJC

用法

命令一览

| 命令 | 说明 |

|---|---|

| view | 元数据 + 简介 + 热评。不下载、不依赖 ffmpeg,匿名可用 |

| peek | 元数据 + 热评 + 5 帧画面。先取 B 站官方截帧接口,不下视频;取不到才回落下载 360p 抽帧(约 1 MB/min);OCR 环境就绪时顺带识别。仅 B 站 |

| sub [--format srt\|json\|md\|txt] [--out ] | AI 字幕。--format 输出 SRT / JSON(含时间戳)/ Markdown(含跳转链接)/ 纯文本 txt。需登录 |

| comments [N] | 评论区,默认按热度排序 |

| asr | 本地 ASR 转写,附「可信 / 疑似幻觉」判定 |

| frames [--step ] [--ocr] | 抽帧;--ocr 附带画面文字识别 |

| ocr [--step ] | 抽帧并 OCR |

| text [--format json\|md] | 四级降级链:字幕 → 转写 → 抽帧 OCR → 读图。全 miss 退出码 1 |

| sheet [--grid 3x3] [--cues] | 均匀抽帧拼图,默认 9 帧;--cues 每格下方附该时段台词 |

| substrip [--step ] | 底部字幕竖拼 |

| danmaku | 弹幕热区(按时间桶统计峰值) |

| local [--ocr] [--frames] | 本地视频文件走降级链(从转写层起)。仅 CLI |

| search <关键词> [--days N] [--limit 10] [--order pubdate\|click] | 视频搜索。--days 不传或传 0 表示不限时间;传了则只留最近 N 天发布的,并按播放量降序(最多抓 3 页,结果仍按 --limit 截断) |

| hot [--limit 10] | 综合热门榜 |

| login [--check] [--poll] [--key ] | 扫码登录。--check 校验凭证有效性;--key 需配合 --poll |

| clean | 清空缓存根。任务进行中(锁文件存活)时拒绝并返回非零退出码 |

| help | 打印完整用法(所有命令、全部参数) |

` 接受 BV 号、b23.tv` 短链、av 号或 URL。

通用参数

| 参数 | 类型 | 默认值 | 说明 |

|---|---|---|---|

| --format | enum | — | 输出格式。text / sub / comments / danmaku / local 落盘时必须配合此参数,单独指定 --out 返回退出码 1 |

| --out | string | — | 落盘路径,相对当前工作目录(cwd),目录不存在时自动创建。text / sub / comments / danmaku / local 写文件;frames 用它指定输出目录。sheet / ocr / substrip 固定写缓存目录,不收 --out |

| --ffmpeg | string | — | ffmpeg 可执行文件路径 |

| --cred | string | — | 凭证 JSON 路径,格式 {sessdata, bili_jct, buvid3, buvid4} |

Compare in this category

The five most-starred plugins in the same category.

PluginAuthor StarsVersionUpdated
Mole tw93 74.5K 0.0.0 2026-11-10
DeepSeek-Reasonix esengine 36.1K 0.0.0 2026-11-10
dsh-desktop anywhere-labs 35.6K 0.4.1 2026-11-06
awesome-dsh-plugin awesome-dsh-plugin 24.1K 0.1.0 2026-11-10
dsh-market dsh-market 11.8K 1.73.17 2026-11-09