shot-scraper 1.10 新增视频录制命令,借助 AI 智能体自动生成演示
Web 自动化工具 shot-scraper 发布 1.10 版本,新增 video 命令可通过 YAML 脚本录制浏览…
Simon Willison 在其个人博客发布了 shot-scraper 1.10 版本更新,其中最核心的新功能是新增的 shot-scraper video 命令。该命令接受一个 YAML 格式的「剧本」(storyboard)文件,描述一段在 Web 应用上执行的例行操作流程,然后借助 Playwright 将整个过程录制成视频。Willison 长期倡导让编码智能体(coding agent)为自身工作产出可视化演示,本次更新是他朝这一方向迈出的最新尝试。
功能用法:YAML 剧本驱动录制
shot-scraper video 的工作方式非常直观:用户编写一个 YAML 文件,定义要启动的本地服务器、要访问的 URL、视口尺寸,以及一系列「场景」(scenes),每个场景内按顺序执行 pause(暂停)、click(点击)、fill(填写)、wait_for(等待元素出现)等动作。命令运行后,Playwright 会按剧本逐步驱动浏览器,并将全过程录为 WebM 视频。
例如,在演示 Datasette 新增的「从剪贴板 CSV/TSV/JSON 创建表格」功能时,剧本文件会:
- 启动一个监听 6419 端口的本地 Datasette 实例;
- 访问任务页面,模拟用户点击「插入行」按钮;
- 填入三行示例数据(标题、负责人、状态、优先级、备注);
- 保存并校验「3 rows inserted」提示出现;
- 跳转至另一个页面,演示从粘贴的 CSV 直接创建新表
launch_metrics。
整个过程通过 --mp4 参数输出视频文件,认证信息则通过 --auth 指定的 JSON 注入 cookie。
AI 智能体深度参与开发
值得一提的是,这段完整的演示剧本与底层功能代码均由 GPT-5.5 xhigh(运行在 Codex Desktop 中)生成。Willison 提供的提示词非常精简:先让智能体阅读当前分支变更,再查阅 shot-scraper video --help 的输出,最后用该命令录一段覆盖新功能的演示。
Willison 特别赞赏一种工程模式:工具的 --help 输出本身就足够详尽,使编码智能体可以直接消费——这相当于把一份 SKILL.md 内嵌进了命令行工具。他在 showboat 与 rodney 等项目中也采用了同样的设计。
实现历程:等待 Playwright 能力成熟
功能并非一蹴而就。Willison 早在数年前就尝试过类似方案,但当时 Playwright 录制的视频带有较多调试用的「chrome」(如进度条、控件边框),不适合作为产品演示。Playwright 后来虽移除了多余界面,但视频起始仍会出现若干白帧。
转折点出现在 Playwright 1.59 引入的新版 screencast 机制:它提供了更细粒度的录制控制,接近 Willison 的需求,但生成的视频被固定为 800px 宽。在他关注的 PR 合并后,playwright-python 1.61.0 终于解除了这一限制,使得 shot-scraper video 得以落地。
小结
本次更新是 Simon Willison 个人维护工具链的一次小步迭代,核心价值在于验证了一条「由 AI 智能体读取 --help、编写剧本、驱动录制」的端到端工作流。对 Datasette 生态用户与关注 AI 编码智能体实践的开发者而言,可作为参考案例;但其影响范围与重要性均较为有限。
