dsh-course-notes:B 站课程笔记自动化流水线

前言

在 DSH 里看 B 站课程时,常见做法是:自己开窗口记要点,或事后根据记忆补笔记。知识地图插件可以抓取简介、字幕和评论并更新学科手册,但把内容落成可检索、可分享的 Markdown 与 Word,并在合适时机推到新会话里,仍要额外拼装步骤。下面介绍的 dsh-course-notes 把「看视频 → 学科知识地图 → 同名笔记 → 新会话交付」串成一条链路,本插件只消费 dsh-video-coursemap 的 state.json 与手册,不重复抓取、不重复调用总结 LLM。

这是什么

dsh-course-notes 是 DSH 联网工具类插件,维护者为 cplh,源码在 GitHub。npm 包当前版本 1.1.1,许可证 MIT,仅支持 Windows 10/11 x64(os: win32)。

一句话定位:监听 coursemap 侧的新视频章节,抽取内容后生成与视频同名的 Markdown + Word(笔记开头置顶 B 站链接),再通过 dsh-memory-evolve 新建会话并 present 两份文件,同时写入项目记忆。

核心功能

与 README 描述一致,能力可概括为以下几点。

  1. 差量监听:按配置间隔轮询 coursemap 输出,发现新章节则进入生成与交付;每轮最多交付 1 个(maxDeliveriesPerPoll),已交付记录在 delivered.json,避免重复风暴。
  2. 双格式笔记:在同一学科目录下输出同名 .md 与 .docx,内容一致;Markdown 便于检索与复制,Word 便于阅读与分享。
  3. 视频链接置顶:从 poll.log 的 bvid 等信息解析链接;失败时可用 B 站搜索反查或占位文案,不阻断交付。
  4. 新会话交付:依赖 memory-evolve 的 de_session(需开启「会话编排」);不可用时 README 说明会走 agents.create 兜底。
  5. 运维工具:course_notes_status 查看目录、Python、交付计数与最近错误;course_notes_deliver 支持按标题手动补发(可选 force)。
  6. 空闲零 LLM:无新视频时不调用模型;异常只写日志,不影响 DSH 其他插件。

整条流水线分工如下:前台 B 站视频由 dsh-video-coursemap 每约 15 秒观察并分类抓取;本插件写笔记文件;dsh-memory-evolve 负责新会话与记忆。

安装与启用

插件以当前 DSH 进程权限运行。安装前应自行查看仓库源码与 MIT 许可证,确认路径、网络访问(B 站接口与 LLM)是否符合你的环境策略。

前置条件

依赖 说明
DSH 桌面版 要求 >=0.2.2-rc.1;需 agents / tools / agentPresets / present
Windows 10/11 x64 coursemap 依赖 PowerShell 与 Win32 前台窗口检测
dsh-video-coursemap 2.0.0 视频检测、学科分类、抓取、学习手册
dsh-memory-evolve 0.1.0 新建会话与 memory;须开启「会话编排」
Python 3 + python-docx 生成 Word;可用 DSH 捆绑运行时或配置 pythonPath
LLM provider / model 在 DSH 中已配置,用于分类、总结与新会话

本包自身零 npm 依赖;上述两个插件不会随本包自动安装。

安装步骤

  1. 安装 DSH 桌面版,确认 profile 可用。
  2. 安装并启用两个前置插件,并在 memory-evolve 的「记忆 → 会话编排」打开开关:
dsh plugin add https://github.com/linner1224/dsh-video-coursemap/releases/download/v2.0.0/dsh-video-coursemap-2.0.0.tgz
dsh plugin add github:csyangwen/dsh-memory-evolve
  1. 安装本插件(插件市场索引有延迟时,该命令仍可用):
dsh plugin add dsh-course-notes

包内已带 dsh.bundle.patch / cordis.patch.yml,安装时会自动插入插件行;不要再手动写重复的 insert,否则重复 id 会报错。

配置

在 profile 的 cordis.patch.yml 中为已安装的插件增加 config 覆盖即可,不要再次 insert:

- id: dsh-course-notes
  config:
    coursemapOutputDir: 'C:\Users\<you>\课程知识地图'
    outputDir: 'C:\Users\<you>\课程笔记'
    sessionCwd: 'C:\Users\<you>\项目'
    # pythonPath: 'C:\Users\<you>\...\python.exe'

常用键:coursemapOutputDir(默认 ~/课程知识地图,需与 coursemap 一致)、outputDir(笔记根目录,默认 ~/课程笔记)、sessionCwd(新会话 cwd 与记忆归属,建议显式设置)、pollIntervalMs(默认 5000)、backfillOnFirstRun(默认 false)。若 coursemap 使用默认输出目录,可省略 coursemapOutputDir。

典型用法与输出

正常使用方式是:在前台播放 B 站课程或纪录片,保持 coursemap 与 memory-evolve 已启用。coursemap 更新学科手册后,本插件生成笔记并由 memory-evolve 在新会话中展示。

磁盘布局示例(README):

知识笔记/
└── 健康科普/
    ├── 1L瓶装水检出24万个微塑料,对身体有哪些危害?.md
    └── 1L瓶装水检出24万个微塑料,对身体有哪些危害?.docx

笔记开头会包含学科、标题、置顶视频链接与结构化知识点(内容来自 coursemap 已整理的材料)。

排查问题时,可先调用 course_notes_status;需要补发单个视频时使用 course_notes_deliver,必填 title,可选 subject 与 force。coursemap 侧还有 course_map_status、course_map_scan 便于按标题测试,但 README 提醒不要对同一标题反复 course_map_scan,以免追加重复章节。

适用场景与注意

适合:经常在 Windows 上前台看 B 站课程或纪录片,希望按学科落盘笔记,并在 DSH 新会话里直接打开文件的人。

不适合:只看短视频、不需要系统笔记的用户;以及 macOS / Linux 环境(coursemap 依赖前台窗口检测,本包声明仅 win32)。

使用边界(来自官方 README):

  • 仅检测前台 B 站窗口;后台播放、最小化或其他显示器不会触发 coursemap 观察。
  • B 站匿名接口有限制(例如评论条数、字幕缺失、偶发 412);链接反查可能因标题歧义失败。
  • 缺 python-docx 时 Word 生成失败会重试,没有「只出 Markdown」的降级模式。
  • 每个新视频大约消耗 1 次分类、1 次总结与 1 个新会话回合;空闲时不调用 LLM。
  • 装完无反应时,先确认两个前置插件与会话编排已开,再查 course_notes_status 与 outputDir/.state/delivery.log。

DSH 生态的理念是「一切皆插件」;社区插件目录(如 SkillHub 上的条目)由社区维护,与 DeepSeek、幻方无官方从属关系。

结尾

dsh-course-notes 在 coursemap 与 memory-evolve 之间充当「笔记桥」:把已抓取的知识地图章节落成带链接的双格式文件,并交付到新会话。若你已在 Windows 上用 DSH 系统化看 B 站课,按上文安装依赖与配置即可接入整条流水线。

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

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

Xiaoye