Communitygithub.com

trend-explainer-video

GitHub 热榜/排行榜类中文口播讲解视频的完整产线(暗色科技风 Remotion 成片)。支持从抓取、撰稿、配音到渲染、质检、交付的全流程自动化。

trend-explainer-video란 무엇인가요?

此技能(skill)专为制作 GitHub 趋势榜、排行榜类中文口播讲解视频而设计,输出暗色科技风格的 Remotion 最终成片。它并非从零实现渲染,而是基于已有的 TalkCraft 视频引擎(位于 `C:/Users/<用户名>/.workbuddy/skills/video-talkcraft`)提供完整的工程骨架、全链路脚本、视觉定版和实战排障指南。该技能不仅涵盖了榜单快照抓取、口播稿撰写(35 句固定结构,含排名、简介、用法等)、Edge-TTS 配音(带字级时间戳)等基础步骤,还实现了高度差异化的视觉体系:如独立的名次页面(金色大字、进度条)、内容镜三件套(全屏插图背景、动态卡片、终端演示)、以及“怎么用三步配图镜”。最终交付需通过一系列机器检查(包括标语检查、运动检测、音效检查、合同检查)和响度归一化(loudnorm),确保视频质量。支持 Windows 环境,并提供常见问题(如 429 限流、运动检测误判、服务端渲染错误)的解决方案。

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/daxian942-tech/trend-explainer-video/tree/main

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

trend-explainer-video:排行榜口播讲解视频产线

以 C:/Users/<你的用户名>/.workbuddy/skills/video-talkcraft(TalkCraft skill)为渲染引擎,本 skill 提供排行榜类题材的工程骨架、全链脚本、视觉定版与实战排障。视频理论/通用闸门见 TalkCraft 本体,本 skill 不重复。

产线步骤(命令与坑见 references/pipeline.md)

  1. 抓快照:榜单页一次性抓取(curl 走用户代理),存 data/snapshot.md/.json 作唯一口径——排名/星数/简介/语言只许出自这一次抓取,禁止编造。
  2. 口播稿 script.json:35 句定版结构 = 1 开场 + 10 项目 ×(名次句 + 详单/总星句 + 怎么用句 + 总星句)+ 3 尾段(收束/金句/CTA)。硬规矩:数字全汉字;每个项目开头必报「第一名/第二名……」;每个项目加一句「怎么用」旁白(动词起头,讲用在哪/怎么用/解决什么)。开场直接点题「今天这份 GitHub 每周热榜,前十名我一次讲完」。
  3. 配音:synth_voice.py(VOICE/RATE 顶部,edge-tts 需 HTTP_PROXY)→ assemble_voice.py(full.wav + timestamps.json)→ cp audio/full.wav remotion/public/narration.wav。
  4. 时间轴重建:make_timing.py → gen_beats.py(含 anchors.json 生成)→ gen_cues.py。三处锚表必须同步:gen_beats 的 REPO_ANCHORS、gen_cues 的 REPO_CFG、all.tsx 的 REPO_CFG,外加 scenes/index.ts 的 sceneFor(尾段 chart/quote/cta 镜号因插句后移)。任何配音参数变动 = 全链重建,绝不只换音轨。
  5. 工程落地:从 assets/remotion-template/ 复制骨架;改 src/data.ts(快照数据)、src/scenes/all.tsx 的 REPO_CFG/USES/STEPS/ICONS/DETAILS 五张表 + RANK_LIST 名次镜表。其余场景代码原样复用。npx tsc --noEmit 验证。
  6. 渲染:node <video-talkcraft>/scripts/render_shots.mjs --all --concat out/assembled.mp4 --audio out/full-mix.wav --mux out/v?.mp4(full-mix 按 timing 指纹自动重渲)。
  7. 机器闸(全绿才交付):beat_lint → motion_check(静止+抖动)→ sfx_check solo+mix → workbench_contract_lint。阈值与 FAIL 处方见 pipeline.md。
  8. 交付:loudnorm 两遍(量测→线性归一)→ delivery.mp4 → 重跑 sfx_check --mix → present_files。
  9. 封面:gen_cover.py 生成 1080×1920 竖屏通用封面(无具体项目,长期复用),产出 cover_vertical.png/.jpg。

本产线的差异化视觉(v16 定版,详见 references/style-guide.md)

  • 名次独立页 RankPage:念名次词的镜整屏渲染为独立「第N名」页(金色 240px 大字 + RANK #N + 仓库名 + 星数 + 10 段进度条),不与项目内容同屏。
  • 内容镜三件套:IllBg 全屏插图背景(blur30+暗化)+ OgiCard 动态插图卡(EFFECT PREVIEW + Ken Burns + 光点 + 扫光)+ DemoPanel 终端/网格演示,配 USES 3 条(emoji)+ DetailBlock 详解轮播。
  • 怎么用三步配图镜 HowScene:三步各一张 StepIcon 图标配图卡(渐变底 + 大 emoji + STEP 角标),STEPS/ICONS 两表驱动。
  • Ambient 全屏环境动效:三道光带错相位横扫,治 motion_check 静止段(小卡/文字场景必加)。
  • 暗色视觉:色板见 style-guide.md;星数金色 #FFC94D、周增绿 #63E6A4。

高频坑(详见 references/pipeline.md)

  • ImageGen 图片生成可能持续 429 限流 → 图标配图用 emoji 图标卡(StepIcon)、封面用 PIL 程序化(gen_cover.py),零成本稳定且贴切;服务恢复可换 AI 图。
  • motion_check 静止段(freezedetect noise=0.003):小卡/静态文字/模糊背景场景,慢 sin 动效救不了 → Ambient 三光带错相位横扫(≥3 道,2 道有真空期)。
  • <Video> 服务端渲染必炸 → OffthreadVideo + muted。
  • 素材 fps ≠ 成片 fps → motion_check 判「重复帧」;光流补帧用 minterpolate=mi_mode=blend。
  • Windows:符号链接全被拒 → 复制目录;ffmpeg 7+ 无 -vsync → -fps_mode passthrough。
  • edge-tts 需代理:HTTP_PROXY/HTTPS_PROXY=http://<你的代理>。
  • 改 all.tsx 用 python 原子重写(Windows EBUSY 竞态会让 Edit 假成功);bash heredoc 传含反引号的 python 会被截断 → 用 Write 写 .py 再执行。

环境速查

  • bash PATH 每次会话补:PortableGit usr/bin + ffmpeg-bin;python 用 venv:C:/Users/<你的用户名>/.workbuddy/binaries/python/envs/default/Scripts/python.exe;node 用托管版直跑;tsc 跑 node_modules/typescript/lib/tsc.js(bin/tsc 被 fnm shim 劫持)。

관련 스킬