automate-this

automate-this

热门

分析人工操作的屏幕录像,生成精准可用的自动化脚本。提取视频文件中的画面帧与语音旁白,重构分步工作流,并充分利用用户机器上已安装的工具,提供多层复杂度的自动化方案。

3.7万Star
4701Fork
更新于 2026/8/3
SKILL.md
只读
名称
automate-this
描述

分析人工操作的屏幕录像,生成精准可用的自动化脚本。提取视频文件中的画面帧与语音旁白,重构分步工作流,并充分利用用户机器上已安装的工具,提供多层复杂度的自动化方案。

Automate This

分析人工操作的屏幕录像,为其打造可直接运行的自动化方案。

用户只需把重复或繁琐的操作过程录屏并发送给你,由你来分析其操作逻辑、意图,并编写脚本将其全面自动化。

环境依赖检查

在分析任何录像之前,先检查所需工具是否可用。静默运行以下检查命令,仅在出现问题时进行提示:

command -v ffmpeg >/dev/null 2>&1 && ffmpeg -version 2>/dev/null | head -1 || echo "NO_FFMPEG"
command -v whisper >/dev/null 2>&1 || command -v whisper-cpp >/dev/null 2>&1 || echo "NO_WHISPER"
  • 必须安装 ffmpeg。如果缺失,提示用户运行:macOS 用 brew install ffmpeg,其他系统使用对应的包管理器安装。
  • Whisper 为可选依赖。仅在录像包含语音旁白时需要。如果缺失录像包含音频轨道,建议用户运行:pip install openai-whisperbrew install whisper-cpp。若用户拒绝安装,则仅进行视觉画面分析。

阶段一:提取录像内容

获取视频文件路径(通常位于 ~/Desktop/),从中提取视觉画面帧与音频:

画面帧提取

按每 2 秒提取 1 帧的频率截取画面。这样既能保证覆盖完整操作,又不会超出上下文窗口限制。

WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/automate-this-XXXXXX")
chmod 700 "$WORK_DIR"
mkdir -p "$WORK_DIR/frames"
ffmpeg -y -i "<VIDEO_PATH>" -vf "fps=0.5" -q:v 2 -loglevel warning "$WORK_DIR/frames/frame_%04d.jpg"
ls "$WORK_DIR/frames/" | wc -l

本次会话后续所有的临时文件路径均统一使用 $WORK_DIR。每次运行生成的独立目录权限设置为 0700,确保提取的画面帧仅当前用户可读。

如果录像时长超过 5 分钟(画面超过 150 帧),请将提取间隔调整为每 4 秒 1 帧,以避免超出上下文限制。同时告知用户:由于录像较长,已降低采样频率。

音频提取与转录

检查视频是否包含音频轨道:

ffprobe -i "<VIDEO_PATH>" -show_streams -select_streams a -loglevel error | head -5

如果包含音频:

ffmpeg -y -i "<VIDEO_PATH>" -ac 1 -ar 16000 -loglevel warning "$WORK_DIR/audio.wav"

# 优先使用系统中可用的 whisper 可执行文件
if command -v whisper >/dev/null 2>&1; then
  whisper "$WORK_DIR/audio.wav" --model small --language en --output_format txt --output_dir "$WORK_DIR/"
  cat "$WORK_DIR/audio.txt"
elif command -v whisper-cpp >/dev/null 2>&1; then
  whisper-cpp -m "$(brew --prefix 2>/dev/null)/share/whisper-cpp/models/ggml-small.bin" -l en -f "$WORK_DIR/audio.wav" -otxt -of "$WORK_DIR/audio"
  cat "$WORK_DIR/audio.txt"
else
  echo "NO_WHISPER"
fi

如果两个 whisper 可执行文件均不可用,且录像中包含音频,请告知用户将缺少语音旁白上下文,并询问是否安装 Whisper(pip install openai-whisperbrew install whisper-cpp),还是直接仅基于画面进行分析。

阶段二:重构操作流程

分析提取出的画面帧(以及语音转录文本,若有),结构化地复原用户的完整操作。按时间顺序逐帧分析,识别以下要素:

  1. 使用到的软件/应用 —— 录像中出现了哪些应用?(浏览器、终端、Finder、邮件客户端、表格软件、IDE 等)
  2. 动作执行顺序 —— 用户按什么顺序进行了哪些操作?逐个点击、一步步记录。
  3. 数据流动路径 —— 步骤之间传递了哪些信息?(复制文本、下载文件、表单输入等)
  4. 决策判断点 —— 用户是否在某些节点停顿、检查数据或做出选择?
  5. 重复模式 —— 用户是否针对不同输入重复执行了相同的一套操作?
  6. 痛点与瓶颈 —— 哪个环节看起来耗时长、易出错或极其繁琐?语音旁白通常会直接反映这一点(如“最烦这个步骤了”、“这地方每次都要等半天”、“每个条目我都得重复搞一遍”)。

