dsh-bilibili:为 DSH 增加 Bilibili 视频文本与关键帧分析

前言

DSH 的理念是「一切皆插件」:工具能力可以拆开安装,再组合进 agent 工作流。一个具体痛点是:用户发来 Bilibili 链接时,agent 不能直接把视频交给模型处理,需要先把文本、评论、弹幕和必要画面拆出来。

dsh-bilibili 是为 DSH 提供的插件,维护者为 CZX2244,许可证为 MIT。它给 agent 增加 bilibili_extract 工具,用于分析 Bilibili 视频:先提取文本,再按需捕获关键帧,最后生成摘要。

这是什么

下面介绍它在 DSH 里的位置。

dsh-bilibili 是一个 DeepSeek Harness tool plugin。它的输入是 Bilibili 视频链接,输出是结构化分析和摘要。用户可发送 bilibili.com/video/BV...b23.tv 短链或裸 BV id,模型在会话中调用 bilibili_extract 进行分析。

核心功能

文本提取

插件提供完整文本提取能力,包括:

  • 元数据
  • 带时间戳转写
  • 热门评论及回复
  • 弹幕

对于没有字幕轨道的视频,插件可自动转录。默认使用 Bijian ASR,也可切换 sherpa-onnx 或 whisper.cpp 本地引擎。

关键帧捕获

插件支持按需捕获关键帧,已核实的能力包括:

  • 自动选帧:scene-change detection、even-interval backfill、sharp-frame preference
  • 可选帧视觉描述:本地 Ollama / llama.cpp,或 OpenAI-compatible vision API
  • 下载优先捕获:符合条件的视频(≤30 min / ≤800MB)先下载到本地,失败时回退远程逐帧提取

两遍工作流

推荐先做文本,再做画面:

1、调用 bilibili_extract 读取转写;
2、agent 根据转写判断需要画面的时刻;
3、带 timestamps 再次请求关键帧。

这样可以让第一遍保持轻量,第二遍再补齐视觉信息。

输出模板与辅助工具

插件提供可替换输出模板。默认使用 templates/summary.md,也可以使用 templates/timeline.md

除了 bilibili_extract,插件还注册了:

  • bilibili_login:QR-code login
  • bilibili_doctor:环境检查

运行时包含以下健壮性处理:

  • Bilibili 412 指数退避
  • 登录字幕场景给出 SESSDATA 提示
  • ffmpeg pipe-free

安装与启用

前置条件是:

  • Node 18+
  • ffmpeg on PATH
  • pnpm

安装命令如下:

dsh plugin --profile web add git+https://github.com/CZX2244/dsh-bilibili

经过上面的步骤,bilibili_extract 会成为 agent 可调用的工具。

典型用法

两遍调用

先只提取文本:

bilibili_extract(url, extract_frames: false)

agent 扫描转写后,用固定格式列出需要画面的时刻:

[建议抓帧] mm:ss reason

再根据这些时间点发起第二遍请求:

bilibili_extract(url, timestamps: <按上一轮 [建议抓帧] 列出的时间点>)

这里的要点是:第一遍拿文本,第二遍补关键帧。

切换模板

在 config 中设置模板路径:

summaryTemplate: 'C:/path/my-template.md'

如果自定义模板路径无效,插件会回退到 bundled template。

重新检查环境

需要按需检查环境时,使用 bilibili_doctor。如果依赖或配置刚变化,可用 refresh=true 强制新探测:

bilibili_doctor(refresh: true)

适用场景与注意

适合在 DSH agent 中处理 Bilibili 链接:把视频拆成转写、评论、弹幕,并在必要时刻补充关键帧或帧描述。

使用前请注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 许可证为 MIT。
  • 插件不捆绑第三方二进制或模型;它调用的开源项目和服务见 THIRD_PARTY_NOTICES.md
  • ffmpeg 缺失时,视频下载和帧捕获会被跳过。
  • 本地 ASR 引擎未就绪时,会在下载音频流前跳过。
  • Bilibili 主 API 不可达会标记为插件不可用;本地 ASR 引擎也依赖 playurl 获取音频流。
  • 报告不包含原始凭据,仅显示 SESSDATA 有效性。
  • 捕获帧时间可能因关键帧间距、场景对齐和锐度优化偏离请求时间约 ±0.5s 或更多。

结尾

dsh-bilibili 提供的是一条可落地的处理路径:先文本,再关键帧,再按模板输出摘要。

GitHub 仓库:https://github.com/CZX2244/dsh-bilibili

DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系;已核实资料未给出目录页 URL,因此本文不列出具体目录页链接。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