Communitygithub.com

JohanDuran/video-studio

视频制作与剪辑的固定规则——仅限免费工具(免费版 DaVinci Resolve 21.0.x、本地 HyperFrames 渲染、ffmpeg、本地媒体工具箱),绝不触碰原始录制文件,非破坏性工作,将项目文件保存在工作室文件夹中,以及用户工作室配置文件中的个人规则。在任何 DaVinci Resolve、HyperFrames、动画、音频、调色、渲染或 Shorts 任务之前,以及在建议任何工具、升级或付费功能之前,请先阅读。

video-studio 是什么?

该技能为使用 Claude 或其他 AI 编码助手进行视频制作的开发者定义了一套严格的规则和最佳实践。它强制执行完全免费的工作流程(仅限于免费的 DaVinci Resolve 21.0.x、本地 HyperFrames 渲染、ffmpeg 和本地媒体工具箱),并且严禁修改原始录制文件或使用任何付费服务。核心工作流程确保非破坏性操作:所有项目文件都保存在结构化的 <studio>/<channel>/<ProjectName>/ 文件夹中,原始素材保留为只读状态,处理后的副本会替换到素材池中。技能还整合了本地语音(Kokoro)、转录(WhisperX)和音效生成(Stable Audio Open)工具,同时阻止任何涉及云渲染、AI 生成或 HeyGen 信用付费功能的提议。该技能适用于 Claude Code、Cursor 和 Codex 等 AI 代理平台,并强制在提交更改之前预览,优先使用现有工具箱功能而非代价高昂的替代方案,从而允许在道德范围内进行 AI 辅助视频编辑。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JohanDuran/video-studio/tree/HEAD/plugins/video-studio/skills/editing-rules

在你喜欢的 AI 中提问

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

文档

编辑规则

无需重新询问,直接遵循。关于存在的工具及其使用方法,请阅读 video-toolkit。

0. 配置文件和个人规则

  • 按照 video-toolkit §0 中的说明找到频道的配置文件:在工作文件夹上方最近的 studio.json,否则使用默认频道 ~/.video-studio/config.json。 如果缺失 → 提示 /studio-setup。
  • 配置文件中的 house_rules 是用户自己的决定(例如“不要触碰麦克风声音”)。 它们会覆盖下面的默认规则。当用户声明新的常规偏好时,将其作为一行简短描述(包含原因和日期)附加到 house_rules 中,并告知用户已保存。

1. 一切必须免费

  • DaVinci Resolve:免费版,21.0.x。 切勿建议升级到 21.1 或更高版本:21.1 将 Python 脚本功能限制为仅 Studio 版,这会破坏免费版上的 Resolve MCP。
    • 不要提议 21.1 独占的 API 功能(SetSpeed、AddTransition、SetFades、NormalizeAudioLevel、CreateMulticamClip、AutoAlignClips、output blanking)。提供替代方案(关键帧、Fusion、ffmpeg 或手动 UI 步骤)。
    • 不要提议 Studio 独占的功能(声音隔离、对话电平器、时域/空域降噪、Super Scale、Magic Mask),除非说明它们是 Studio 独占的。
    • 如果配置文件中的 resolve.edition 是 studio,那么 Studio 功能可以正常使用;21.0.x 的锁定限制仅在用户依赖应用内桥接时适用。
  • HyperFrames:仅限本地渲染。 使用工具箱 render_hyperframes 或 npx hyperframes render。
    • 切勿运行 hyperframes cloud render、lambda、cloudrun 或 hyperframes auth login。
    • 切勿使用 HeyGen 信用点功能:HeyGen TTS/语音、头像、media-use resolve --type bgm|sfx(需要 heygen CLI)或任何消耗信用点的 AI 图像/音乐/视频生成。请改用工具箱:speak 用于语音,sfx_search/sfx_generate 用于音效,transcribe 用于字幕。
    • 如果 HyperFrames 工作流程步骤需要上述任何一项,请跳过它或使用免费替代方案,并说明原因。
    • 不要推广 HyperFrames 桌面应用或 hyperframes open:工作流程是 Claude + CLI 渲染 + Resolve MCP。Web Studio 预览仅供用户自己进行小幅调整。
  • 其他工具: 优先使用已安装的工具(ffmpeg、Node、Docker)。不要注册或连接付费服务。
  • 语音: 使用 speak 调用 Kokoro(本地,Apache 2.0 许可证),并使用配置文件中的语音和速度。不要为频道视频使用非商业 TTS 权重。
  • 转录: 使用工具箱 transcribe 调用 WhisperX,不要使用 Resolve 或 HeyGen 的。除非要求,否则不进行说话人分离。
  • 生成的音效/音乐: 使用工具箱 sfx_generate 调用 Stable Audio Open 1.0(其 Hugging Face 许可在 /studio-setup 时已接受)。

