mcpbeat

Video Planner

sugarforever/video-planner

Plan videos and prepare publishing materials for YouTubers/UP主. Use when user wants to plan a video, write a script (口播稿) with on-screen / screen-share cues, generate video title, description, tags, or YouTube chapter timestamps. Triggers on "策划视频", "写视频脚本", "视频口播稿", "video planner", "video script", "prepare video", "视频发布素材", or mentions creating content for YouTube/Bilibili.

12k tokens
context cost
the whole folder, loaded on every use
13
files
instructions only
0
copies elsewhere
how many repositories repackaged it
130
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/sugarforever/01coder-agent-skills --skill video-planner

What comes with it

34 853 bytes besides the instruction
references/blog-guidelines.md
references/examples-tutorial.md
references/examples.md
references/fact-audit.md
references/platform-differences.md
references/script-guidelines.md
templates/bilibili.md
templates/blog.md
templates/fact-check.md
templates/script.md
templates/x.md
templates/youtube.md

What it tells the agent to use

found in the instruction text
Read reads your files
WebFetch fetches pages from the network
WebSearch reads your files

The instruction itself

17 sections, as written by the author

Video Planner & Publishing Materials

Help YouTubers/UP主 prepare video content: write structured scripts (口播稿), blog posts, platform-specific publishing materials, and an X (Twitter) promo tweet.

Output Structure

Each video gets a date-based directory under user's chosen location:

./videos/{YYYY-MM-DD}-{short-slug}/
├── script.md       # 视频口播稿
├── blog.md         # 博客文章
├── youtube.md      # YouTube 发布素材
├── bilibili.md     # Bilibili 发布素材
├── x.md            # X (Twitter) 推广文案
├── fact-check.md   # 技术事实审核表(技术类视频必出,见 Step 8)
└── cover.png       # 封面(可选,见 Step 10)

Interactive Workflow

Step 1: Gather Information

IMPORTANT: Before writing anything, collect sufficient context from the user. Ask the user:

请提供以下信息,帮我为你准备视频内容:

1. **视频主题**:这期视频讲什么?(必填)
2. **目标平台**:YouTube / Bilibili / 两者都有?(默认:两者)
3. **目标时长**:大约几分钟?(默认:10分钟)
4. **目标观众**:面向什么人群?(如:开发者、AI爱好者、初学者)
5. **关键要点**:你希望视频覆盖哪些要点?(可以是大纲、笔记、或链接)
6. **相关资料**:有没有参考文章、文档、代码仓库?(可选,我可以帮你研究)
已有部分信息的话,直接告诉我就好,缺的我会追问。

If the user provides partial info upfront, only ask for the missing pieces.

Step 2: Research (If Needed)

If the user provides reference URLs, docs, or repos:

  • Use WebFetch to read reference articles/docs
  • Use Read/Grep/Glob to explore code repos
  • Use WebSearch to find supplementary information
  • Summarize key points for script use

If the topic is about a specific technology/tool:

  • Research its core features and selling points
  • Find common pain points it solves
  • Look for comparison angles with alternatives

Step 3: Create Directory

Create the date-based directory:

./videos/{YYYY-MM-DD}-{short-slug}/

Example: ./videos/2026-03-07-react-server-components/

The short-slug should be a brief, descriptive kebab-case label derived from the topic.

Step 4: Write Script (script.md)

Write a structured 口播稿 in the user's preferred language. The script is what the user reads aloud while recording, so two things matter as much as the content:

  • 照着念友好(read-aloud first):每一句都要是「能顺口念出来」的话,不是写出来给人读的文章。太书面、太像技术文档的句子会拖慢录制 - 写完后过一遍,把长定语、术语堆砌、嵌套从句改成短句口语(详见 references/script-guidelines.md 的「照着念友好」规则)。
  • 屏上呈现推荐(screen-share cues):作为 AI,你要逐段智能判断这段口播配什么画面最好 - 某个网页的某一段、某个应用 / 终端界面、一段代码、还是一张对比 / 速查卡 - 并写成 (屏幕:……) 备注。目的:用户照着口播稿念的同时,一眼知道该在屏幕上呈现什么。在脚本开头加一张「屏上呈现总则」总表(画面来源 + 逐段映射),正文每段再用内联 (屏幕:……) 落到具体内容。不是每段都要切画面 - 判断「需不需要」也是你的工作,纯口播段就标「纯口播」。

