Communitygithub.com

perso-ai/perso-dubbing-plugin

Perso 短视频剪辑配套工具:配合 Perso 配音插件实现短视频片段裁剪与重构。文档/media 中提供演示 GIF。

perso-dubbing-plugin 是什么?

Perso 短视频剪辑技能(/clip)是一个面向 AI 代理的专用工具,专注于从长视频中提取并重构短片段(30–90 秒),同时与 Perso 配音插件共享底层库。它支持两种主要入口:通过显式时间码直接裁剪本地文件(离线、无需 API 密钥),或通过语音转文本(STT)项目进行 AI 高亮选择(需消耗积分)。剪辑流程分为两个阶段:`--plan` 输出带时间戳的句子级转录,供代理分析;`--clips` 根据代理挑选的高亮片段(带标题和起止句子序号)执行实际裁剪,并自动将横屏内容重构为竖屏(9:16)。剪辑完成后,技能会说明用户询问是否添加字幕,并引导至 `srt` 技能的样式预设选择(如 karaoke、bold-punch),再生成侧边字幕文件并调用 `style.mjs` 烧录。该技能支持 Claude 应用(交互式画廊)、Cursor、Codex 等平台,环境变量配置与 `dubbing`/`srt` 技能一致。核心约束包括:API 密钥仅用于在线流程(`--project`/`--plan`/`--clips`),`--video --ranges` 和 `--sidecars` 完全离线;背景运行以避免阻塞;禁止未经用户许可自动运行 STT(消耗积分)。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/perso-ai/perso-dubbing-plugin/tree/main/skills/clip

在你喜欢的 AI 中提问

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

文档

/clip

将视频裁剪为短视频片段 + 重构画面。字幕不是此技能的工作——裁剪后,由 srt 技能负责样式处理(见下文衔接部分)。

入口点

  • 显式时间码(如“裁剪此视频的 2:00–3:00”)→ 直接裁剪本地文件:--video "<file>" --ranges "2:00-3:00,..."。无需 STT、密钥或积分。

  • 在 STT 项目上进行 AI 高亮选择 → --plan 然后 --clips(见下方流程)。需要项目的转录稿和词时间戳。

  • 原始视频,“找出精彩瞬间”(未给出时间码)→ 你无法在没有转录稿的情况下选择高亮,因此询问用户他们想要哪种方式:

    • STT(专业选择,消耗积分):先运行 srt 技能的 STT 创建项目,然后通过 --plan/--clips 进行裁剪。
    • 免费(无 STT):用户给出时间码,你使用 --video --ranges 裁剪它们。

    根据用户的选择进行操作——未经询问不要运行 STT(这会消耗积分)。

核心规则

  • 只有工作进程能看到原始密钥——切勿打开、回显或将其作为参数传递。
  • 密钥限制仅适用于 --project/--plan/--clips。 --video --ranges 和 --sidecars 完全离线——切勿对它们执行密钥检查/注册。
  • 在后台运行——编码需要时间。
  • 此技能与配音技能共享库:dubbing 文件夹必须安装在 clip 旁边。

流程

阶段 1 — 计划。 node scripts/clip.mjs --project <seq> --plan 打印摘要的章节映射(主题指南)以及完整的句子转录,每行格式为 order [start-end] text。

阶段 2 — 选择,然后裁剪。 阅读转录并选择片段,每个片段格式为 { "title": "...", "start_order": N, "end_order": M }。评分标准:

  • 钩子优先——从吸引注意力的句子开始(问题、大胆断言、有趣/令人惊讶的台词)。
  • 在节奏结束处结束,而非第一个完整句子处。 跟随情绪高潮直到其自然收尾——完整的反应、后续反应以及任何次要笑点。阅读几行超出明显结尾的句子;如果仍是相同的反应则保留它们。
  • 在过渡处裁剪——在能量下降或语气转变之前结束(兴奋反应 → 平静叙述)。
  • 巅峰时刻——偏爱有趣/令人惊讶/情感丰富/可引用的瞬间;高潮往往出现在揭示真相后的一两句话。
  • 长度 30–90 秒——超出范围时工作进程会发出警告;优先保留完整弧线而非过早裁剪。
  • 标题——描述该瞬间;成为文件名(01_<title>.mp4)。

章节通常持续较长时间——仅将章节映射作为指南,然后缩小到钩子。

运行:node scripts/clip.mjs --project <seq> --clips '<json>' [--out folder](--clips 也接受 @path)。横屏(16:9)源将被重构为 9:16(戏剧短竖屏信箱);竖屏源保持不变。工作进程将写入片段以及一个 clips.json 清单(记录每个片段及后续字幕所需的转录切片)。回传 [progress];从 [clips-output] 交付文件。

字幕 → 移交至 srt 技能

字幕默认关闭。裁剪完成后,告知用户片段已就绪,并询问是否添加字幕。如果用户需要字幕,首先展示预设——绝不直接跳到某个预设,就像 srt 技能的样式处理流程一样:在 Claude 应用中是交互式画廊(选择 + 应用),在其他环境中是静态的 ../srt/assets/style_presets.png 加上 node ../srt/scripts/style.mjs --list-presets 菜单。让用户选择一个预设或描述一种样式(像 karaoke/bold-punch 这样的短视频预设适合片段)。只有用户选择后:

  1. 编写侧边字幕文件:node scripts/clip.mjs --sidecars "<out>/clips.json"——仅当使用 karaoke 预设时才添加 --karaoke(它还会写入 <clip>.timestamps.json 用于精确的单词时间测量;普通预设只需要 .srt)。
  2. 使用 srt 技能对每个片段进行样式处理:node ../srt/scripts/style.mjs "<clip>.mp4" "<clip>.srt" --preset <id>(对于 karaoke 追加 --word-timestamps "<clip>.timestamps.json")。请参阅 srt 技能的“样式与烧录字幕”部分。

添加 --host <runtime> 用于遥测(静默),与其他工作进程相同。

配置(环境变量)

与 /dubbing / /srt 相同(PERSO_API_BASE/PERSO_MEDIA_BASE —— 仅限 https perso.ai 主机,PERSO_SPACE_SEQ,XP_API_KEY,PERSO_NO_TELEMETRY,……)。

Individual skills in this repo

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

相关技能