2. 文件夹结构

<studio>/
  sfx_library/       共享生成的音效 + index.jsonl(跨视频和频道复用;toolbox.sfx_library)
  recordings/        来自任何来源的原始录制文件(默认 recordings.folder):只读
  _scratch/          没有项目文件夹的工具箱输出
  <channel>/         每个频道一个文件夹
    studio.json      该频道的配置文件
    <ProjectName>/   每个视频一个文件夹,名称与 Resolve 项目名完全一致
      plan.md, script.json, short.json
      audio/          旁白、混音
      capture/        为此视频制作的屏幕录制
      transcripts/    每个文件的转录文件 + <timeline>.timeline.*(时间线时间)
      timeline/        捕获的轨道布局
      animations/      HyperFrames 项目和渲染输出
      builds/, renders/, audio_preview/

单频道工作室可以将 studio.json 和项目文件夹直接放在 <studio>/ 下;这仍然有效。

  • 从 Resolve 获取项目名称(project_manager get_current)(如果有打开的 Resolve 项目);否则与用户商议确定项目名称。在第一次需要时创建文件夹。
  • 切勿将项目文件写入工作室根目录、另一个频道的文件夹或原始录制文件旁边。

3. 原始录制文件为只读

  • 录制文件夹(recordings.folder)永远不会被写入:没有覆盖、删除、重命名或侧边文件。处理后的媒体作为副本复制到项目文件夹,然后通过素材池进行替换。
  • 使用 recordings.mic_audio_stream 进行转录。如果录制文件包含额外的音轨(例如桌面音频、麦克风副本),请指出它们,并且未经请求不要移除或静音。

4. 除非要求,否则不做修改

  • 音频: 除非用户要求,否则不要对用户语音应用均衡器、降噪、压缩或标准化。
  • 画面: 除非用户要求,否则不要进行调色或锐化。

5. 工作方式

  • 提交前预览: 对于音频/视觉更改,渲染一个简短的前/后对比样本到 <project>/audio_preview/(或类似位置),让用户决定。
  • 提议,然后应用: 在更改时间线之前,显示提议的剪辑点、触发点和叠加层位置。
  • 叠加层 → Resolve: 在 <project>/animations/ 中构建 HyperFrames 项目,渲染为时间线帧率的 mov(带 Alpha 通道)文件,导入并放置在空的视频轨道上。如果另一个会话可能正在 animations/ 中工作,将一次性叠加层作为独立的 HyperFrames 项目构建在兄弟文件夹中。
  • 面部安全区域: 当存在摄像头画面时,在放置卡片之前测量面部位置(使用 ffmpeg 平铺帧);切勿遮挡面部。
  • 隐私: 切勿显示 channel.never_show 中的任何内容。屏幕录制会捕获屏幕上的所有内容——检查每个裁剪的首帧和末帧。
  • 音效库: 先生成后搜索,使用 sfx_mark 记录用户的决断,切勿删除库文件(包括被拒绝的)。将选中的音效放置在空的音频轨道上,切勿放在 Audio 1 轨上。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能