|
@@ -10,7 +10,6 @@ The output JSON must follow this exact schema:
|
|
|
{
|
|
{
|
|
|
"title": "string — video title, concise and catchy",
|
|
"title": "string — video title, concise and catchy",
|
|
|
"summary": "string — one-sentence summary",
|
|
"summary": "string — one-sentence summary",
|
|
|
- "coverTags": "array of strings — OPTIONAL, github-trending only. ≤5 short theme tags (2-6 chars each) naming the main tech areas/themes across the selected repos. Omit for other templates.",
|
|
|
|
|
"trendSummary": "string — OPTIONAL, github-trending only. One short sentence (≤30 chars) synthesizing the day's overall trend. Omit for other templates.",
|
|
"trendSummary": "string — OPTIONAL, github-trending only. One short sentence (≤30 chars) synthesizing the day's overall trend. Omit for other templates.",
|
|
|
"scenes": [
|
|
"scenes": [
|
|
|
{
|
|
{
|
|
@@ -22,7 +21,7 @@ The output JSON must follow this exact schema:
|
|
|
{ "type": "text|highlight|image|icon|transition", "content": "string" }
|
|
{ "type": "text|highlight|image|icon|transition", "content": "string" }
|
|
|
],
|
|
],
|
|
|
"images": "array — optional, image references. Entries may use { path } for local files, { url } for remote URLs, or { repoSocialPreview: \"owner/name\" } for GitHub repo social preview cards (only used by github-trending template).",
|
|
"images": "array — optional, image references. Entries may use { path } for local files, { url } for remote URLs, or { repoSocialPreview: \"owner/name\" } for GitHub repo social preview cards (only used by github-trending template).",
|
|
|
- "github": "object — optional, only for github-trending template. Shape: { repo: { owner, name, fullName, language, languageColor, stars, forks, license }, highlights, intro, review }. See template-specific rules.",
|
|
|
|
|
|
|
+ "github": "object — optional, only for github-trending template. Shape: { repo: { owner, name, fullName, language, languageColor, stars, forks, license, todayStars }, highlights, intro, review }. See template-specific rules.",
|
|
|
"durationHint": 10,
|
|
"durationHint": 10,
|
|
|
"backgroundQuery": "string — describe the ideal background image",
|
|
"backgroundQuery": "string — describe the ideal background image",
|
|
|
"layoutHint": "full-text|split|centered|bullet-list"
|
|
"layoutHint": "full-text|split|centered|bullet-list"
|
|
@@ -95,15 +94,14 @@ Template: GitHub Trending Showcase (GitHub 每日热榜)
|
|
|
- Do not create overview, summary, or trend-overview SCENES. The opening title screen (cover) is built by the pipeline; it does not need a scene. Instead, convey the day's overall theme via the two top-level cover metadata fields below. Each repo scene MUST focus on its own repo.
|
|
- Do not create overview, summary, or trend-overview SCENES. The opening title screen (cover) is built by the pipeline; it does not need a scene. Instead, convey the day's overall theme via the two top-level cover metadata fields below. Each repo scene MUST focus on its own repo.
|
|
|
- The output for this template relies on structured metadata embedded in the input. Treat that metadata as authoritative — DO NOT paraphrase or invent values.
|
|
- The output for this template relies on structured metadata embedded in the input. Treat that metadata as authoritative — DO NOT paraphrase or invent values.
|
|
|
|
|
|
|
|
-COVER METADATA (github-trending only — emit these two TOP-LEVEL fields alongside title/summary; omit them for every other template):
|
|
|
|
|
-- coverTags: ≤5 short theme tags (2-6 Chinese chars, or a short English term). Each tag names the main technical AREA or THEME a selected repo belongs to — e.g. "代码智能", "时序模型", "视频编辑", "情报看板", "生成式AI", "AI Agent", "Rust 运行时". NOT programming languages and NOT repo names. Prefer one tag per selected repo; if two repos share a theme, merge them and pick a distinct area so the set still spans up to 5 areas. Plain CJK/ASCII only — no emoji, no decorative symbols.
|
|
|
|
|
-- trendSummary: one short sentence (≤30 chars) synthesizing the overall trend across today's repos — what theme is hot or emerging. Must read as an editorial insight, NOT a restatement of the tags or a generic filler. Example: "AI Agent 与代码智能工具持续升温". Plain CJK/ASCII only.
|
|
|
|
|
|
|
+COVER METADATA (github-trending only — emit this TOP-LEVEL field alongside title/summary; omit it for every other template):
|
|
|
|
|
+- trendSummary: one short sentence (≤30 chars) synthesizing the overall trend across today's repos — what theme is hot or emerging. Must read as an editorial insight, NOT a restatement of the repo list or a generic filler. Example: "AI Agent 与代码智能工具持续升温". Plain CJK/ASCII only.
|
|
|
|
|
|
|
|
PER-REPO SCENE STRUCTURE (mandatory for every repo scene):
|
|
PER-REPO SCENE STRUCTURE (mandatory for every repo scene):
|
|
|
|
|
|
|
|
displayText: the repo's fullName (e.g. "facebook/react"). Nothing else.
|
|
displayText: the repo's fullName (e.g. "facebook/react"). Nothing else.
|
|
|
|
|
|
|
|
-github.repo: COPY the contents of the corresponding "<!-- repo-meta: ... -->" block from the input VERBATIM into scene.github.repo. Do not drop fields, do not rename keys, do not reformat numbers (keep stars as an integer). If license is empty string, keep it as empty string — the template will skip the license tag.
|
|
|
|
|
|
|
+github.repo: COPY the contents of the corresponding "<!-- repo-meta: ... -->" block from the input VERBATIM into scene.github.repo. Do not drop fields, do not rename keys, do not reformat numbers (keep stars as an integer). If license is empty string, keep it as empty string — the template will skip the license tag. If the repo-meta block omits todayStars but the repo's text contains a "Today: +N" line, extract the integer N and set github.repo.todayStars to it.
|
|
|
|
|
|
|
|
images: array of EXACTLY TWO entries, copied from the corresponding "<!-- repo-images: ... -->" block:
|
|
images: array of EXACTLY TWO entries, copied from the corresponding "<!-- repo-images: ... -->" block:
|
|
|
1. { "repoSocialPreview": "owner/name" } — DO NOT expand this into a URL. The assets stage resolves it.
|
|
1. { "repoSocialPreview": "owner/name" } — DO NOT expand this into a URL. The assets stage resolves it.
|
|
@@ -118,7 +116,7 @@ github.review (点评推荐): one short recommendation, ≤ 30 Chinese character
|
|
|
|
|
|
|
|
narration (口播): ≤ 200 characters. Cover what the project does (deeper than intro), why it is notable today (timing / trend / adoption), and one distinctive characteristic a developer cares about. Pack specifics — numbers, comparisons, concrete use cases. Do NOT include a language bullet unless language is core to the value; do NOT read out the GitHub URL.
|
|
narration (口播): ≤ 200 characters. Cover what the project does (deeper than intro), why it is notable today (timing / trend / adoption), and one distinctive characteristic a developer cares about. Pack specifics — numbers, comparisons, concrete use cases. Do NOT include a language bullet unless language is core to the value; do NOT read out the GitHub URL.
|
|
|
|
|
|
|
|
-GREETING RULE (overrides the base prompt's first-scene greeting rule): the cover scene for this template already opens with "大家好,今天是...". Therefore EVERY content scene's narration — including the first repo scene — MUST NOT begin with any of the following:
|
|
|
|
|
|
|
+GREETING RULE (overrides the base prompt's first-scene greeting rule): the cover scene for this template already opens with a short factual masthead line ("…,今日精选 N 个热榜项目。") that frames the day. Therefore EVERY content scene's narration — including the first repo scene — MUST NOT begin with any of the following:
|
|
|
- A greeting: "大家好", "各位", "哈喽", "嗨", time-of-day greetings.
|
|
- A greeting: "大家好", "各位", "哈喽", "嗨", time-of-day greetings.
|
|
|
- A show-opener that references the day, show, or format: "今天是GitHub热榜速览", "今天为大家带来...", "今天给大家介绍...", "本期节目...", "本周热榜...", "欢迎收看...".
|
|
- A show-opener that references the day, show, or format: "今天是GitHub热榜速览", "今天为大家带来...", "今天给大家介绍...", "本期节目...", "本周热榜...", "欢迎收看...".
|
|
|
- Any meta lead-in. The narration must start DIRECTLY with project content (e.g. "首先要聊的是 React...", "接下来这个项目...", "React 是 Facebook 出品的声明式 UI 库...").
|
|
- Any meta lead-in. The narration must start DIRECTLY with project content (e.g. "首先要聊的是 React...", "接下来这个项目...", "React 是 Facebook 出品的声明式 UI 库...").
|
|
@@ -174,7 +172,7 @@ For multi-project sources, EACH project scene follows this same structure indepe
|
|
|
"github-trending": `
|
|
"github-trending": `
|
|
|
Data source: GitHub Trending (热门仓库列表)
|
|
Data source: GitHub Trending (热门仓库列表)
|
|
|
- The input is a list of multiple trending repositories. Treat it as a roundup.
|
|
- The input is a list of multiple trending repositories. Treat it as a roundup.
|
|
|
-- Aim for 3-6 repos; if the input has more, pick the most notable ones (highest stars, biggest daily growth, or most novel).
|
|
|
|
|
|
|
+- Select EXACTLY the 6 repos with the highest today's star gain (github.repo.todayStars, mirrored by the 'Today: +N' line), in descending order. Produce one scene per repo in that order so the video follows the same ranking shown on the cover. If the input has fewer than 6 repos, use all of them.
|
|
|
- One scene per repo. EVERY repo scene MUST follow the per-project scene structure below (headline + mandatory 功能简介 / GitHub 地址 / 使用场景 cards + optional value-add card + detailed narration).
|
|
- One scene per repo. EVERY repo scene MUST follow the per-project scene structure below (headline + mandatory 功能简介 / GitHub 地址 / 使用场景 cards + optional value-add card + detailed narration).
|
|
|
- Connect repos with a short narrative thread between scenes if there's a shared theme (e.g. "今天 AI Agent 持续火热"), but each project scene stands on its own.
|
|
- Connect repos with a short narrative thread between scenes if there's a shared theme (e.g. "今天 AI Agent 持续火热"), but each project scene stands on its own.
|
|
|
- Tone: pragmatic, factual, no hype. The audience is developers.
|
|
- Tone: pragmatic, factual, no hype. The audience is developers.
|