# Cover And Title

用户要给视频做封面、要封面大字，或要标题和封面一起出时用：读文稿提炼卖点，给几组标题与封面文案，用户挑定后按视频画幅生成封面图，放进这个视频的候选素材。每句都由视频兑现。只要标...

- Repository: https://github.com/JimLiu/baocut (1645 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add JimLiu/baocut --skill cover-and-title -g -a claude-code -y`
Codex: `npx skills add JimLiu/baocut --skill cover-and-title -g -a codex -y`
Cursor: `npx skills add JimLiu/baocut --skill cover-and-title -g -a cursor -y`
Gemini CLI: `npx skills add JimLiu/baocut --skill cover-and-title -g -a gemini-cli -y`

## Description

用户要给视频做封面、要封面大字，或要标题和封面一起出时用：读文稿提炼卖点，给几组标题与封面文案，用户挑定后按视频画幅生成封面图，放进这个视频的候选素材。每句都由视频兑现。只要标题或简介、不要封面时用起标题与写简介。需要视频的转写。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 封面与标题

观众在列表里同时看到封面和标题，加起来不到一秒。封面是一张小图加几个大字，标题是一行字：标题说清这是什么，封面给画面和钩子。两者补充，不互相照抄。写给发布视频的人：吸引人，并且每句都由视频兑现。

最容易做坏的样子：封面大字把标题又抄了一遍，两处加起来还是一句话；或者大字太长，缩成小图之后根本读不出来；或者封面许诺了视频里没有的东西，观众点进来发现不是那么回事。

## 1. 取材料

1. 用 videos_inspect 看视频：名字、画幅（宽高）、章节、文档。没有转写（kind 为 speech 的文档）时先转写，告诉用户转写在进行。
2. 读文稿：export（kind `transcript`、format `md`、timestamps `true`），jobs_inspect 等到 completed，读 outputs 里的文件。
3. 用户这次的要求：几组、封面字数上限、风格、语言、发布平台、已经挑定的标题，都在这段对话里找。没说语言时用文稿的语言。
4. 系列里的其他期：用户要和前作的标题、封面区分开或保持一致时，用 space_related_videos 看讲相近内容的几部叫什么。

## 2. 出标题与封面文案

1. 先用一句话说清这部视频给观众什么：解决什么问题、给出什么结论或看到什么。标题和大字都从这句话出发，不从句式出发。
2. 给出几组候选（用户没说就 5 组），角度各不相同：直述、提问、数字、反差、引语之类。每组是一条标题加一行封面大字。
3. 封面大字要短（用户没说时按这种文字的习惯取几个词以内，中日文约 8 个字以内），缩成小图也一眼能读完，不重复标题原话：标题说「是什么」，大字给「钩子」，或者反过来。
4. 标题与封面里的数字、结论、人名都必须能在文稿里找到出处；不用夸张的断言，不许诺视频没给的东西。
5. 每组附一句理由，标出推荐的一组，请用户挑一组，或说要再来一批、照哪组再来几组。

对比一下（只是示意）：

不好：标题「AI 代码审查实践分享」+ 大字「AI 代码审查实践」（大字抄标题，两处都没说值得看的点）

好：标题「AI 写的代码涨了三倍，审查流程我们这样改」+ 大字「人只看 AI 拿不准的」（标题说是什么，大字给做法的钩子，八个字，视频里确实讲了）

## 3. 生成封面

用户挑定一组之后再做，不要先把几组都生成出来：生成要花时间和钱，没挑中的那几组白做。

1. **画面从哪来**：有画面索引时先用 videos_match_frames（`videoId`，`text` 写想要的封面画面，例如「人物正脸、表情激动」「产品特写」）取几处候选，再用 videos_frames 的 `range`（照抄候选的 `framesRange`）取帧看；没有画面索引（它报 `MODEL_NOT_INSTALLED` 等原因）时用 videos_frames 在章节起点与情绪、动作明显的地方取几帧看，找人物或主体清楚、表情或动作有张力的一帧。帧是素材画面，不含字幕与叠加的元素。
2. **生成**：先看能力，用 `skills_read` 读 `baocut-catalog-media` 的「生成图片」，各服务的差别、提示词顺序与画不了时怎么办都在那里。用 image 给 `prompt`、按视频画幅给 `size`（宽高比如 `16:9`、`9:16`、`1:1`，用户点名的比例优先；模型不支持这个比例时取它支持的最接近的一种，并告诉用户；模型不收尺寸时不给 `size`，在提示词里写明横竖），带上 `video`，结果导入为这个视频的候选素材，不放上时间线。在提示词里写清主体、构图与风格（人物或主体在一侧，大字留在另一侧的干净区域），把挑中那一帧的画面描述进去；模型的 `referenceImages` 不为 null 时，可以把挑中的那一帧（存进视频的图片素材）作为 `images` 给它照着画，不收输入图的模型只靠文字；用户要真人照片的封面时，告诉用户可以直接用那一帧，大字由用户在平台或编辑器里加。
3. **大字**：生成的图里文字常常写错。提示词里要求留出干净的大字区域；用户要图里带字时，生成后读一遍图，字写错了就重来或告诉用户。
4. 用户没说张数时生成 2 张，`count` 给 2；模型一次只出一张（`maxCount` 为 1）时分两次提交。

## 4. 要避免的

- 大字不要抄标题，不要超过一眼能读完的长度。
- 不要许诺视频没给的东西；数字、结论、人名都要在文稿里。
- 不要在用户挑定之前把每组都生成出来。
- 不要把生成图里写错的字当没看见。

## 5. 交付

The rest: https://github.com/JimLiu/baocut/blob/HEAD/skills/baocut/built-in-skills/cover-and-title/SKILL.md
