前言¶
在 DeepSeek Harness(DSH)裏做個人知識庫時,常見做法是把視頻裏的口述內容整理成可檢索的 Markdown。抖音分享頁和接口風控較重,通用下載工具(例如 yt-dlp 的抖音提取器)往往難以穩定拿到元數據。維護者 KunWu1980 的 dsh-douyin-kb(GitHub:KunWu1980/dsh-douyin-kb)把「人工提供鏈接 → 本機抓取 → 離線語音轉寫 → 寫入 Obsidian Vault」串成一條鏈路,並附上左側欄面板與 Agent 工具,適合初學者在 DSH 裏上手「視頻進庫」。
下面按定位、能力、安裝、用法和注意點說明;事實以倉庫 README 與 package.json(當前版本 1.1.0,MIT)爲準。
這是什麼¶
dsh-douyin-kb 是 DSH 插件:接收單條抖音分享鏈接或博主主頁批量目標,下載視頻後在本地轉成帶時間戳的中文文字稿,生成帶 YAML frontmatter 的筆記,落入本機 Obsidian。插件側幾乎零 npm 依賴,核心邏輯在 assets/douyin_kb.py,由宿主註冊工具 douyin_kb 與斜槓命令 /douyin,並在客戶端注入「抖音轉OB」側欄面板。
社區目錄頁:https://www.skillhub.cn/plugins/KunWu1980/dsh-douyin-kb。DSH 插件生態的理念是「一切皆插件」;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
抓取¶
Playwright 驅動本機 Edge 的持久化配置目錄,先獲取 ttwid 等 Cookie,再打開視頻頁,在頁面自身的 response 回調裏截獲 /aweme/v1/web/aweme/detail/ 返回的 aweme_detail。README 說明:yt-dlp 對抖音已不穩定,因此走真實瀏覽器發請求的路徑。
轉寫¶
使用 sherpa-onnx + SenseVoice(中英日韓粵,int8 模型約 228 MiB)+ silero VAD 切段,純本地、離線,不需要 API key。缺少 VAD 模型時會退化爲 25 秒定長切塊。
落庫¶
筆記含 YAML frontmatter、視頻文案、- \mm:ss` 句子形式的轉寫與要點區;封面存入抖音收藏/_附件/,去重索引爲抖音收藏/.index.json`。
安裝與啓用¶
任選一種發佈渠道安裝(命令來自 README):
# 從 GitHub 倉庫(推薦)
dsh plugin add github:KunWu1980/dsh-douyin-kb
# 從本地打包產物
dsh plugin add C:\path\to\douyin-kb-1.0.0.tgz
# 從本地目錄(開發時 link)
dsh plugin add C:\path\to\douyin-kb-plugin
桌面版也可在 設置 → 插件 中用同樣 spec 安裝,或由 Agent 調用 plugin_manager install_bundle。更新 bundle 後需重啓應用,宿主纔會加載新的 JS 模塊代際。
安裝前建議自行查看源碼與 MIT 許可證;插件以當前 DSH 進程權限在本機執行 Python 與瀏覽器自動化。
運行時前置¶
| 依賴 | 用途 | 安裝 |
|---|---|---|
| Node.js ≥ 20(含 npm) | 宿主運行插件 | 隨 DSH 提供 |
| Python 3.10+ | 執行 assets/douyin_kb.py |
系統或 DSH 自帶運行時 |
playwright |
驅動 Edge 抓取 | python -m pip install playwright(channel="msedge") |
av (PyAV) |
無 ffmpeg 時解碼音軌 | python -m pip install av |
sherpa-onnx |
離線轉寫 + VAD | python -m pip install sherpa-onnx |
numpy |
音頻重採樣 | pip |
| SenseVoice 模型 | 中文轉寫 | 放到 %USERPROFILE%\.dsh\douyin-kb\models\ |
| silero VAD | 語音切段 | 同上目錄 |
模型可經國內鏡像下載(README 提供 PowerShell 示例,目標路徑爲 %USERPROFILE%\.dsh\douyin-kb\models\)。
配置¶
| 配置項 | 默認值 | 說明 |
|---|---|---|
vault |
自動識別 Obsidian 當前庫 | 可用 OBSIDIAN_VAULT 或 %USERPROFILE%\.dsh\douyin-kb\config.json 覆蓋 |
kbHome |
%USERPROFILE%\.dsh\douyin-kb |
模型、瀏覽器配置、緩存;可用 DOUYIN_KB_HOME |
python |
自動探測 | 可用 DOUYIN_KB_PYTHON |
timeoutSeconds |
900 |
單次工具調用超時 |
多數用戶無需手填 vault:插件會讀 Obsidian 的 obsidian.json,以當前打開的庫爲準。覆蓋示例:
{ "vault": "D:\\path\\to\\Obsidian Vault" }
優先級:vault 配置 → OBSIDIAN_VAULT → config.json → Obsidian 當前庫 → 默認 %USERPROFILE%\Documents\Obsidian Vault。
典型用法¶
左側欄面板¶
安裝並重啓 DSH 後,左側欄出現「抖音轉OB」:
- 粘貼抖音分享鏈接或整段分享文案;
- 點擊 開始抓取,查看進度,完成後面板給出筆記路徑;
- 首次使用會彈出瀏覽器要求掃碼登錄抖音,之後一般無需重複。
面板下方固定提示:首次掃碼、離線模型需人工校對、需自行安裝 Node.js / Git / Python。
斜槓命令¶
/douyin https://v.douyin.com/xxxxxx/
與面板按鈕等價(同樣 force=true 時可覆蓋寫),適合在會話中直接觸發。
Agent 工具 douyin_kb¶
{ "action": "ingest", "target": "7.66 12/31 ... https://v.douyin.com/xxxx/", "force": false }
{ "action": "batch", "target": "https://www.douyin.com/user/MS4wLjABAAAA...", "limit": 5 }
{ "action": "probe", "target": "https://www.douyin.com/video/7703889641270775066" }
{ "action": "login" }
排錯時可對照命令行:
python assets/douyin_kb.py ingest "https://v.douyin.com/xxxx/" --vault "D:\path\to\Obsidian Vault"
python assets/douyin_kb.py probe 7703889641270775066
適用場景與注意¶
適合誰:希望把抖音單條或博主主頁若干條視頻沉澱到 Obsidian、且能接受本機 Edge 有頭登錄與離線模型校對的人;README 寫明插件帶有實驗性質,也是作者藉助 DeepSeek 創建的第一個 DSH 插件。
風控與排錯(摘自 README):
Fresh cookies.../ HTTP 403:先action=login掃碼,或刪除%USERPROFILE%\.dsh\douyin-kb\browser-profile重來;默認有頭,無頭易被判定爲機器人。aweme_detail: null且filter_reason: "core_dep":內容受限,需換片源。- 轉寫爲空:無語音、音量過低或 VAD 誤切;可
probe確認時長。 - PowerShell 中文亂碼:先設置
[Console]::OutputEncoding = [Text.Encoding]::UTF8。
不用 yt-dlp 的原因:站點要求 Cookie 含 s_v_web_id,裸請求易 403;穩定做法是瀏覽器真實請求後再從響應取 aweme_detail。
結尾¶
dsh-douyin-kb 把抖音鏈接、本機瀏覽器抓取、SenseVoice 離線轉寫和 Obsidian 筆記結構合成一套可復現流程;不熟悉命令行的用戶可從側欄面板開始,Agent 開發者則用 douyin_kb 與 /douyin 接入工作流。