mcpField
S
studio-setup

studio-setup

github.com/melvynx创意与媒体64401 次安装1 周前更新
代码仓库

关于 studio-setup

studio-setup 是用于准备创作者项目的 video-agent 技能,支持脚本撰写和视频剪辑。它检查工具、建立创作者口吻与样式文件、配置渲染引擎,并可设置项目权限及可选账户连接。

主要功能

  1. 01检查所需工具及版本
  2. 02创建创作者口吻文件
  3. 03配置默认剪辑样式
  4. 04设置渲染引擎
  5. 05配置命令权限

适用场景

  1. 01为视频剪辑准备项目
  2. 02整理创作者的脚本表达方式
  3. 03为后续剪辑设定默认外观

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/melvynx/video-agent-skills --skill studio-setup

安装后在 Claude Code 中输入/studio-setup确认已加载。

附带文件references/voice-template.md

详细介绍

工作室设置

约 15 分钟,只需设置一次。完成后,创作者将拥有:

  • 已安装并检查完毕的其他技能会调用的工具,
  • video-agent/voice.md:他们是谁、说话方式、信念以及能够证明的事。每个脚本都以此为依据撰写,
  • video-agent/styles/default/style.json:基于分屏纸张布局的个人风格(颜色、字体、字幕、纸张、节奏、声音、Instagram CTA),并包含他们提及的工具的真实徽标。每次剪辑都会使用此配置,
  • 已就绪的渲染引擎(Chrome、whisper.cpp、音乐底轨),因此可以立即开始第一次剪辑,
  • 权限规则,让 Claude 可以运行 ffmpeg、yt-dlp 和引擎,无需每次都询问,
  • 如有需要:通过 Treg 连接他们的账号(审计和发布),并配置翻译和图像所需的密钥。

如何运行

  • 使用创作者的语言交流。用简单的词,不要用行话。
  • 每条消息只问一个问题。尽可能提供选项,并把推荐选项放在首位。
  • 绝不编造任何关于他们的信息:不知道的事实就变成问题或 {{placeholder}}。

1. 工具

运行检查,并为每个工具显示一行(✓ 版本,或 ✗ 缺失):

node -v
ffmpeg -version
yt-dlp --version
deno --version
git --version
工具用途macOSWindowsLinux
Node 20+(推荐 22 LTS)short-editing(渲染引擎)brew install nodewinget install OpenJS.NodeJS.LTSnodejs.org 或你的包管理器
ffmpegshort-editing、steal、clips、short-translate、publishbrew install ffmpegwinget install Gyan.FFmpegsudo apt install ffmpeg
yt-dlpstudio-script viral、steal、clips、从视频生成 voice.mdbrew install yt-dlpwinget install yt-dlp.yt-dlppipx install "yt-dlp[default]"
deno在 YouTube 上使用 yt-dlp(需要 JavaScript 运行时)随 yt-dlp 一起提供winget install DenoLand.Denocurl -fsSL https://deno.land/install.sh | sh
git安装技能xcode-select --installwinget install Git.Gitsudo apt install git
Codex(可选)codex-imagesnpm i -g @openai/codex,然后运行 codex login相同相同

提供缺少工具的安装命令,让他们自行运行(或在他们提出时由你代为运行)。仅用于脚本编写的用户(包括使用 viral 模式的 studio-script)只需要 yt-dlp 和 deno。Codex 仅供 /codex-images 使用,且需要 ChatGPT 套餐;如果他们不需要图像,就跳过。

  • Windows:运行 winget 后,关闭并重新打开终端(以及 Claude Code),否则系统将找不到新命令。
  • YouTube 经常变化。如果 yt-dlp 无法处理一个能在浏览器中播放的链接,请先更新它(brew upgrade yt-dlp、winget upgrade yt-dlp.yt-dlp、pipx upgrade yt-dlp)。

2. 文件夹

在当前项目的根目录创建:

video-agent/
├── voice.md      who they are and how they talk (step 4)
├── swipe.md      hooks that worked in their niche (`/studio-script viral`)
├── audit.md      what works on their own Instagram (insta-audit)
├── audits/       full Instagram reports, one folder per account and run (insta-audit @handle)
├── log.md        one line per script written, so nothing repeats
├── scripts/      one file per week (studio-script)
├── takes/        raw recordings (phone, camera, webcam, screen)
├── style.json    {"default": "default"}: the style every edit uses (step 5)
├── styles/       default/ (their look, step 5), and styles copied from other creators (steal)
├── edits/        one folder per edited video (short-editing): source/spec.js, output/<name>.mp4 + post.md, cover.jpg, published.md
├── repurpose/    one plan per long video (clips)
├── images/       generated images not tied to a video (codex-images)
├── .env          their API keys, never shared (step 7)
└── .tmp/         scratch files, deleted after each run

log.md 以 # Script log 开头,swipe.md 以 # Swipe file 开头。

如果项目使用 git,请将以下行添加到其 .gitignore 中(视频文件很大;文本文件仍由 git 跟踪):

video-agent/takes/
video-agent/edits/**/*.mp4
video-agent/edits/**/assets/
video-agent/edits/**/stills/
.claude/skills/short-editing/.runtime/
.claude/skills/short-editing/engine/node_modules/
video-agent/.tmp/
video-agent/.env

video-agent/.env 存放密钥:即使他们跳过其余步骤,也必须将它加入忽略列表。

3. 引擎

渲染引擎随 short-editing 技能一起提供(<skill> = 该技能的文件夹,例如 .claude/skills/short-editing)。首次设置时会安装引擎软件包(15 MB)、在未安装 Chrome 时安装 Chromium(100 MB)、安装 whisper.cpp 及其语音模型(0.5 GB),并获取 8 条音乐底轨:整个过程需要 3 到 6 分钟,只需执行一次。询问:现在设置(如果他们很快要剪辑,推荐此选项;并且这样第 5 步就能在他们自己的素材上展示个人风格),还是稍后设置(short-editing 首次运行时会执行)。仅供 short-editing、clips 和 short-translate 使用;仅用于脚本编写的用户可跳过。

node <skill>/engine/setup.mjs --check || node <skill>/engine/setup.mjs

开始前,说明正在下载的内容及其大小。如果缺少 ffmpeg:程序会打印安装命令。

4. voice.md

先设置文件顶部的内容:录制时使用的语言(品牌颜色会在第 5 步询问)。然后询问如何构建其余内容:

  1. 根据他们的视频(适用于之前发布过视频的人,推荐此方式):提供 3 到 5 个表现最好的口播视频链接(YouTube、Shorts、TikTok、Instagram reels)。提取转录文本(<lang> = 他们的语言代码:en、fr、es):
    yt-dlp --skip-download --write-auto-subs --write-subs --sub-langs "<lang>.*" --sub-format vtt -o "video-agent/.tmp/%(id)s.%(ext)s" "<url>"
    
    阅读这些文本,并根据他们实际说的话填写模板:他们常用的真实短语、语速(词数 ÷ 讲话分钟数)、反复使用的词语,以及开场和结尾的方式。然后只询问转录文本无法体现的内容(立场、佐证、禁区、行动号召)。之后删除 video-agent/.tmp/。 YouTube 链接几乎总能获取转录文本。TikTok 有时可以,Instagram 几乎不行:遇到这种情况,请他们提供 YouTube 链接,或改用访谈方式。
  2. 通过访谈:用通俗的话逐个提问模板中的问题(“你认为所在领域的大多数人都弄错了什么?”)。

无论采用哪种方式,都请他们粘贴 3 段由自己撰写、未经过任何 AI 工具处理的简短文字(例如一条配文、一条消息、一封邮件)。将它们放入“真实样本”,让脚本学习他们的表达节奏。

