Communitygithub.com

mshmsh03/video-xoshaka

规划、编写脚本、构建并交付任何视频——使用 Remotion、AI 旁白、与单词同步的字幕、个人素材、照片、截图、真正的免版税音乐,并在交付前逐帧检查。涵盖个人故事(搞笑或真诚)、产品宣传、解说、教程、回顾、问候与公告,支持竖版(Reels、TikTok、Shorts、WhatsApp 状态)或横版。

video-xoshaka 是什么?

这是一个端到端的视频制作技能,旨在帮助AI代理(如Claude Code、Cursor、Codex)从头到尾创建定制化视频。该技能结合了多种技术:使用Remotion进行视频渲染,通过HeyGen、Kokoro或ElevenLabs生成AI语音旁白,并实现与单词精确同步的字幕。其核心流程从采访用户收集需求(保存为brief.md)开始,然后收集真实素材(个人视频、照片、截图、品牌资产),撰写故事板(STORYBOARD.md),生成语音,最后在Remotion Studio中构建并预览视频。技能特别强调使用真实材料(而非库存素材)来制作个性化视频,并通过多个审批门控(gate)确保质量:故事板需获批准、预览需得到认可后才渲染最终MP4。它支持多种视频风格,包括搞笑故事、真诚致敬、产品宣传、解说、教程、回顾和公告,覆盖横竖屏格式。对于开发者或AI代理用户来说,该技能提供了一套可重复、可审计的视频制作流水线,同时内置了隐私保护(自动排除隐私内容)和事实核查机制,非常适合需要快速、定制化视频内容的场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add mshmsh03/video-xoshaka

在你喜欢的 AI 中提问

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

文档

video-xoshaka 是做什么的?

端到端视频制作:访谈、简报、素材、设计文件、脚本、故事板、配音、构建、音乐、验证、交付,全程设有审批门控。它最初是为一种视频类型而生的技能,即 xoshaka(库尔德语:“有趣的那个”)故事,其叙事风格类似微纪录片,玩笑方式则像梗图页面。这种风格仍然作为多种风格之一保留着。现在,同样的流水线也用于制作真诚的致敬、产品宣传、解说、教程、回顾和公告。

让任何视频看起来定制化的关键是真实素材:用户自己的视频片段、他们朋友的照片、他们实际的网站和应用、他们笔记中的原话、他们真实的标志。看起来像库存素材是失败模式。

各文档阅读时机

  • references/brief.md:访谈内容。包括问题轮次、开放式问题、语言和从右到左的注意事项、回顾格式以及如何保存brief.md。每次开始新视频时阅读。
  • references/storyboard-and-gates.md:design.md和STORYBOARD.md模板、审批门控、并行场景工作器以及新鲜度检查。在编写脚本之前阅读。
  • references/styles.md:风格(搞笑故事、真诚致敬、宣传片、解说、教程、回顾、公告、纯字幕)、每种风格的形式、基调、长度和音乐情绪,以及格式和平台安全区域。刚完成简报后阅读。
  • references/story-and-comedy.md:寻找素材及应保留隐私的内容、编写story.json、将视觉效果与文字同步、以及喜剧手册(用于搞笑风格)。
  • references/production.md:项目设置、组件、格式、截图、验证以及已遇到过的陷阱。在构建之前阅读。
  • references/music.md:HeyGen 音乐设置(包括 Windows/WSL 登录)、选择曲目、闪避和静音。
  • references/toolbox.md:此工作流使用的每个工具、技能和 CLI 以及何时使用它们:Remotion 技能、media-use、HeyGen、Kokoro、ElevenLabs、ffmpeg、无头 Chrome 和捆绑脚本。

工作流程

1. 采访用户,然后保存简报

用户的回答决定了你要构建的内容,所以在做任何事之前先提问。遵循 references/brief.md:

  1. 第一轮,基本信息(AskUserQuestion,最多 4 个问题):风格、发布位置(决定格式)、长度、配音。
  2. 第二轮,外观与感觉: 基调、屏幕内容(照片和视频片段、模拟图中的截图、粗体文字和图形、地图或图表)、颜色和品牌、音乐。
  3. 第三轮,素材与安全: 是否使用真实姓名、截图是否包含姓名、字幕、结尾。
  4. 开放式问题轮,在聊天中进行: 用一句话概括要点、要包含的真实时刻和事实、真诚的台词或确切的行动号召、要避免或绝不展示的内容、人物关系、他们喜欢的参考作品以及文件的位置。
  5. 语言: 如果视频不只是英语,询问使用哪种语言,并检查配音和文字渲染是否支持该语言(brief.md,“语言与从右到左文本”)。
  6. 回顾和确认: 用他们自己的话将简报重新陈述为短列表,询问“有要改的吗?”,然后将其保存为项目根目录下的 brief.md。

跳过用户已经说过的内容,为每个问题推荐默认值,根据风格调整选项,只问你需要的问题。如果他们只说“就做吧”,只问第一轮,在回顾中列出你的假设,但仍留出配音、可以提到或展示的人物以及隐私内容由他们决定。创建 public/photos/ 并告诉他们文件名:me 以及故事中每个人的名字。视频片段和 GIF 也可以。

brief.md 是契约。之后的每一步都遵循它。当用户改变主意时,先更新 brief.md,然后再更新工作内容。在交付消息中,说明结果如何符合简报,并指出任何不符之处。

如果用户提供了一个故事(“X 告诉我买它,我和我的朋友 Y 一起做了”)或一条消息(“发布我们的新菜单”),这就是主线。其他一切都来自他们的素材。

