视频精读 · Video Read
DSH 的视频内容研读插件,Windows 分发版 v0.3.5。已修复正常gzip/deflate网页响应被错误拒绝的问题。
输入合法取得的本地视频,或 B站标准视频链接/BV、YouTube单视频链接;插件提供带时间索引的画面与讲解证据,再由当前聊天模型逐段分析。重点是内容保留、细节核对和诚实列出遗漏,不是少量代表帧生成快摘要。
这不是视频播放器,也不是保证“100%看懂视频”的模型。抽帧完成不等于AI已读完;语音识别、变化检测和模型分析都可能漏错。
功能
- 默认每 3秒 基础采样,按 5分钟 分段。
- 全片逐源帧做640宽灰度局部变化检查,补首末帧和变化前后精确PTS帧。补帧预算按5分钟时间段分配,不让开头耗尽全片预算;超预算仍明确标记partial与每段省略数量。
- ASR默认CPU/float32并关闭前文跨窗传递,避免本次真实试验发现的重复错词自强化;保留实际解码参数、温度、重复率和人工核对标记。关闭VAD并不保证每句被识别,内置no-speech判断仍可能跳过窗口。
- 当前Windows CPU兼容依赖锁定faster-whisper 1.2.1、CTranslate2 4.4.0、setuptools<81;模型文件由用户单独配置。环境检查中的ASR available仅代表依赖可发现,不代表模型或实际转写已验收。
- 3×3带时间拼图用于总览,另存原分辨率PNG,尺寸/小字回原帧或局部裁切核对。
- 导入完整SRT/VTT;可用已有本地faster-whisper模型转写完整音轨、保留逐词时间,运行时不下载模型。原始ASR结果单独保留;cue时间与word范围不一致时明确记录包络修正,不删词或把自动转写当逐字听辨核验。
- 按时间点或短时间窗补帧,默认0.5秒,可裁切原图x,y,w,h。
- 获取B站标准链接/BV的单个分P、YouTube单视频,尽量保留策略内可访问高清影音,不强制360P,不重编码。
- 记录实际帧时间、讲解状态、候选遗漏、安全限额、未读状态和不确定性。
- 分段读取图版分页默认4张,返回下一页偏移;保留全量原始字幕/逐词证据路径,避免千帧数据超出聊天工具输出限制。
- 可把分析结果排版成 16:9 研究型 PPT:封面(视频标题+主题)、一页段落总结、若干“分节图版+要点”、收尾。文字由模型撰写,插件只负责版式与按时间取图,不编造讲解。
系统与依赖
当前只支持 Windows。需要 DSH 中现有的 pwsh、tools、skills 和 jobs(长任务)服务。基于 DSH Desktop 0.2.1-rc.3 验证;声明的最低接口基线不是对所有发行版的兼容保证。
| 项目 | 要求 |
|---|---|
| Node | 22或以上,DSH通常自带 |
| Python | 推荐3.12 x64;当前验证3.12.14 |
| 图片库 | Pillow,见requirements.txt |
| 视频工具 | ffmpeg与ffprobe完整构建,当前验证9.0.1;较旧版本未验证,必须支持-/filter:v与-enc_time_base filter |
| 网页获取(可选) | yt-dlp 2026.10.26,见requirements-fetch.txt;使用上游内部接口,勿无验证任意升级 |
| 离线转写(可选) | faster-whisper与模型文件,见requirements-asr.txt;依赖/模型可能较大,用户另行配置 |
| PPT输出(可选) | python-pptx,见requirements-pptx.txt;setup.ps1 -WithPptx 或手动安装 |
| 输出目录 | 本地NTFS,支持硬链接;不支持FAT/exFAT、网络映射和junction/symlink/reparse祖先 |
Python选择顺序:插件配置python → 环境变量VIDEO_LEARNING_PYTHON → 插件.venv → DSH bundled Python → PATH python。
给朋友安装
发给朋友 dsh-video-learning-0.3.5.tgz。ZIP是源码包,不是直接安装包。
- 先打开一次DSH Desktop完成初始化,然后完整退出DSH。
- 使用该Desktop自带CLI(不是通用npm安装的DSH CLI):
& '<DSH安装目录>\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add '<安装包完整路径>\dsh-video-learning-0.3.5.tgz'
如果Desktop自带dsh已在PATH,可缩写为:
dsh plugin --profile desktop add '<安装包完整路径>\dsh-video-learning-0.3.5.tgz'
普通npm版DSH CLI可能提示desktop由Electron独占管理,不能因此绕过限制。非Desktop用户应改用自己的普通profile,并确认Windows工具服务具备。
- 在安装后的包目录配置依赖。通常为
%USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-video-learning。先只检查:
.\scripts\setup.ps1
显式允许建插件自己的虚拟环境并安装核心+下载依赖:
.\scripts\setup.ps1 -Install -WithFetch -Python '<Python完整路径>'
需要语音识别依赖时另加-WithAsr。脚本不会下载模型或FFmpeg,也不会改DSH配置、读取凭据、上传或发布。没有-Install不会安装。不要用全局降低执行策略等方法绕过企业设备限制。
- 重新打开DSH,聊天中让AI“检查视频精读依赖”;也可在包目录执行:
node scripts/doctor.mjs
依赖缺失会明确报告。Windows商店Python占位入口不等于有效Python,请提供真实解释器。
使用
用视频精读分析这个本地视频,先处理前5分钟。
获取这个B站链接的第2P,按内容还原标准逐段分析。
对125~130秒每0.5秒补帧,放大尺寸标注。
七个工具:video_learning_doctor、video_learning_fetch、video_learning_prepare、video_learning_segment、video_learning_detail、video_learning_transcribe、video_learning_pptx。
输出 PPT
先让模型读完分节内容,再由模型写一份 brief JSON(插件不写讲解、不猜尺寸):
{
"title": "胶厚、圆角、骨位",
"theme": "P1:壁厚 → 圆角 → 厚薄过渡 → 拔模 → 骨位",
"summary": "一段话说明这节视频讲了什么、覆盖到什么范围。",
"sections": [
{ "heading": "壁厚按材料与尺寸取值", "start": 0, "end": 300, "times": [60, 240], "points": ["要点1", "要点2"] }
],
"closing": { "heading": "要点回顾", "points": ["一句话结论"] }
}
然后调用 video_learning_pptx(brief 必填,out 为新目录,manifest 可选;提供后按分节时间从已有拼图里取图)。输出 deck.pptx 与记录来源时间的 deck-manifest.json。
获取后根据真实media_path调用prepare,subtitle_path存在才传入。无字幕且无本地ASR时,只能分析画面,不能声称听过完整讲解。长任务返回job_id,用job_output收集、job_kill取消,不重复启动。
获取政策与隐私
- 只支持标准B站视频/BV与YouTube单视频;无p默认第1P,明确part与链接p冲突会拒绝,不下载整套。b23短链需先展开;直播、付费节目、交互分支等暂不支持。
- 正常单层gzip/x-gzip/deflate网页可有界解码;每响应压缩输入和解压输出各16MiB,分别累计32MiB,校验完整性。Brotli、叠加/重复编码仍安全拒绝;压缩二进制媒体不解码。identity重定向和错误正文也受累计限制。
- 不读浏览器cookie、netrc或用户yt-dlp配置,不尝试账号登录、验证码/付费/DRM/地域限制绕过。禁用下载器插件、外部JS、远程组件和代理继承;严格策略可能降低YouTube可获得格式。
- 默认2GiB/2小时,可显式提高至20GiB/24小时;另有限额:单DASH分片128MiB、累计元数据32MiB、原图像素/候选数、硬超时。超限不是静默截取视频。
- 只访问限定平台及媒体域的公网地址,拒绝异常重定向;FFmpeg合并仅本地文件stream-copy。来源清单不存签名媒体URL、请求头、账号或令牌。
- 插件不调用云端LLM、不上传用户视频。但AI随后通过当前模型或ModLens看图时,图像可能送到所选服务;内部录屏外传必须另获许可。
- HTTP获取只是访问视频平台,不保证网站当下可下载、不保证匿名最高清晰度。返回实际画质;内容时长匹配也不是完整语义证明。
证据限制
灰度/缩小/阈值检测可能漏掉细小、低对比、颜色变化或慢累积变化。连续动作只保留边界与基线,需要加密补看。VFR基线取第一个不早于目标的帧,记录delay而不伪造时间。PNG避免额外JPEG有损,但不恢复源视频细节;源coded方向、SAR/HDR显示可能与播放器不同。
字幕/ASR可错认数字、术语和单位;音轨时间不连续超过50ms容差时拒绝压平转写。模型识别不作为工程实测或设计验证。
测试与发布
见TESTING.md、PUBLISHING.md、SECURITY.md。本分发包不含视频、模型、用户配置、历史备份或运行缓存;未替任何用户上传发布。
安装与分享已具备标准npm包结构;插件市场仍需公开仓库/收录审核,不能保证上架。
许可与来源
插件代码MIT。受video-watch-skill图版+时间索引思路启发,实现独立编写。依赖、FFmpeg和模型遵循各自许可证,未随本包捆绑,见THIRD_PARTY_NOTICES.md。
No comments yet. Be the first to write one.