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,因此本文不列出具體目錄頁鏈接。

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

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

小夜