参考:

  • templates/script.md - 输出格式模板(含「屏上呈现总则」表与内联屏幕备注)
  • references/script-guidelines.md - 详细写作规则(含「照着念友好」「屏上呈现推荐」两条)
  • references/examples-tutorial.md - 教程 / 配置类标准范本,配置 / how-to / setup 类视频开写前先读

Step 5: Write Blog Post (blog.md)

Repurpose the video content into a blog post to maximize content utilization. The blog should NOT be a transcript - it should be a standalone article that reads naturally.

  • See templates/blog.md for the output format template
  • See references/blog-guidelines.md for detailed writing rules
  • IMPORTANT: Follow the personal-chinese-writing-style skill conventions

Step 6: Write Platform Descriptions (youtube.md & bilibili.md)

Generate separate publishing materials for each platform. The two platforms share the same core content but differ in structure and promo placement.

  • See templates/youtube.md and templates/bilibili.md for output format templates
  • See references/platform-differences.md for platform-specific rules and guidelines
  • YouTube 章节:YouTube 描述里放章节时间戳(从 00:00 开始,按脚本结构估算),列表上方先放一行免责声明「时间戳为按脚本结构的估算,剪辑完成后按实际时长调整」。Bilibili 描述不放章节。
  • 参考资料块:含外部链接(repo / 官网 / 文档)的视频,在 YouTube 描述末尾附一个「参考资料」块,列出链接,以及封面源文件路径(cover.html / cover.png)便于复用。

Step 7: Write X/Twitter Promo (x.md)

Generate a short promo tweet that the user can post alongside the video to drive traffic. Not a summary — a hook that makes people want to watch.

  • See templates/x.md for the output format template
  • IMPORTANT: Follow personal-chinese-writing-style skill's references/social-media-style.md rules (link position, bullet vs prose, tone)
  • Leave [视频链接] as a placeholder — user fills in the real URL on publish

Step 8: Fact Audit (技术事实审核)

技术解读 / 评测 / 任何含技术事实点的视频必做,不可跳过。 在风格校对之前先把内容核实一遍 - 因为审核可能要删改成段内容。

  • 逐条核验:把 script.mdblog.md 里的每一条技术陈述列出来,标来源、给核验结论。规则与来源分级见 references/fact-audit.md
  • 结论三档:✅ 成立(有官方来源,可直接讲)/ ⚠️ 需屏上引用(非官方来源,保留但录制时屏上给可见证据)/ ❌ 删除(无来源或属推断,从脚本和博客移除)
  • 绝不让模型的猜测 / 幻觉进稿:没有来源支撑的推断一律删,或改成「官方没披露,不猜」
  • 闭源 / research preview 内容:脚本里要有披露句(「研究预览,部分细节未公开」)和边界句(「未披露的实现不猜」);启用机制(环境变量 / 命令 / 菜单)对照当前官方文档核对;争议数字默认取官方
  • 产物:把核验结果写成 fact-check.md 放进视频目录,便于复核追溯。格式见 templates/fact-check.md

Step 9: Apply personal-chinese-writing-style (统一风格校对)

After every file is written and fact-audited, run a dedicated polish pass over all generated Chinese text files. This is a required finishing step, not optional.

  • Invoke the personal-chinese-writing-style skill and apply it to every generated file: script.md, blog.md, youtube.md, bilibili.md, x.md
  • 口播稿不例外script.md 虽然是用来「说」的,也要完整套用标点与风格规则 — 中文弯引号、半角破折号 " - "、ASCII 省略号 "......"、无标题编号、简洁标题,且不留全角/英文标点
  • 额外做一遍「照着念」复核(口播稿专属,standalone-style 之外):标点统一不等于好念。再过一遍 script.md,确保每句都顺口 - 把太书面 / 太技术文档化的句子(长定语、术语堆砌、嵌套从句、被动腔)改成短句口语;可以默念一遍,卡壳的地方就改。判断标准见 references/script-guidelines.md 的「照着念友好」。(屏幕:……) 屏上备注保留,不要被风格校对删掉。
  • 保留口语化与自然语流:personal-chinese-writing-style 只做标点与语气的统一,不强加模板结构(不要把 script.md 改成 Hook/引言/正文/CTA 那种套路)
  • x.md 仍以 personal-chinese-writing-style 的 references/social-media-style.md 为准(链接位置、bullet vs prose、语气)

