Communitygithub.com

robertomanfroi/videos-opus

编辑手机拍摄的视频并将其转换为 Reels 的入口。当学生要求编辑视频时使用此技能。

videos-opus 是什么?

此技能是一个全面的视频编辑工作流,专为巴西葡萄牙语用户的 Reels 制作而设计。它作为主要入口点处理用户请求,例如“编辑此视频”、“制作 Reel”或“按照 X 风格编辑”。该技能会自动在学生的计算机上定位最近的视频文件,使用专门的子技能确定正确的编辑风格(移动、编辑、解释、拼贴或广告),并协调整个编辑过程,从头到尾都在指定的工作目录中进行。它通过 JSON 状态文件跟踪进度,处理诸如文件冲突、下载进度和渲染状态之类的问题。输出是一个完整的、风格化的 Reel,附带适当的标题和调整大小,交付到“prontos”目录和桌面上的“Vídeos editados”文件夹。该技能还支持基于先前交付的调整请求,允许进行细微更改,如修剪片段、调整字幕位置或替换图形,而无需重新开始。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/robertomanfroi/videos-opus/tree/HEAD/kit/.claude/skills/editar

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Editar — 入口

学生不知道(也不需要知道)文件夹、路径或终端。她在手机上录制视频,将视频传到电脑上(下载、桌面、WhatsApp Web、Google Drive……),然后用葡萄牙语与你交流。她所看到的就是你的回复和最终完成的视频。请用简单的葡萄牙语简洁回复,不要使用行话。

M=.claude/skills/_motor · K = 启动 videos-opus 技能的工具:"<VO>\bin\node.exe" "<VO>\scripts\video.mjs" kit,其中 <VO> 是 videos-opus 技能的文件夹(即包含指示您阅读此指南的 SKILL.md 的文件夹)。它将便携程序添加到路径中,并在 kit 的工作目录下运行所有内容($K pasta 显示工作目录是什么)。本指南中的路径(video-projects/…、prontos/…、perfil.json)都是相对于该目录的:要读取或编辑文件,请将其与该目录连接。$K --em <subpasta> … 在子目录内运行。不要使用 npx、Python 或裸 node:所有操作都通过 $K 进行。

高级视觉标准(强制性,适用于所有风格): 永远不要使用文字轮廓,永远不要使用光线/螺旋、火花、白色闪光或抖动;通过柔和的阴影或暗色遮罩实现可读性;运动缓慢而平滑;声音低调。详情请参阅 videos-opus 技能 SKILL.md 中的“高级视觉标准”部分。此标准优于任何风格指南。

步骤 0 — 继续还是调整?

