Repository navigation
Releases: edsfod/video-agent
Release list
Video Agent 1.3.3
1.3.3 处理 DeepSeek 网页的限流:被限流时任务自动等待,过后接着发,不再失败;对话太长时自动换新对话。
修复:
- 查服务器记录发现,限流是按账号算的,不是按对话:两个对话在同一时间停住,一个到第 6 轮,一个才到第 2 轮,新开的对话也传不上图。四个任务同时跑时,15 分钟发了 21 条就被限,14 分钟后还没恢复。以前程序认不出限流(附件上写的是 Server busy,发送时页面上什么也不显示),每次白等 3 到 5 分钟再重试,最后任务失败,排队的下一个任务接着失败。现在认得出来:所有 DeepSeek 窗口一起暂停,先等 5 分钟,还不行就加倍,最长 30 分钟,等多久都不算失败,过后从当前这条消息接着发。
- 附件显示 Server busy 时,直接点这张图上的重试,不再删掉重传。页面自己留着文件,图其实已经传上去、只是查状态时碰上繁忙的,重试只要重新查一下。试 3 次还是 Server busy,就按限流等,过后接着发,也不算失败。
- 图传不上去时,整条消息不发。以前同一张图失败 3 次就不带它发出去,而导入时会把发过却没链接的图当成用不上,图都没传上去的话,这个视频的画面集合可能被清空。现在 Server busy 以外的错误重试后还是传不上,任务就报错停下,什么也不导入。
- 发出去之后核对内容:是否接在了别的对话后面、提示词全不全、图带够了没有,不对就重发。以前有过新任务的第 1 轮接到上一个失败任务的对话里,只发出去一个 .txt,提示词和图都没带;也有过消息根本没到服务器,却把页面上迟到的旧回答读成新回答。现在回答要等服务器确实接了这条消息才算数,任务失败后它的窗口也会关掉,不留给下一个任务。
改动:
- 所有 DeepSeek 窗口共用发送节奏,两条消息至少隔 1 分钟。这个间隔是按上面的数据估的,DeepSeek 没有公布限流规则。
- 一个对话里新增的内容超过约 10 万字(谈话类视频大约 4 轮),下一轮自动换新对话。只带这一轮需要的:规则、字幕、在用的那套画面(前几轮已经筛过,所以能单张发,比总图清楚)、这一轮的候选图、要求和上一稿,不带之前的回答和思考过程。这一条是为了不让对话越来越长,不解决限流,限流按账号算,换对话躲不开。
代码改动:
- 桌面程序:
deepseek.js监听页面的请求,从中认出限流、核对发出的消息;各窗口共用发送间隔和限流等待;上传失败时点图片卡片重试,有文件传不上去时不再发送;失败任务的窗口会关闭。chat-rounds.js统计对话长度,超过上限时换新对话。 - 命令行:
pack --follow-up --new-chat --folder生成给新对话用的下一轮材料(packing.py)。 - 测试:假页面改成真的发请求,新增限流等待、错发重发、迟到的旧回答、换新对话、图传不上去不发送的测试。
- 项目规则重新整理:产品规则移到
docs/product-rules.md,工作规则移到docs/working-rules.md,不再使用AGENTS.md。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.3.3.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.3.3/video_agent-1.3.3-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.3.2
1.3.2 让网页 AI 看到视频的每一张画面:图太多放不进 50 个文件时,整幅画面也拼成总图发过去,不再抽掉一部分。
修复:
- 以前只有屏幕页会拼成总图,整幅画面一律单张放,放不下就均匀抽掉。拿一个 15 分钟的视频看:16 张屏幕页、99 张整幅画面,第 1 轮只发了 49 张,后面几轮只发补截的候选,有 66 张 DeepSeek 从头到尾没看到,也就一直留在那套画面里,没人判断有没有用。现在按「都单张 → 屏幕页单张、画面 2×2 → 都 2×2 → 屏幕页 2×2、画面 3×3 → 都 3×3」的顺序,用第一种放得下的,屏幕页总比画面拼得松,字更清楚。工作区里的视频都能一次发完:这个 15 分钟的视频 41 个文件,一个 90 分钟、87 张屏幕页和 166 张画面的课也是 41 个文件。只有连 3×3 都放不下才会少发,并在提示里写明少了几张。
- 总图只是发送时用的。总结里链接的、导入后保存的,仍然是每一张原图。提示里也写明了:总图里一格是一张图,以每格左下角的编号和时间为准,讲者和屏幕并排的分屏、画中画都算一张,不要拆成两张。
改动:
- 「总结」页选「DeepSeek 网页」后,按钮旁边可以设最多跑几轮,默认 6 轮,改过会记住。
- 「画面」页的下拉框里,每套画面后面写明是哪份总结用它写的。某一轮没有增减图片时会沿用上一套,比如第 5 轮的总结用的是第 3 轮那套,以前看起来像对不上。
- 版本树出现之前留下的「以前去掉的画面」不再自动转成一套。
代码改动:
- 命令行
evidence.py的plan按上面的顺序给屏幕页和整幅画面挑拼法,「DeepSeek 网页」、「导出文件夹」和模型 API 都用它;packing.py在提示里说明总图和分屏;pictures.py去掉了把旧「不用」名单转成第一套的代码。 - 桌面程序:
chat-rounds.js按任务带的轮数上限停,设置里新增webRounds;video-view.js在画面集合的名字后面写上用它的总结。 - 测试:新增整幅画面拼成总图、所有画面都发出的测试,以及界面上设置轮数上限的测试。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.3.2.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.3.2/video_agent-1.3.2-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.3.1
1.3.1 修复「DeepSeek 网页」多轮停不下来的又一个原因,并让网页 AI 看过却没用上的画面自动去掉。
修复:
- 程序读 DeepSeek 的回答时会漏掉最后一两行。DeepSeek 写完、发送按钮恢复以后,最后几行要稍晚一点才出现在页面上,程序读得太早。拿一次 6 轮的记录对比:复查最后几行写的是几张图的「画面:」说明,程序每轮都没读到,就每轮报「这些图没有写说明」,DeepSeek 每轮又去「补上」,就这样一直到第 6 轮;其实稿子从第 4 轮起一个字都没变。现在写完后隔一会儿再读一次,两次一样才算读完。
改动:
- 发给网页 AI 的图,它看过、稿子里却没有链接的,导入时从新的一套画面里去掉,不再要它一张张写「不用」。以前它只点名一部分没用的图,剩下的讲者特写、电视剧画面一直留着。没发给过它的图照旧保留,等以后有机会再判断。提示里也写明了:有用的图都要链接到讲到它的地方。后面某一轮又链上的图会回到那一套里,原来的各套也都还在,可以随时换回去。
代码改动:
deepseek.js判断写完以后,每隔 1.5 秒再读一次回答,直到前后两次相同。- 命令行
packing.py打包时把这一轮发出的画面(拼在总图里的屏幕页也算)记进picture-review.json;importer.py导入时把其中没被链接的从新的一套里去掉。 - 测试:模拟 DeepSeek 页面让回答的最后一行晚一秒出现;新增发过但没链接的图被去掉的测试。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.3.1.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.3.1/video_agent-1.3.1-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.3.0
1.3.0 把总结用的画面分成几套,存成一棵树:网页 AI 筛掉的图可以找回来,也可以先让一个 AI 筛、再换另一个 AI 接着写。
改动:
- 每个视频的画面分成几套。处理得到的全部是一套;网页 AI 每轮筛掉没用的、复查里写「无」的,你在「画面」页手动去掉或放回的,都在当时用的那套下面另存成新的一套,记下是谁改的、第几轮、哪天。图片文件只有一份,每套只记哪些图。
- 以后的总结,不管哪种方式,都只拿其中一套。默认是最近一次改出来的那套,「总结」页上会写明用的是哪套。在「画面」页可以换成任意一套,比如先让便宜的 AI 筛几轮,再换好的 AI 接着写;觉得筛错了,就换回上面的某一套重来。
- 「画面」页默认显示「总结」页正在看的那份总结用的那套,不用的图收起来不显示;勾「显示不用的」可以看到,并点「恢复」放回。鼠标移到图上有「不用」按钮。
- 修正:以前网页 AI 说「不用」的图会永远不再给任何总结方式,后一轮又链上了也收不回来,「画面」页上却还显示着全部。拿一个视频看,104 张图里有 84 张记成了不用,其中有一张法条页,最后一轮还链着它、说明了图上有字幕没念的日期。现在最新一稿链着的图一律算在那一套里。
- 修正:网页 AI 要补截时截的候选,以前会一直留在后面的材料里,和原来的画面挤名额;现在候选只在被链上以后才算进那一套。
- 每个总结版本都记下自己是用哪套画面写的。
- 原来的「不用」名单会自动变成第一套「以前去掉的画面」。
代码改动:
- 命令行新增
pictures.py(画面集合的树,存在视频文件夹的pictures.json)和video-agent pictures命令:列出各套,--use换用,--drop、--restore(可加--from)手动去掉或放回。打包、summary-context.md和模型 API 的材料都按正在用的那套挑图;importer.py每轮导入时从当前那套长出新的一套;versions.py给每个版本记下pictures;picture_review.py只管补截的候选。 - 桌面程序的「画面」页加了选择画面集合的下拉、「以后的总结用这套」、「显示不用的」和每张图的「不用」「恢复」按钮;「总结」页加了一行说明用哪套画面。
- 测试:新增画面集合的树的测试(筛掉、链回来、换用、手动去掉和恢复)和「画面」页的桌面程序测试。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.3.0.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.3.0/video_agent-1.3.0-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.2.4
1.2.4 修复网页 AI 的多轮复查停不下来的问题。
修复:
- 「DeepSeek 网页」跑满 6 轮还说复查在补上或改正,其实稿子早就不变了。拿一次 6 轮的回答对比:第 4 轮的复查和第 3 轮一字不差,是照抄的;第 6 轮的稿子和第 5 轮完全一样,复查里却写了两条「改正」(「新增了复查一节」「复核了时间点,确认无遗漏」)。以前程序只数复查里写了几条,所以停不下来。现在程序自己拿这一稿和上一稿比(空行和空格不算):稿子一行没变,复查里写什么都不再继续;变了才看复查和检查。任务输出里会写稿子实际改了几行,比如「复查:补上 2 处,改正 4 处,稿子和上一稿相比改了 9 行」。
- 复查的提示里加了一句:只写这一稿比上一稿的改动,前几轮写过的不要再列。
代码改动:
- 命令行
summary_review.py新增按行比较两稿的changed();importer.py在保存前读出上一稿,交给它判断要不要下一轮。packing.py改了复查的提示语,chat-rounds.js改了完成时的提示语。 - 测试:新增一稿和上一稿相同、复查却写了改正时不再继续的测试。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.2.4.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.2.4/video_agent-1.2.4-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.2.3
1.2.3 修复「DeepSeek 网页」卡住和读不到回答的问题,可以同时跑几个 DeepSeek 总结,并让网页 AI 少链没用的画面。
修复:
- DeepSeek 写完了,程序却一直等着、不导入。原因是 DeepSeek 页面不会一直留着前面的回答:到第三轮时,第一轮的回答已经从页面上去掉了,回答的数目没有变多,程序就以为还没写完。现在发送前先给页面上已有的回答做记号,没有记号的那个就是新回答。
- 发出后一直显示「正在分析图片」、始终不开始写。查下来是那次发送根本没到 DeepSeek 服务器。现在发出 3 分钟还没开始写,就重新载入对话、重新附图再发,最多 3 次;正常情况下几十张图几秒内就开始写。
改动:
- 「DeepSeek 网页」的总结可以同时跑几个:每个任务开一个自己的 DeepSeek 窗口,登录共用;在一个窗口里登录后,其他停在登录页的窗口会自动刷新。同时跑几个按「设置」里「总结」的数目算(默认 2),以前 DeepSeek 只能一次一个。DeepSeek 提示「并发请求过多」时,按服务器繁忙处理,等一会儿再发。
- 网页 AI 复查时,要对总结里链接的每张图写一行:图上有、字幕里没有的是什么。写「无」的(图上的字就是讲者说的话的标题卡、讲者特写、素材画面),程序去掉这个链接,以后也不再把这张图发给它;链接了却没写的,下一轮点名要它补上。以前提示里虽然写了素材、讲者特写不链接,它照样链,复查几轮下来链得反而更多。
- 同一次多轮里,后一轮的总结覆盖前一轮,不再一轮存一个版本:原来没有总结时,覆盖当前总结;旁边已有总结时,只留一个版本,备注写到第几轮。新开一次总结仍然另存,不会覆盖上次的结果。
代码改动:
deepseek.js改成一个对话一个窗口(conversation()),窗口用完留给下一个任务;回答写完的判断改为找没有记号的最后一个回答块;发出后迟迟不开始写时整条重发。chat-rounds.js每个任务用自己的对话,停止只停这一个任务。任务队列去掉了 DeepSeek 单独限 1 个的规则,按总结算。- 命令行
summary_review.py读复查里的「画面:」各行,去掉写「无」的链接,并检查链接了却没写的图;importer.py把去掉的图记为不用,后一轮的回答覆盖前一轮的文件(versions.py新增overwrite)。 - 测试:模拟 DeepSeek 页面加上一次卡在「正在分析图片」、每来一个新回答就去掉最早的一个;新增复查里「画面:」各行的测试和后一轮覆盖前一轮的测试。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.2.3.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.2.3/video_agent-1.2.3-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.2.2
1.2.2 让网页 AI 写的总结经过几轮复查,补上漏掉的内容。
改动:
- 网页 AI(包括「DeepSeek 网页」)写完第一稿后,程序一定再请它复查一轮:对照字幕逐段检查,讲者讲到的论点和理由、例子、数字、定义、条件、步骤、结论有没有漏写,时间点、链接的画面对不对,改好后输出整篇,并在最后写一节「复查」,列出补上了什么、改正了什么。只要复查还有补上或改正,就再查一轮,最多 6 轮。以前常常一轮就结束,第二轮也从不再要画面,总结里有错、有漏也没有机会再改。
- 每一稿导入时,程序会检查:缺了模板的哪几节,有没有写「画面调整」,字幕里哪些有讲话的时间段在详细内容里一段都没写到,有没有超出视频长度的时间点。查出的问题点名发给网页 AI,下一轮一并改掉。有意删掉的节、有意不写的时间段(课间、闲聊),网页 AI 在「复查」里说明原因就不再追问。拿以前的回答试过,查出过一份总结整整漏了 20 分钟。
- 「画面调整」现在每一稿都要写,没有要调整的写「无」,表示检查过了。字幕识别错的词要写进「字幕改正」,不写进「需确认」。
- 总结够不够详细,看讲到的内容是否都写到了,不看篇幅;提示词末尾原来要求「写成能快速扫读的笔记」,容易让它往短里写,已经去掉。
- 「总结」页不再预先选好一种总结方式,要你自己点一种;没选之前「生成总结」是灰的。以前装了 Claude Code 就默认选它,程序开着时又记着上次点的,看起来像随便选了一种。
- 「处理」页上 AutoSlides Extractor 的说明改成:没装时可以在「设置」里下载免安装版。
Claude Code、Codex 等 Agent 写的总结不经过这几轮。命令行里,summarize --import 导入网页 AI 的回答后会说明要不要下一轮、为什么,pack --follow-up 生成下一轮的材料。
代码改动:
- 命令行新增
summary_review.py:检查每一稿,读出「复查」一节,判断要不要下一轮,状态存在视频文件夹的summary-review.json。summarize --import从文件或粘贴导入时走这几轮(--import不带文件名导入的 Agent 草稿不走),并接受--template指明按哪份模板检查。packing.py的下一轮材料改为复查说明、查出的问题、补截的候选和上一稿。 - 桌面程序的
chat-rounds.js按新的提示语进行多轮,导入时传入模板名。 - 文档:README 写上网页 AI 的多轮和 DeepSeek 网页,命令行部分精简,截图重拍;
docs/commands.md补全了以前缺的collection、fix、pack、versions、tools、show和十几个选项。 - 测试:新增检查的测试(缺节、没写到的时间段、超出的时间点,以及在「复查」里说明后不再追问),多轮测试改为复查到不再补上为止,桌面程序测试检查总结页一开始没有选中任何方式。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.2.2.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.2.2/video_agent-1.2.2-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.2.1
1.2.1 修复「DeepSeek 网页」写总结时的两个问题。
修复:
- DeepSeek 窗口被别的窗口挡住、最小化时,回答有时读不全,导入报「总结为空或太短」。原因是 Windows 会把被完全挡住的窗口当成看不见,页面停止绘制,DeepSeek 写出的内容没有进到页面里(页面上的复制按钮不受影响,所以复制出来是完整的)。现在 DeepSeek 窗口在后面、最小化时也照常绘制,程序能读到完整的回答。
- 附几十张图时,只要有一张上传失败,以前会把所有图片重新上传一遍,连续几次都有一张失败就整个任务出错。现在只把失败的那几张删掉重传,每张最多 3 次;还不行就这次不发那几张,任务输出里会写是哪几张。上传一直传不完、回答只是「服务器繁忙」时,仍然整条重发。
- 导入失败时,DeepSeek 的回答会记进这个任务的日志,可以看原因或手动导入。
代码改动:
main.js启动时关掉 Chromium 的窗口遮挡检测(CalculateNativeWinOcclusion),deepseek.js的窗口关掉后台节流;两样都要,只关后台节流时页面仍然不绘制。deepseek.js按附件的文件名找出上传失败的附件,删掉后单独重新附上;chat-rounds.js导入失败时把回答写进任务日志。- 测试:模拟 DeepSeek 页面加上与真实页面同样结构的附件和一次上传失败,检查只有失败的那张重传了。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.2.1.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.2.1/video_agent-1.2.1-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。命令行没有改动。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.2.0
1.2.0 主要改了两件事:画面怎么挑、网页 AI 怎么用画面。另外可以在程序里直接用 DeepSeek 网页版写总结。
新增:
- 「总结」页多了「DeepSeek 网页」:程序打开一个 DeepSeek 窗口(第一次要在里面登录,以后记住),发去提示词和画面,开着深度思考和智能搜索,写完自动导入。DeepSeek 要补画面时,程序截好候选再发下一轮,直到它不再要,最多 6 轮。服务器繁忙、图片上传失败会自动重试。每一轮都能在窗口里看到。DeepSeek 只有一个窗口,同时只跑一个 DeepSeek 任务,其他的排队。
- 网页 AI 可以在总结最后写一节「画面调整」:用不上的画面写「不用」,以后不再发给它;它从字幕推测缺图的地方写「补截」和时间段,程序在那段时间里截几张不同的候选,下一轮给它挑。命令行用
pack --follow-up生成下一轮材料。 - 装了 AutoSlides Extractor 时,屏幕页默认由它来找,讲者翻得快的页也不会漏。屏幕和摄像头拼在一起的视频先裁出屏幕区域再交给它,同一页逐步出现的几步合成一页。「处理」页取消勾选就改用本程序自己的规则。
- 「设置」里可以一键下载 AutoSlides Extractor 的免安装版(从作者的 GitHub 发布页下载,约 90 MB),放在本程序的数据文件夹里,再下载一次就换成最新版。
改动:
- 写总结的规则改成把画面当材料:表格的数字、图表的走势、文件和政策的条文要读出来写进总结,尤其是讲者没念出来的。画面链接只放在图上确实显示了这一点的地方,链接文字写图上是什么;素材画面、空镜、讲者不链接。
- 发给网页 AI 的每张图(包括总图里的每一页)左下角印上编号和时间,表里也按编号列出路径。以前一次附几十张图时,AI 会按上传顺序对图,把素材画面当成别的图表。
- 去掉了按「如图」「看这里」这类说法自动截图:在讲图论的课里「这个图」说的是图论里的图,截了很多没用的画面,而且截的是话刚出口的时候,图往往还没出来。现在由 AI 读字幕自己推测哪里缺图。
- 画面布局的识别:
- 顶部一直不变的标题栏不再被当成屏幕;
- 屏幕里没有边框的讲者小窗能认出来,找翻页时把它涂黑;
- 讲者挡住了一部分分界线时,也能认出「摄像头和屏幕并排」;
- 用摄像机拍投影或显示器的视频,会找出投影那一块,在里面找翻页。
- 以前判成「只有摄像头」的视频(比如素材画面里偶尔插一张图表、截图),现在会把画面里停住两秒以上的图表和截图当作屏幕页。烧进画面的字幕两三秒换一句,不会再把一张图拆成几段短的而被扔掉。
修复:
- 手工指定的屏幕区域只是裁掉了画面四周时,不再被当成「屏幕加摄像头」。
- 用 AutoSlides Extractor 时,视频名较长的话,它写出的文件路径会超过 Windows 260 个字符的上限,结果读不回来。现在让它在短路径的临时目录里运行。默认用它时如果失败,自动改用本程序自己的规则,处理不会因此报错。
- 网页 AI 在正文里链接了一张画面、又在「画面调整」里写了「不用」时,以正文为准。
其他:
- 已经处理过的视频要重新处理,才用得上新的布局识别和屏幕页;已有的字幕、字幕改正和总结都不受影响。
manifest.json的布局类型多了projected(摄像机拍的投影或屏幕)。
代码改动:
- 命令行新增
picture_review.py,负责「画面调整」:记下不用的画面,在指定时间段里挑候选(同一画面停留越久越优先,素材画面每秒都在变,排在后面)。packing.py增加了下一轮材料,media.py增加了在图上印编号的点阵字体(安装包里的 FFmpeg 没有写字功能)。 layout.py增加了上面几条布局规则和「摄像机拍的投影」这一类;processor.py改为装了 Extractor 时先交给它,失败再用自己的规则。- 桌面程序新增三个文件:
deepseek.js操作 DeepSeek 网页(附图、填字、发送、等写完、读回代码块),只依赖 Electron,以后接别的网页 AI 照同样的接口再写一个;chat-rounds.js负责多轮往返;extractor.js负责下载 Extractor 免安装版。 - 测试:新增模拟 DeepSeek 页面的多轮测试(含一次服务器繁忙)、假 Extractor 测试、几种布局的合成视频测试和下载测试。桌面程序测试里的确认框改在页面里回答,跑测试时不再在屏幕上弹出对话框。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.2.0.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.2.0/video_agent-1.2.0-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。
Video Agent 1.1.0
1.1.0 主要是代码整理,另外有两处操作上的改动和一处修复。
改动:
- 在左边再点一次已经打开的视频或合集,就回到首页。打开的是合集里的某一集时,点合集那一行先回到合集页。
- 切到「终端」不再自动打开终端,点「启动终端」才打开;打开后按钮变成「新建终端」。
修复: 在列表对话框里选择下载整个列表后,链接框里的链接没有清掉。
其他:
- 设置里指定了别的 Video Agent 命令行、它和桌面程序的版本对不上时,左边会提示,可以清空设置改用安装包自带的。为此命令行的
tools --json多了json_version一项,合集的collection.json也记下了格式版本;旧的合集照常能用。
代码整理(用起来没有变化,代码按原样搬动,没有改写逻辑):
- 命令行用
--json输出的每种结果,以及manifest.json和collection.json,都有了明确的类型定义(contract.py)。生成这些数据的 Python 代码由 mypy 检查;测试里命令行打印的每一条 JSON 都按类型核对,多一个或少一个字段都会报错。桌面程序用的类型文件(cli-types.d.ts)由它自动生成。 - 桌面程序的 JavaScript 改由 TypeScript 做类型检查(不编译,代码照旧是 JavaScript),推送前和 CI 里都会跑。检查出的唯一一个 bug 就是上面修复的那个。
- 原来 792 行的
summarize.py按职责拆成几个文件:调用模型 API、挑选画面、导入网页 AI 写的总结、给网页 AI 打包材料、合集总结。Anthropic 和 OpenAI 兼容接口改成同一个接口下的两种实现,以后加新的服务商只需加一处。 - 命令行各子命令改为各自绑定处理函数,不再是一长串
if。 - 桌面程序的界面代码(原来一个 2,280 行的
app.js)按页面拆成 14 个模块,主进程(原来 987 行的main.js)按职责拆成 8 个模块。 - 判断屏幕翻页、合并相似页面的规则单独放进
page_rules.py,并加了不用视频、用合成图片就能跑的测试。
从 0.6.2 及以后的版本更新,只下载变化的部分。设置和工作区都保留。
-
桌面程序:下载
Video-Agent-Setup-1.1.0.exe,直接运行即可覆盖旧版本。安装包没有代码签名,Windows SmartScreen 可能提示“未知发布者”,选“仍要运行”即可。 -
命令行工具(需要 uv,不需要 git):
uv tool install --force https://github.com/edsfod/video-agent/releases/download/v1.1.0/video_agent-1.1.0-py3-none-any.whl
用 uv 安装时,FFmpeg 由 imageio-ffmpeg 从 PyPI 提供;电脑上已有的 ffmpeg 会优先使用。
compress需要带 SVT-AV1 的 FFmpeg。
本页附有安装包里 LGPL FFmpeg 的完整源码(ffmpeg-9.0.2.tar.xz、dav1d-1.5.4.tar.xz、SVT-AV1-v4.2.0.tar.gz)和编译说明(FFmpeg-BUILD.txt),与 0.9.0 相同。