根据 references/voice-template.md 编写 video-agent/voice.md。然后用 5 行向他们复述文件内容,并询问有哪些不对。语气文件永远不会彻底定稿:告诉他们可以随时运行 /studio-setup voice 来更新。

5. 风格

五分钟。每次编辑都采用相同的完整布局:分屏纸张风格——摄像头卡片上方是纹理纸上的板块;在分屏、纯纸张和全屏摄像头之间硬切换;字幕位于接缝处;CTA 使用评论纸样式(style.md)。这一步会让风格变得独具特色:video-agent/styles/default/style.json。格式和五种经过测试的风格见 looks.md;所有键见 style-schema.md。请先阅读两者。

开始前用一句话说明:“默认风格已经很完整;我会问 7 个简短问题来调整成你的风格,然后用你自己的视频展示效果。”接着每条消息只问一个问题,提供选项并把推荐选项放在最前;他们也可以随时回答“默认”或“跳过”。根据 voice.md 中已有的信息(领域、语气、行动号召)选择推荐项,并跳过其中已经回答过的问题。

  1. 外观:逐行展示 <skill>/assets/looks.json 中的五种外观(label + says):default(极简:系统字体,摄像画面全宽,缝合处黑色横条上的等宽大写字幕,推荐)、classique(贴纸字幕)、papier(带边框的摄像照片,所说的词显示在色块上)、pop(播客、观点)、poster(节奏快、硬切)。所选外观的 style 补丁是文件的开头。
  2. 强调色:询问“你的品牌色是什么?可以提供十六进制代码,也可以用文字描述颜色。”如果他们说出一种颜色:将其转换为十六进制代码 → colors.accent。如果没有:保留该外观的颜色。强调色会标记强调词、字幕块和数字,因此必须醒目(不能是柔和的粉彩色)。
  3. 字体:询问“保留系统字体(Mac 上的 San Francisco;Windows 上的 Segoe UI,推荐),还是使用 Bricolage Grotesque(现代、紧凑)、Poppins(圆润、友好)、Archivo(厚重、紧凑)或 Inter(中性)?”系统字体为 system-ui, -apple-system, Segoe UI, Helvetica Neue, Arial, sans-serif。→ font.family、display.font / display.text。如果他们有自己的字体文件:将其复制到 styles/default/assets/fonts/,并设置 font.src。
  4. 字幕:询问“横条:缝合处黑色圆角横条上的等宽大写白字,每次显示 3 个词(band + JetBrains Mono,推荐);极简:视频上的白色字幕,所说的词逐个出现(rise + block: false + straddle + straddleDy: 90);所说的词显示在色块上(rise);硬阴影(hard);还是贴纸?”接着询问“正常大小,还是更大?”(更大 = captions.size 96)。大写 = captions.upper: true。
  5. 节奏:询问“快速(1.15x,默认)、舒缓(1.05x)还是自然(1x)?”→ pace.speed。
  6. Instagram 行动号召:询问“你的 Instagram 用户名,以及你希望人们评论的词(GUIDE、LINK、产品名称)?”→ creator.handle、creator.name,并在 notes 中添加备注 "Comment word: <WORD>"。此外,根据 voice.md 设置 creator.lang(录制语言)和 creator.niche。
  7. 视频中会提到的工具:询问“你的视频里最常提到哪些应用或工具?”最多 8 个。每个工具都要获取真实徽标(looks.md 中的 “Logos”),并将其保存为 video-agent/styles/default/assets/logos/<tool>.png。如果无法确定某个徽标:向他们索要文件,绝不要绘制相似图案。

写入 video-agent/styles/default/style.json("version": 1、"name"、外观的补丁,然后是他们的回答;只保留与引擎默认值不同的键),并将 video-agent/style.json 设为 {"default": "default"}。检查文件能否解析:node -e 'JSON.parse(require("fs").readFileSync("video-agent/styles/default/style.json","utf8"))'。