将重构出的流程整理为编号列表展示给用户,并在给出自动化建议前务必请用户确认是否准确。这一步至关重要 —— 理解偏差会导致后续做出的自动化方案毫无价值。

输出格式示例:

这是我在录像中梳理出的操作流程:

1. 打开 Chrome 浏览器并访问 [具体 URL]
2. 输入账号密码登录
3. 点击进入报表仪表盘
4. 下载导出 CSV 文件
5. 用 Excel 打开该 CSV 文件
6. 筛选出 B 列为 "pending" 的数据行
7. 将这些数据行复制到新表格中
8. 把新表格通过邮件发送给 [收件人]

您针对不同的报表类型,重复执行了第 3 到第 8 步共计 3 次。

[若包含语音旁白]: 您提到了导出步骤最耗时间,而且每周一早上都要做一遍。

以上复盘是否符合您的实际操作?有没有遗漏或理解偏差的地方?

在用户确认流程重构准确无误之前,切勿进入阶段三。

阶段三:用户环境指纹探查

在提出自动化方案前,先摸清用户现有的工具栈与环境。运行以下检查命令:

echo "=== OS ===" && uname -a
echo "=== Shell ===" && echo $SHELL
echo "=== Python ===" && { command -v python3 && python3 --version 2>&1; } || echo "not installed"
echo "=== Node ===" && { command -v node && node --version 2>&1; } || echo "not installed"
echo "=== Homebrew ===" && { command -v brew && echo "installed"; } || echo "not installed"
echo "=== Common Tools ===" && for cmd in curl jq playwright selenium osascript automator crontab; do command -v $cmd >/dev/null 2>&1 && echo "$cmd: yes" || echo "$cmd: no"; done

根据检测结果,优先采用用户已有的工具来设计方案。除非简易路线实在行不通,否则绝不推荐需要用户额外安装一大堆新软件的方案。

阶段四:提供自动化方案

结合重构出的操作流程与用户的环境配置,提供最多三个层级的自动化方案。并非所有流程都需要给满三个层级,请根据实际情况灵活把控。

方案层级结构

Tier 1 —— 立竿见影(配置时间 < 5 分钟)
最轻量、最快见效的自动化。可以是一个 Shell 别名、一行命令、快捷键映射,或是段 AppleScript 脚本。仅针对最头疼的那一步进行自动化,而非整套流程。

Tier 2 —— 独立脚本(配置时间 < 30 分钟)
一个端到端自动化整套流程的独立脚本(根据用户环境选择 Bash、Python 或 Node)。具备常见错误处理能力,需要时手动触发运行。

Tier 3 —— 全自动闭环(配置时间 < 2 小时)
在 Tier 2 脚本的基础上,增加:定时任务调度(cron、launchd 或 GitHub Actions)、日志记录、异常通知,以及必要的集成对接配置(API Key、鉴权 Token 等)。

方案汇报格式

针对每个层级,提供以下内容:

## Tier [N]:[方案名称]

**自动化环节:** [对应流程重构中的哪些步骤]
**保留人工环节:** [哪些步骤仍需手动操作]
**预计省时:** [结合录像时长与重复次数估算每次运行节省的时间]
**前置条件:** [除了现有环境外还需要安装的内容 —— 理想情况下最好无需安装任何新东西]

**工作原理:**
[用 2-3 句通俗易懂的中文解释实现逻辑]

**完整代码:**
[完整、可直接运行且带注释的代码 —— 绝不写伪代码]

**测试验证:**
[验证脚本是否正常运行的具体步骤,尽可能先进行干运行/预览模式测试]

**回滚撤销:**
[若出现异常或非预期结果,如何还原/撤销变更]

针对不同应用场景的自动化策略

根据录像中出现的软件类型,采用对应的自动化策略:

基于浏览器的工作流:

  • 首选方案:检查该网站是否有公开 API。API 调用的稳定性是 UI 浏览器自动化的 10 倍以上。积极查找 API 文档。
  • 次选方案:对于已知 Endpoint 的简单 HTTP 请求,直接使用 curlwget
  • 备选方案:必须通过点按 UI 界面完成的操作,使用 Playwright 或 Selenium。首选 Playwright —— 速度更快且不容易掉链子。
  • 善于发现规律:如果用户每次都在控制面板中重复下载同一个报表,大概率可以通过 API 或带查询参数的直链直接获取。