在寻找新视频之前,检查状态:

  • 调整请求(“去掉……部分”、“更改字幕”、“上一个视频”)→ 读取 prontos/ULTIMO.json:它包含了上次交付视频的 slug 和项目。直接转到该项目的 调整。
  • 如果存在 video-projects/*/projeto.json,其 etapa 不是 entregue,且在最近 24 小时内被修改过 → 询问:“有一个半成品的视频(<slug>,停在 阶段)。要继续吗?”如果学生确认,则从该阶段继续。
  • 如果渲染正在进行中(video-projects/<slug>/renders/progresso.json 的 fase 为 renderizando)→ 运行 $K node $M/renderizar.mjs <slug> --esperar。

步骤 1 — 查找视频

学生说运行
粘贴了一个路径(带或不带引号)$K node $M/achar-video.mjs "<caminho>"
“我的最后一个视频”、“我刚发的”或什么都没说$K node $M/achar-video.mjs --ultimo
“你觉得是哪个视频?”或者前面找到了多个$K node $M/achar-video.mjs

读取 JSON {ok, video, motivo, aviso, confirmar, candidatos[], checks{}}:

  • ok: true 并且 confirmar: false → 使用 video 继续(脚本已在 meus-videos/ 中保存了副本)。用一行确认:“找到了 IMG_2041.mp4,今天 14:02,3 分钟 — 正在编辑。”
  • ok: true 并且 confirmar: true → 在花费时间之前询问:“是这个吗:IMG_2041.mp4,昨天 14:02 收到,3 分钟?”(如果视频不在 meus-videos 中或已到达超过 2 小时 — 可能是下载文件夹中的 WhatsApp 视频)。
  • aviso(视频超过 3 分钟)→ 告知并询问使用哪部分;Reel 最多 90 秒。
  • motivo: "vários candidatos; escolher" → 显示最多 4 个 candidatos,包含名称、日期/时间和大小的信息,并询问选择哪一个。然后使用所选路径再次运行。
  • motivo: "nenhum vídeo recente encontrado" → 解释:“没有找到任何新视频。请将手机上的视频传到电脑上(例如:在 WhatsApp Web 上发送给您自己并下载;它会出现在下载文件夹中)并告诉我,或者在这里粘贴文件的路径。”
  • 任何其他 motivo(无声音、横屏、太短、正在传输、空间不足)→ 用一句话重复原因然后停止。对于横屏视频:建议重新以竖屏录制。永远不要花费几分钟的时间去转录一个无法使用的视频。

脚本会等待文件停止增长(防止下载还在进行中)。不要尝试绕过此机制。

步骤 2 — 风格

理解请求:

她说风格技能
手机、原片、“像在 Instagram 上编辑的”、自然、简单、未明确说明风格且视频是她自己在说话手机estilo-celular
编辑风格、杂志、时髦、优雅、“看起来像编辑过的”、衬线字体编辑estilo-editorial
解释、新闻、说明、“上面有图片”、教学解释estilo-explicativo
拼贴、剪裁、剪贴照片、剪贴簿拼贴estilo-colagem
广告、投放、付费推广、销售、优惠广告estilo-anuncio

如果她没有明确说明并且无法推断,请只询问一次,并用 5 行显示目录(名称 + 一句话描述)。如果该风格的技能在此安装环境中尚不存在,请告知并提供手机风格。

步骤 3 — 个人资料

读取 kit 工作目录中的 perfil.json。如果文件不存在或缺少 nome/usuario,请按照 .claude/skills/perfil-criadora.md 的指示,在一条消息中一次性询问所有信息。在继续之前保存。

步骤 4 — 附加内容(仅在合理时使用)

  • 屏幕截图(默认:无截图)。如果视频涉及结果、数字、评论、帖子或个人资料,请立即在转录之前用一行询问:“想要在视频中加入截图吗?现在就放到桌面的 Meus prints 文件夹里;否则我会跳过,你可以稍后要求添加。” 不要阻塞等待:如果没有回复,就跳过截图,并在交付时提供调整选项。此规则优先于风格技能关于请求确切屏幕截图的任何指示。最多只查看最近 12 张截图,仅以联系单形式展示。
  • 广告:用一个问题询问产品/优惠和行动号召。
  • 永远不要编造截图、数字、标志或推荐语。如果缺少,要么请求确切的屏幕截图,要么省略。

步骤 5 — 委派

阅读所选风格的 SKILL.md 并从头到尾遵循其流程(项目 → 剪辑 → 审查 → 截图 → 合成 → 快照 → renderizar.mjs)。项目 slug:2-4 个主题单词,小写,用连字符连接(例如 duas-noites-engrene)。如果 novo-projeto 报告名称已存在,请使用它建议的名称(例如 -2)。

在每个耗时步骤之前,用一行说明:“正在转录——可能需要几分钟。”/“正在渲染最终视频……”。对于拼贴风格:提前告知这是最耗时的步骤(人物抠图 + 渲染:在没有独立显卡的电脑上可能需要超过 40 分钟),并询问是继续还是改用手机风格。将抠图操作在后台运行。

步骤 6 — 交付

上一步的 renderizar.mjs 已经完成检查、渲染、验证并复制到 prontos/ 和桌面的 Vídeos editados 文件夹——不要再次运行 prontos.mjs。如果它以代码 3 退出,请运行 --esperar 直到出现 PRONTO。

最终回复,3 到 5 行:

  1. 位置:“完成!它在桌面的 Vídeos editados 里,文件名为 duas-noites-engrene-2026-10-09.mp4(65 秒)。”
  2. 剪辑内容:停顿、重复、被丢弃的片段(用她的话说,而不是用秒数)。
  3. 使用的内容:截图和标题。
  4. 不确定的地方:转写器可能听错的名称、不确定的片段。
  5. 如何调整:“想改点什么吗?请说,例如:‘去掉价格部分’或‘字幕再往下移一点’。”

永远不要发布、发送或删除视频。原始文件保持原样(并且在 kit 的 meus-videos/ 中保留了副本)。

调整(学生在交付后回来)

只修改她要求的部分,在 prontos/ULTIMO.json(或她指定的项目)所指向的项目中,并使用 $K node $M/renderizar.mjs <slug> 渲染一次。快速映射:

请求修改重新执行
移除/缩短一段assets/keeps.json剪辑 → 转录 → 编辑 → 渲染
字幕更高/更低reel.json(capTop)编辑 → 渲染
更换/移除截图或标题src/index.template.html编辑 → 快照 → 渲染
字幕中的错别字assets/caption-fixes.json({"errado": "certo"},不区分大小写/标点)编辑 → 渲染
另一个强调词assets/enfase.json(编辑风格)/ assets/emphasis.json(拼贴风格)编辑 → 渲染
另一种风格使用另一个 slug 创建新项目全部

renderizar.mjs 会以 -v2、-v3 等形式交付,而不会覆盖。在剪辑片段后,元素的时间会改变:在编辑之前使用 ancoras.mjs 重新计算。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能