预览:引擎已完成设置(步骤 3),且 video-agent/takes/ 中已有时长至少为 10 s 的录制素材时:

node <skill>/engine/short.mjs init video-agent/edits/short-style-test --source "<take>"

然后在其 source/spec.js 中添加一个板块,范围在素材第 1 到第 4 秒左右(一个包含他们强调色的 text、以及他们提到的第一个工具的 logo;参见 scene-library.md),并运行:

node <skill>/engine/short.mjs words video-agent/edits/short-style-test
node <skill>/engine/short.mjs prepare video-agent/edits/short-style-test
node <skill>/engine/short.mjs stills video-agent/edits/short-style-test 0.5,2,5

先自行查看 stills/ 中的 JPG:强调色在纸面上是否清晰可读,白色字幕在色块上是否清晰可读,徽标是否清晰,边缘是否有内容被裁切。修复所有问题,然后展示给他们并询问:“保留,还是改一处?”如果要修改:编辑 style.json,再运行一次 init(它会对样式进行快照),生成新的静帧。之后删除 short-style-test。如果还没有录制素材:用 3 行描述外观,第一次剪辑会展示效果。

他们可以随时运行 /studio-setup style 来更改样式。通过 /steal 复制的创作者样式会放在旁边(video-agent/styles/<name>/),并通过 /short-editing <take> style <name> 使用。

6. 权限

其他技能会反复运行同几条命令。请为此项目预先批准这些命令。展示规则并征求同意,然后将它们合并到 .claude/settings.json。如果文件不存在,则创建该文件。保留其中已有的所有键和值规则,绝不删除任何内容。

{
  "permissions": {
    "allow": [
      "Bash(yt-dlp *)",
      "Bash(ffmpeg *)",
      "Bash(ffprobe *)",
      "Bash(node .claude/skills/short-editing/engine/*)"
    ]
  }
}
  • 仅限这些规则。绝不添加 Bash(*)、Bash(rm *)、Bash(curl *),或针对整个解释器的规则(Bash(node *)、Bash(python *))。
  • 共享的 settings.json 中的规则在文件夹受信任后生效。如果创建者将此项目保存在 git 中且不想共享这些规则,可以改用 .claude/settings.local.json(格式相同,仅个人使用)。
  • 每项技能也会在自己的 allowed-tools 中列出命令,这些命令适用于该技能运行的回合。这些规则则适用于其他所有回合。

7. 账号和密钥(可选)

有三项内容,只有在他们需要相应技能时才需要。一次询问,并在一条消息中问完:

用途内容费用
/insta-audit 和 /publishTreg,并连接他们的 Instagram、TikTok 和 YouTube 账号使用自己的账号免费
在 /short-editing 中获取精确转录(听出每次重录和说错后重来的部分,以便剪掉)、/short-translate、/steal 中人声下方的音乐音量(音效随包提供,无需密钥)ElevenLabs API 密钥(推荐)他们的 ElevenLabs 套餐费用
/codex-images使用他们的 ChatGPT 账号登录 Codex他们的 ChatGPT 套餐费用

ElevenLabs:让他们在 elevenlabs.io/app/settings/api-keys 创建密钥,并自行将其粘贴到 video-agent/.env 中,格式为 ELEVENLABS_API_KEY=...(创建空文件并为他们打开)。绝不要在聊天中索要密钥。检查密钥是否存在,但不要打印出来:grep -c ELEVENLABS_API_KEY video-agent/.env。

Codex:运行 codex --version,然后让他们运行 codex login(在浏览器中选择“Sign in with ChatGPT”)。

Treg

yt-dlp 可免费读取 YouTube。TikTok 和 Instagram 会向脚本隐藏数据,创作者自己的数据则需要登录才能查看;发布内容也需要他们的账号。Treg 填补了这一空白:连接自己的账号一次,即可免费查看数据并发布内容;查询其他创作者的公开数据,每次调用约 $0.001。新注册且通过验证的账号会获得一次性 $1.00 额度,足够调用数百次。