表格与数据处理工作流:

  • 使用 Python + pandas 进行数据筛选、转换和聚合。
  • 如果用户只是在 Excel 里做简单的列操作,一段 5 行的 Python 脚本就能把整套手动流程干掉。
  • 使用 csvkit 在命令行直接高效处理 CSV,无需写复杂代码。
  • 若最终输出必须保持 Excel 格式,请使用 openpyxl。

邮件相关工作流:

  • macOS 环境:使用 osascript 操控 Mail.app 自动发送带附件的邮件。
  • 跨平台环境:使用 Python 的 smtplib 发送邮件、imaplib 读取邮件。
  • 如果邮件内容遵循固定模板,使用模板文件 + 变量替换生成邮件正文。

文件管理工作流:

  • 编写 Shell 脚本处理移动/复制/重命名等规律性操作。
  • 结合 find + xargs 进行批量文件处理。
  • 使用 fswatchwatchman 实现文件变动触发式自动化。
  • 如果用户只是按日期或文件类型将文件归类到文件夹,3 行 Shell 脚本即可解决。

终端/CLI 工作流:

  • 将高频命令配置为 Shell 别名(alias)。
  • 将多步骤顺序命令封装为 Shell 函数。
  • 针对项目专属的任务集编写 Makefile。
  • 如果用户只是用不同参数重复运行同一条命令,直接改写为循环结构。

macOS 专属工作流:

  • 使用 AppleScript / JXA 控制系统原生应用(Mail、Calendar、Finder、Preview 等)。
  • 使用快捷指令(Shortcuts.app)实现免代码的简易多应用联动。
  • 使用 automator 处理基于文件的工作流。
  • 定时任务推荐使用 launchd plist 配置文件(在 macOS 上优于传统 cron)。

跨应用工作流(数据在多个应用间传递):

  • 找出数据交接节点,每个节点都是极佳的自动化契机。
  • 录像中若频繁出现剪贴板复制粘贴,说明应用间缺乏联动 —— 应优先寻找 API、文件交互或直接集成的方式替代。
  • 如果用户从应用 A 复制内容粘贴到应用 B,自动化脚本应直接从 A 的数据源读取,并转换为 B 所需的格式写入。

确保方案精准落地的八项原则

设计任何方案时均须遵循以下原则:

  1. 优先攻克最卡顿的瓶颈。 录像的耗时与旁白能精准暴露真正让人头疼的步骤。与其花 2 小时把全流程包揽,不如花 30 秒把最痛苦的那一步搞定。

  2. 匹配用户的技术水平。 如果录像显示用户在终端里游刃有余,优先推荐 Shell 脚本;如果是纯 GUI 操作党,提供极简触发方式(双击脚本、运行快捷指令或敲一条命令)。

  3. 计算真实省下的时间。 结合录像时长与操作频率算笔账:“这段录像 4 分钟,您说每天都要做一遍,一年就是 17 个小时。Tier 1 方案每次只需 30 秒,一年能帮您省下 16 个小时。”

  4. 先覆盖 80% 的高频场景。 首个自动化版本只需完美搞定常规主流程即可。各种边角边缘情况(Edge Cases)放到 Tier 3 解决,或留给人工干预。

  5. 保留人工审核卡点。 如果录像中用户在中间环节进行了人工核对或审批,请务必保留该手动步骤。绝不要盲目把需要主观判断的节点自动化。

  6. 提供干运行(Dry Run)预览。 所有脚本都应支持“试运行/预览模式”,在真正执行破坏性操作前展示即将修改的内容。支持 --dry-run 标志、输出预览或弹窗确认。

  7. 妥善处理鉴权与密钥。 若流程涉及登录或敏感凭据,绝不硬编码。使用环境变量、系统 Keychain(macOS security 命令)或在运行时交互式输入。

  8. 预判并应对异常失效。 如果目标网站打不开?文件不存在?界面格式变了怎么办?优秀的自动化方案必须包含异常情况的说明与容错逻辑。

阶段五:构建与测试验证

当用户选定某个方案层级后:

  1. 将完整的自动化代码写入文件(推荐合理的存放路径 —— 若存在项目目录则存入,或

<!-- truncated for translation batch; full body continues in source -->