视频课程知识地图 AgentDeepSeek Harness 插件
38.1/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add linner1224/dsh-video-coursemap该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-video-coursemap(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 15:15:43
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 17 条)
- 读取本地文件lib/index.js:122
function ensureDir(p) { if (!existsSync(p)) mkdirSync(p, { recursive: true }) } - 写入本地文件lib/index.js:122
function ensureDir(p) { if (!existsSync(p)) mkdirSync(p, { recursive: true }) } - 写入本地文件lib/index.js:127
writeFileSync(tmp, content, 'utf8') - 写入本地文件lib/index.js:128
renameSync(tmp, file) - 读取本地文件lib/index.js:133
const j = JSON.parse(readFileSync(p, 'utf8')) - 请求外部主机api.bilibili.comlib/index.js:237
const r = await fetch('https://api.bilibili.com/x/frontend/finger/spi', { headers: { 'User-Agent': BILI_UA } }) - 发起网络请求lib/index.js:237
const r = await fetch('https://api.bilibili.com/x/frontend/finger/spi', { headers: { 'User-Agent': BILI_UA } }) - 发起网络请求lib/index.js:251
const res = await fetch(url, { - 读取本地文件lib/index.js:465
for (const rt of readdirSync(runtimesDir)) { - 执行外部命令来自配置/变量lib/index.js:472
const r = spawnSync(c, ['--version'], { timeout: 8000, windowsHide: true }) - 写入本地文件lib/index.js:490
writeFileSync(ps1Path, POLL_PS1, 'utf8') - 写入本地文件lib/index.js:501
try { appendFileSync(logPath, `[${new Date().toISOString()}] ${msg}\n`, 'utf8') } catch { } - 读取本地文件lib/index.js:520
const txt = readFileSync(pollOutPath, 'utf8').replace(/^ FEFF/, '') - 读取本地文件lib/index.js:551
let text = readFileSync(p, 'utf8') - 读取本地文件lib/index.js:561
const text = readFileSync(p, 'utf8').replace(/ +$/, '') + `\n\n---\n\n${md}\n` - 执行外部命令来自配置/变量lib/index.js:568
const r = spawnSync(pythonPath, [MD2DOCX_PATH, mdPath, docxPath], { timeout: 60000, windowsHide: true, encoding: 'utf8' }) - 写入本地文件lib/index.js:601
renameSync(oldPath, newPath)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.bilibili.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-video-coursemap · 视频课程知识地图 Agent 2.0
纯 DSH 插件:实时检测网页端 B 站视频课程 → 按关键词自动学科分类 → 抓取视频内容/弹幕/评论做知识总结 → 输出 Word 知识地图与学习手册。无需任何运行时依赖,无需修改 DSH 核心。
安装
方式一:Release 预构建包(推荐,无需 git、无需 npm)
dsh plugin add "https://github.com/linner1224/dsh-video-coursemap/releases/download/v2.0.0/dsh-video-coursemap-2.0.0.tgz"
直接从 GitHub Release 下载打包好的产物,全程不调用 git,也不需要 npm 账号或构建工具。这是兼容性最好的方式,任何装了 DSH 的机器都能成功。
方式二:插件市场
在市场里搜索 dsh-video-coursemap 一键安装。市场能否免 git 安装,取决于索引里这条记录是否已带上 tarball 映射 —— 详见下方《装不上怎么排查》。
展开完整文档(README 剩余 1 节)
dsh-video-coursemap · 视频课程知识地图 Agent 2.0
纯 DSH 插件:实时检测网页端 B 站视频课程 → 按关键词自动学科分类 → 抓取视频内容/弹幕/评论做知识总结 → 输出 Word 知识地图与学习手册。无需任何运行时依赖,无需修改 DSH 核心。
安装
方式一:Release 预构建包(推荐,无需 git、无需 npm)
dsh plugin add "https://github.com/linner1224/dsh-video-coursemap/releases/download/v2.0.0/dsh-video-coursemap-2.0.0.tgz"
直接从 GitHub Release 下载打包好的产物,全程不调用 git,也不需要 npm 账号或构建工具。这是兼容性最好的方式,任何装了 DSH 的机器都能成功。
方式二:插件市场
在市场里搜索 dsh-video-coursemap 一键安装。市场能否免 git 安装,取决于索引里这条记录是否已带上 tarball 映射 —— 详见下方《装不上怎么排查》。
方式三:GitHub 地址(需要本机已装 git)
dsh plugin add github:linner1224/dsh-video-coursemap
此方式要求本机已安装 git 且在 PATH 中,并且能访问 github.com。缺任意一项都会失败。
装不上怎么排查
| 现象 | 原因 | 解决 |
| ERR_PNPM_GIT_RESOLVE_FAILED、git ls-remote failed: 'git' 不是内部或外部命令 | 本机没装 git,或 git 不在 PATH | 安装 Git for Windows 并重启 DSH,或改用方式一 |
| ETIMEDOUT、连接 github.com 超时 | 网络无法访问 GitHub | 给 git/pnpm 配代理,或改用方式一 |
| 市场里点安装失败,但手动 dsh plugin add 能装 | 市场索引尚未收录本插件的 tarball 映射,退化成了裸 github: 地址(必须走 git) | 改用方式一,或等索引刷新 |
| 装完 course_map_ 工具不出现 | 插件未被加载 | 重启 DSH(DSH 对插件模块做缓存,不会热重载) |
| 能装、能跑,但生成 Word 失败 | 缺少 Python 环境(scripts/md2docx.py 依赖本机 python) | 安装 Python,或先关闭 Word 输出 |
维护者:发版与「市场免 git 安装」
市场的安装目标由 installTargetFor 决定,优先级为:
1. npm 包(发布到 npm registry)
2. GitHub Release 上的 .tgz 资产(tarball 映射)
3. 兜底:github:owner/repo ← 要求用户本机有 git
本插件未发布到 npm,因此必须挂 Release 资产,市场才会生成免 git 的安装命令。发版步骤:
1. 打包:pnpm pack --pack-destination <输出目录>,得到 dsh-video-coursemap-<版本>.tgz
2. 在 GitHub 创建 Release,tag 与 package.json 的 version 保持一致(如 v2.0.0),把 .tgz 作为二进制资产上传
3. 等待聚合索引刷新(awesome-dsh-plugin.com,其 build-site 工作流每天 10:23(北京时间) 运行)
4. 验证映射是否生效:
$j = Invoke-RestMethod "https://awesome-dsh-plugin.com/plugins.json"
($j.plugins | Where-Object { $_.name -eq "dsh-video-coursemap" }) |
Select-Object npm, version, tarball, install
tarball 字段返回 Release 的 .tgz 地址即表示成功,此时市场按钮会走免 git 路径。
注意:package.json 里的 files 字段决定打包内容,增删文件时需同步更新;private 字段会阻止发布到 npm(不影响 Release 资产)。
2.0 三大功能
功能一:实时检测 & 静默去重
- 定时(默认每 15s)读取 Windows 前台窗口标题,识别浏览器/视频客户端中的视频。
- 新视频 → 连续 stablePolls 次(默认 2 次)稳定确认后自动生成知识地图;
- 已处理过的视频 → 保持静默,不重复生成(记录到 seen 去重表);
- 非知识内容(纯音乐、搞笑段子、无解说实况、直播、新闻、普通网页等)→ 静默忽略。
功能二:学科分类
- 由 LLM 根据视频标题 + 关键词判断所属学科(中文 ≤8 字);
- 旧学科 → 追加更新到已有的知识地图 / 学习手册;
- 新学科 → 自动新建该学科的学习手册。
功能三:内容知识总结 & Word 输出
- 按标题反查 B 站视频,抓取:视频简介、标签、字幕(如有)、弹幕(≤150 条)、热评(≤20 条);
- 基于真实内容 + 弹幕 + 评论提炼核心知识点(8~20 条、2~3 层)与思维导图(Mermaid mindmap);
- 输出为 Word(.docx):每个学科一本《学习手册.docx》+ 全局《课程总览.docx》;
- Mermaid 思维导图在 Word 里渲染为原生分级大纲(根加粗 + 分级项目符号),而非代码文本。
输出目录结构
<输出目录>(默认 C:\Users\<你>\课程知识地图,可用 outputDir 配置) ├── 课程总览.docx # 全局知识地图(学科总览 + 学科列表) ├── <学科A>/ │ └── 学习手册.docx # 该学科所有视频的知识总结 ├── <学科B>/ │ └── 学习手册.docx └── .state/ # 内部状态(state.json、manuals/.md 源、poll.log 调试日志)
配置项
| 配置 | 默认 | 说明 |
| enabled | true | 总开关 |
| pollIntervalMs | 15000 | 轮询间隔(毫秒) |
| stablePolls | 2 | 连续 N 次观察到同一新标题才处理(防标签切换抖动) |
| outputDir | null | 输出目录,null → <用户目录>/课程知识地图 |
| provider / model | null | LLM 服务商/模型,null → 跟随 DSH 默认模型 |
| maxTokens | 4096 | 生成知识地图的最大 token |
| titleMinLen | 4 | 标题最小长度(过滤空/短标题) |
| fetchContent | true | 是否抓取 B 站简介/字幕/弹幕/评论(失败自动降级为仅标题总结) |
提供的工具
| 工具 | 作用 |
| course_map_status | 查看智能体状态:是否启用、输出目录、已分类学科与视频数、最近观察标题 |
| course_map_scan | 立即执行一次前台窗口观察与知识地图生成(可传 title 直接指定视频标题,便于测试) |
技术要点 / 坑
- 改插件代码后必须重启 DSH 才生效(DSH 对插件模块做缓存,remove+reinstall 不会热重载)。
- B 站 API 需带浏览器 User-Agent + Referer(否则搜索返回 -412);通过 /x/frontend/finger/spi 取 buvid3 提升稳定性。
- 评论匿名接口封顶 3 条(sort=2 热评、ps 上限 20);AI 总结接口 /x/web-interface/view/conclusion/get 返回 -403 需登录,不可用。
- 多数 B 站视频无机器字幕(subtitle 为空),字幕是尽力抓取、失败静默降级。
- 前台窗口必须是浏览器/视频客户端才能识别;后台播放(窗口不在前台)属预期限制。
目录
dsh-video-coursemap/
├── package.json # dsh.bundle.patch → cordis.patch.yml
├── cordis.patch.yml # 把插件行 insert 进 profile 插件清单 ├── lib/index.js # Agent 主逻辑(轮询/分类/抓取/生成/Word 转换/工具) └── scripts/md2docx.py # Markdown → Word(含 mermaid mindmap → 原生分级大纲)预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
linner1224/dsh-video-coursemap
视频课程知识地图 AgentDeepSeek Harness 插件
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7