有两种接入方式:

  • CLI,适用于 macOS 和 Linux。需要 uv(推荐,它会获取合适的 Python),或需要 pipx,或需要搭配 Python 3.12 或 3.13 的 pip。没有适用于 Windows 的安装程序。
    curl -fsSL https://treg.to/install.sh | sh
    treg login
    
    treg login 会打开浏览器(使用 GitHub、Google 或邮箱验证码登录)。
  • MCP,适用于任何操作系统,无需安装:运行 claude mcp add --transport http treg https://treg.to/mcp/,然后运行 /mcp 登录。下文中的每个 treg catalog search、catalog get、call 和 balance 命令,都会对应为 MCP 工具 catalog_search、catalog_get、call 或 balance。

他们自己的账号(连接账号需要 CLI)。--capability post 会请求读取数据和发布内容的权限;每条视频仍需他们逐条同意后才能发布:

treg connections connect --provider instagram --capability post
treg connections connect --provider tiktok --capability post
treg connections connect --provider youtube --capability post
treg connections ls

每个 connect 都会打开平台自己的登录页面;他们需要在那里批准连接。只连接他们会发布内容的平台。Instagram 需要专业账号(Creator 或 Business,可在应用中免费切换:个人主页 → 菜单 → 账号类型和工具)。Treg 会将提示输出到 stderr:读取其 JSON 时添加 2>/dev/null。

连接 Instagram 后:立即推荐使用 /insta-audit,这是了解哪些内容对他们有效的最佳起点。

每次 Treg 调用的方式,适用于所有技能:

  1. treg catalog search "<what you want to do>":描述要完成的任务,而不是供应商(“列出某个 TikTok 账号的视频及其观看次数”)。
  2. treg catalog get <id>:查看参数和价格。调用前先告知价格。他们自己已连接的账号会标记为免费。
  3. treg call <id> --query key=value。调用失败不会收费。treg balance 会显示剩余额度;402 错误表示余额已用尽。

权限:只添加免费的只读命令,这样每次付费的 treg call 仍会先征求同意:

"Bash(treg catalog *)",
"Bash(treg balance)",
"Bash(treg connections ls)"

8. 收尾

展示已准备就绪的项目(✓ 或已跳过,每项一行)以及后续步骤。他们也可以直接输入 /editing <what they want>:它会选择合适的技能。

最快制作出第一条视频的方法:用手机、相机或网络摄像头录制一个镜头,保存到 video-agent/takes/<slug>.mp4,然后运行 /short-editing。之后,他们想做更多内容时:

  1. /studio-script:本周的脚本,先写钩子,再进行人性化处理(先运行 /studio-script viral,了解他们所在细分领域中有效的做法)。
  2. /insta-audit:了解他们自己的 Instagram 上哪些内容有效(填写 audit.md)。
  3. /outliers:找出竞争对手中爆火的 Reels,并将其转化为 5 个可供录制的脚本。
  4. /short-editing:制作符合他们风格的短视频(竖屏)或完整 YouTube 视频(横屏)。
  5. /broll:将他们自己的 B-roll 片段整理成素材库,并放入剪辑作品中。
  6. /steal:将他们喜欢的创作者的 Reels 转换为第二种风格。
  7. /clips:将长视频剪辑成完成的短视频。
  8. /short-translate:用另一种语言、以他们的口吻呈现一段录制内容。
  9. /codex-images:制作缩略图、封面和片尾卡。
  10. /vox:将照片制作成纸张拼贴动画。
  11. /publish:发布到 YouTube、Instagram 和 TikTok。

后续

/studio-setup <part> 可直接跳转到某个部分:tools、engine、voice(重建或更新 voice.md)、style(他们的外观、声音、CTA、工具徽标、徽标、片尾卡)、permissions、treg、keys。

评论

支持 Markdown