Step 10: Generate Cover (封面,可选)

封面不是默认产物 - 先问用户要不要做封面,需要时再生成。

询问:

要不要顺手做一张封面?
- 视频缩略图(YouTube / Bilibili)→ 我用 `cover-design`(代码驱动的排版封面,文字清晰、适合缩略图)
- 文章头图(博客 / X Article)→ 我用 `cover-image`(AI 生成的插画风头图)
  • 缩略图类需求 → 调用 cover-design skill
  • 文章头图类需求 → 调用 cover-image skill
  • 产物存进视频目录(如 cover.html / cover.png

Step 11: Review & Iterate

完成后提示用户:

视频脚本和配套内容已准备好:

📂 {目录路径}/
├── script.md      — 口播稿(约 X 分钟)
├── blog.md        — 博客文章
├── youtube.md     — YouTube 发布素材
├── bilibili.md    — Bilibili 发布素材
├── x.md           — X (Twitter) 推广文案
├── fact-check.md  — 技术事实审核表(技术类视频)
└── cover.png      — 封面(如已生成)

请检查内容,如果需要调整,告诉我:
- 需要修改哪个部分?
- 风格/语气需要调整吗?
- 有要补充的要点吗?

Personal Promotion Info

Users should configure their promotion block. On first use, ask the user for their promotion links and save to auto memory for cross-session persistence.

When asking:

我注意到这是你第一次使用视频策划 skill。请提供你的个人推广信息,我会记住以便后续使用:

- 社交媒体链接(Twitter、Bilibili、YouTube 等)
- 知识星球/社群链接
- 联系方式
- 其他固定推广信息(如课程链接、赞助信息等)

Save to auto memory directory as video-promo.md (e.g. ~/.claude/projects/.../memory/video-promo.md). On subsequent uses, check if this file exists in the memory directory and read it directly — no need to ask again.

Examples

See references/examples.md for detailed examples of different usage scenarios.

Critical Rules

  • 先问后写 — 信息不足时必须追问,不要猜测用户意图
  • 照着念友好 — 口播稿是作者照着念的,每句都要顺口;太书面 / 太技术文档化的句子必须改成短句口语(见 Step 4、Step 9 与 references/script-guidelines.md 的「照着念友好」)
  • 屏上呈现推荐 — 逐段智能判断这段口播配什么画面(网页某段 / 应用 / 终端 / 代码 / 对比卡),写成内联 (屏幕:……) 备注,并在脚本开头给一张「屏上呈现总则」总表;纯口播段标「纯口播」(见 Step 4)
  • 脚本不加时间戳;章节只在 YouTube 描述script.md 章节标题不标时间戳(节奏由作者录制时掌控);YouTube 描述放估算章节时间戳(从 00:00 起)并在列表上方加免责声明(剪辑后按实际时长调整);Bilibili 描述不放章节
  • 不要自动发布 — 只生成文件,不执行任何发布操作
  • 保留用户风格 — 如果用户提供了之前的视频风格参考,尽量保持一致
  • 推广信息复用 — 首次询问后保存到 auto memory,后续自动填充
  • 日期目录 — 每期视频按当天日期创建独立目录
  • 技术内容先审后发 — 技术解读/评测等含技术事实的视频,发布前必须逐条事实审核(见 Step 8),无官方来源的点要么删、要么屏上给可见引用,绝不让模型的猜测/幻觉进稿,并出 fact-check.md 留档

10. 统一风格收尾 — 所有生成的中文文稿(含口播稿)在收尾时必须用 personal-chinese-writing-style 过一遍,见 Step 9,不可跳过

11. 封面按需生成 — 封面不是默认产物,先问用户;缩略图用 cover-design,文章头图用 cover-image(见 Step 10)

How to use it

Copy the folder

Take sugarforever/video-planner from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.