2. 收集素材

  • 他们的笔记(知识库、日记、项目文件夹、git 历史):派遣一个研究子代理来获取带日期的时间线、人物和转折点,以及一份要排除的隐私事项清单(story-and-comedy.md)。不要把任何隐私内容放入视频中。
  • 他们的媒体: 亲自查看每个视频片段和照片。检查每个片段的多帧画面,留意车牌、徽章和屏幕,并决定裁剪区域(focusY)。如果一个片段显示多个人,询问谁是谁。
  • 他们的工作: 实时网站的截图(无头 Chrome,桌面和手机版)以及其仓库中现有的应用截图。
  • 品牌资产: 他们真实的标志,绝不重绘(media-use resolve --type logo 可找到官方标志)、他们的颜色和字体。
  • 宣传片或教程的事实: 每个数字、价格、功能和步骤都来自用户或你核实过的内容。不要编造声明。

3. 设计文件、脚本和故事板

首先编写 design.md(调色板、字体、标志、动态和文字规则,来自简报和用户真实的品牌资产;模板见 storyboard-and-gates.md)。然后按照 story-and-comedy.md 以及 styles.md 中选定风格的形状编写 story.json。最后编写 STORYBOARD.md:每个场景一行,包含台词、屏幕内容、声音以及每个视觉效果所对应的单词。在前两三秒内设置钩子。门控: 向用户展示台词和故事板表格,等待同意后再构建。现在修改文字成本低,以后修改成本高。向用户询问任何笑话背后的真实故事,以及用他们自己的话表达的真诚台词,而不是由你编造。注明发布位置:Reels、TikTok 和 Shorts 需要将字幕放置得更高(styles.md,“安全区域”)。

4. 配音

如果是无旁白视频则跳过此步骤(此时字幕承载文字)。否则使用 scripts/voice-samples.mjs 生成样本,打开文件夹,让用户凭耳朵挑选(bm_george 在以 1.1 倍速播放喜剧时效果很好;较平静的配音适合致敬和教程)。然后运行 scripts/make-voice.mjs。它会打印每个场景的长度和一条“breaks”对齐线。打印单词时间戳并检查是否有任何单词跨度超过一秒(production.md,“陷阱”)。其他配音来源见 toolbox.md。

5. 尽早打开预览

项目一运行,就启动 Remotion Studio(npx remotion studio)并打开预览,这样用户就可以在构建时观看并指导。当用户要求文件或交付要发布的视频时,渲染 MP4;在用户仍在迭代时,预览就是交付物。

6. 构建

脚手架化并复制模板和脚本(production.md)。为每个场景编写一个组件,通常是一个带有视觉效果的 BeatScene,改编自 assets/template/src/story/scenes/(以及当 assets/examples/scenes/ 文件夹存在时来自那里的示例)。使用 wordAt(...) 将每个视觉效果与一个单词同步。保持 StoryVideo.tsx 中的时间线:淡入淡出过渡,章节变化时加入滑动加嗖声。根据所选格式设置组合大小。根据 STORYBOARD.md 和 design.md 构建,不要凭记忆。当有大约五个或更多独立场景时,使用每个场景一个子代理的方式并行构建(storyboard-and-gates.md),然后自己组装并检查接缝。Remotion 相关问题使用 Remotion 技能(toolbox.md)。如果用户在聊天之外编辑了代码,不要覆盖;假定这是有意为之或询问用户。

7. 音乐和音效

使用真正的音乐(music.md),采用风格所要求的情绪(styles.md)。如有需要安装 media-use 和 HeyGen CLI,让用户登录,搜索几种情绪,下载一首主曲目加两首备选,测量它,设置 MUSIC_GAIN,并根据曲目的自然结尾进行规划。仅在风格需要时使用音效。

8. 验证,然后获得渲染批准

  • 查看每个关键视觉和每个场景结尾的静帧(scripts/stills.mjs)。
  • 检查宣传片和教程中的事实: 对照原始来源核实每个数字、名称和步骤。
  • 预览门控: 展示 Studio 预览或关键静帧,询问需要更改什么。仅在用户批准预览后,或当他们明确要求文件时,才渲染最终 MP4。
  • 渲染为带版本号的新文件名。
  • 测量音频(scripts/check-audio.mjs)。
  • 从最终 MP4 中检查帧,查找任何时间敏感的问题。
  • 为他们打开视频。

9. 交付

报告以下内容:

  • 文件路径、长度和大小
  • 如果这是更新版,说明了更改的内容
  • 你检查了什么,以及你无法做到的(凭耳朵听音频)
  • 待解决的问题:人物识别、音乐情绪、是否需要缩短时长

原则

  • 真实优于通用。 使用他们的视频片段、他们的朋友、他们实际的屏幕和标志。
  • 基调适合目的。 搞笑只是一个选项。告别、产品发布和教程各自需要不同的基调;不要在不适合的地方强行加入笑话。
  • 及早设置钩子,每个场景一个想法。 重点在前两三秒内可见,每个场景都有其存在的意义。
  • 视觉效果与文字同步。 一个在对应的单词时出现的视觉效果胜过任何数量的额外特效。当被要求“更好”或“更搞笑”时,先优化时机和措辞,再增加数量。
  • 一个关键节拍。 真诚的台词、行动号召或核心收获,要坦率地陈述并留下余地去发挥。
  • 隐私是一个特性。 用户的笔记中包含其他人不应看到的内容。用户相信你会在不被告知的情况下排除这些内容。
  • 不要猜测人物。 让他们凭耳朵选择讲述者的配音,绝不要根据名字猜测。确认群组视频片段中谁是谁。不要编造素材不支持的引语、感受或声明。
  • 诚实的交付。 说明你验证了什么以及你无法验证什么(凭耳朵听音频)。如果时长超出了用户的要求,要说明并指出最简单的删减处。

相关技能