竖屏榜单倒数
9:16 Top N 倒数榜单模板。开场亮出榜单名,随后每条一张玻璃卡,从最后一名数到第一名,适合 GitHub 热榜、工具盘点。
· Markdown
直接这样说
- 用 github-repo-rank 做一条 GitHub 本周热榜 Top 5,数据我贴给你
- 做个竖屏榜单倒数视频,盘点 10 个 AI 编程工具
什么时候选它
内容天然是一张排行榜:GitHub 周榜、月度涨星、工具盘点、「N 个值得关注的项目」。每一条都有一个可比较的核心数字,观众想看的是「谁排第一」。
模板把悬念留到最后:从第 N 名倒数到第 1 名,名次越靠前配色越贵(长尾紫 → 3~5 名橙 → 第二银 → 第一金)。
规格
| 项 | 值 |
|---|---|
| 画幅 | 9:16(竖屏,1080×1920) |
| 时长 | 15–300 秒 |
| 内容语言 | 中文 |
| 场景结构 | 1 个开场 + N 张排名卡(N = 1–10,默认 10),按 #N → #1 倒数 |
| 旁白 | 必须,每张卡一段;卡片时长由旁白长度决定,不是固定秒数 |
| 字幕 | 跟随旁白 |
| 需要的素材 | 音频(旁白) |
开场约 2.5 秒,参考片没有片尾,硬切在 #1 卡上。ending 场景可选,渲染与排名卡相同,只用来在榜首后再定格一段。
版面
- 开场:翻页动画亮出榜单名(
textLayers的 headline)+ 副标题(subheadline)。标题不会自动追加「· Top N」,数量请写进副标题。 - 排名卡:页眉(全片常驻)→ 排名数字 + 右上分类徽章 →
owner/repo(等宽字体)→ 一句话说明(最多 3 行)→ 指标名 + 滚动增长的大数字 → 进度条 + 「热度 xx%」。 - 背景:默认全程静止的暗色渐变,刻意压低码率,让卡面文字在低码率下也清楚。
主题变体 6 套:purple 暗紫科技(默认)、crimson 热血红黑、emerald 开源绿、graphite 石墨中性、midnight 午夜深蓝、slate 冷蓝灰。
关键参数
每张卡的内容都写在该场景的 customPayload 里,不要塞进 textLayers。
| 参数 | 位置 | 类型 / 取值 | 默认 | 说明 |
|---|---|---|---|---|
item_count | gen-script 参数(CLI --item-count) | 整数 1–10 | 10 | 榜单条数。传用户要的张数本身:Top 5 就传 5,得到 1 + 5 = 6 个场景 |
topN | customPayload.topN | 整数 1–10 | 10 | 榜单数量,每个场景写同一个值。越界夹到 1–10,无法解析回落 10。只改它不会裁剪已有场景 |
item.rank | customPayload.item | 整数 1–10 | — | 必填。决定配色档位:1 金、2 银、3~5 橙、其余紫 |
item.repo | customPayload.item | 字符串 | — | 必填。owner/repo,等宽字体,长名自动换行 |
item.starDelta | customPayload.item | 数字 | — | 必填。核心数字,驱动滚动动画与进度条。"6,695" 这类纯数字字符串可解析,12k 视为非法 |
item.description | customPayload.item | 字符串 | — | 一句话说明,支持 \n 断行,最多显示 3 行 |
item.badge | customPayload.item | 字符串 | — | 右上分类徽章,建议全大写短语 |
item.heatPct | customPayload.item | 0–100 | 自动推算 | 显式热度百分比,一般不用传 |
maxStarDelta | customPayload.maxStarDelta | 数字 | — | 进度条分母,传榜首的 starDelta,所有卡用同一个值。不传则每张卡都是满格 |
header | customPayload.header | 字符串(建议 ≤ 14 字) | GitHub · 开源热榜 | 顶部页眉,请写明口径,如 GitHub · 本周热榜 |
metricLabel | customPayload.metricLabel | 字符串 | 新增 STAR | 大数字上方的指标名,如 本周新增 STAR / 累计 STAR |
heatLabel | customPayload.heatLabel | 字符串 | 热度 | 进度条下方小字前缀,如 本周热度 |
heatScale | customPayload.heatScale | linear / log / rank | linear | 进度条映射。榜首断层领先时长尾会挤在一起,想拉开差异用 log,只做名次指示用 rank |
countUp | customPayload.countUp | durationSec 0.1–5、delaySec ≥ 0、from、easing: easeOut / linear | 0.75 / 0.1 / 0 / easeOut | 数字滚动动画 |
cardStyle.centerY | customPayload.cardStyle | 0.2–0.8 | 0.5 | 卡片垂直中心位置,上下留白是为了躲开 App 标题栏和互动按钮 |
cardStyle.numberSize | customPayload.cardStyle | 24–120 | 66 | 大数字字号,六七位数指标调到 52~58 |
cardStyle.hideBadge / hideHeatLabel | customPayload.cardStyle | 布尔 | false | 隐藏徽章 / 隐藏「热度 xx%」小字 |
cardStyle.tierColors | customPayload.cardStyle | 档位 gold / silver / bronze / base,字段 accent / badgeBg / badgeText / starColor | — | 逐档覆盖配色 |
opening.preset | customPayload.opening(开场场景) | page-turn / grid-rise / title-only / asset | page-turn | 翻书 / 网格 / 只有标题(最省)/ 用 backgroundAssetId 的图片铺满(只支持图片)。scroll-unfurl 是旧名,按 page-turn 处理 |
opening.pages | customPayload.opening | 整数 2–8 | 5 | 翻书页数 |
opening.curlDeg | customPayload.opening | 0–60 | 26 | 纸张弯曲强度 |
opening.grid / streaks | customPayload.opening | 布尔 / 整数 0–60 | true / 18 | 透视网格开关 / 下落光条数量 |
background.preset | customPayload.background | static / solid / gradient / image / video / noise / none | static | video 和带运镜的 image 会明显抬高码率与渲染时间 |
background.overlayOpacity | customPayload.background | 0–1 | 0.72(开场 0.45) | 图片 / 视频背景上的蒙版。纯白或高调图片建议提到 0.85 左右 |
background.motion | customPayload.background | static / kenburns-in / kenburns-out / pan-left / pan-right | static | 图片运镜,本模板默认不动 |
tailPadSec | customPayload.tailPadSec | 0–5 秒 | 1.5 | 旁白后的静音尾巴,想要紧凑节奏传 0.15~0.5 |
coverHook | customPayload.coverHook | 字符串 | 回落开场标题 | 封面金句 |
totalItems 是旧数据兼容字段,同时存在时 topN 优先,新脚本不要用。
什么时候别选它
- 只推一个项目 → spotlight-card。
- 要演示怎么用、一步步操作 → screen-walkthrough。
- 超过 10 条 → 本模板上限就是 Top 10,要么拆成两条片子,要么换模板。
- 要横屏 → 只有 9:16。
常见坑
- 把场景总数当成条数传。Top 5 要传
item_count: 5;传成scenes=5会静默只出 4 张卡。 - 榜单数据写在 topic、旁白或 textLayers 里。gen-script 只产出骨架,这些地方的数据不会自动填进卡片。每张卡的
customPayload.item(rank / repo / starDelta / description)必须逐个填好,缺失或非法时整卡显示「榜单数据暂不可用」。 - 没写榜单口径。
header/metricLabel/heatLabel的缺省值不带周期,不会出错字,但画面看不出是周榜还是月榜。每张卡都显式写上「本周 / 今日 / 本月」。 maxStarDelta各卡不一致或没传。进度条会失去可比性,或者全部满格。- 标题里的数量和条数对不上。gen-script 只告警不改写;渲染时只会同步 1–10 之间且全文一致的数字,「Top 100」和互相矛盾的写法不动。脚本里的文案是你确认时看到的,最好一开始就写对。
- 每张卡都给固定 5 秒。卡片时长跟旁白走,每张卡都要有自己的旁白。
下一步
- 脚本生成(gen-script) — 输入一个主题,产出结构化的视频 DSL:分几个场景、每个场景讲什么、要哪些素材。这是整条流水线的第一步,出稿后会停下来等你确认。
- 配音(gen-voice) — 文字转语音(Minimax)。返回可直接播放的音频 URL,JSON 输出时附带音频时长和字幕时间轴,不需要下载。
- 网页正文抽取(web-read) — 用无头浏览器打开任意 URL,把页面正文抽成 Markdown / 纯文本 / JSON——标题、段落、列表、代码块、表格都在,导航和广告不在。
- 素材准备(prepare-video-assets) — 拿一份 DSL,把里面引用的每张图、每段音频、每个视频和数字人都真的生成出来,落成一个渲染计划,返回 job_id。
- 视频渲染(render-video) — 按 job_id 取出渲染计划,交给 Remotion 渲染引擎出片并上传。它不生成任何素材——素材必须已经准备好并经你确认。
- 竖屏聚焦卡片 — 9:16 单场景推介模板。顶部黄色胶囊钩子 + 中部图片视频轮播 + 底部打字机文案,没有旁白,节奏由打字速度决定。
- 屏幕录制解说 — 9:16 竖屏三段式:顶部固定四行表头、中间真实录屏舞台、底部旁白字幕条。GitHub 项目、CLI 工具、SaaS 功能演示的首选。