Communitygithub.com

播客开场白(冷开场)

为长篇《Fringe Lines》播客剧集打造35–60秒的精彩开场集锦——精选剧集中最佳台词,配以说明性图形切出、关键词字幕、快速转场+音效,并以包含话题列表的标题卡收尾。

播客开场白(冷开场) 是什么?

该技能专为AI代理(如Claude Code、Cursor)设计,用于自动化创建长篇播客的冷开场。其核心工作流围绕一个Python脚本`pipeline/build_episode.py`构建,该脚本读取剧集JSON配置(`episode.json` → `intro`),利用Remotion渲染(`IntroV2`合成)生成动态视频。技能引导代理完成一个六步流程:挖掘文本以选择最佳剪辑(优先数字、大胆主张、趣闻),在JSON中配置剪辑及其视觉元素(如统计图、引用卡),规划并验证时间线(目标35–50秒剪辑加4.5秒标题卡),渲染图形和最终视频,并执行QA检查(如音频响度、字幕准确度)。它支持自定义图形类型(统计、人物、引用等)和关键帧特效,确保开场引人入胜且精确同步。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qdevery/fringe-lines-video/tree/main/.agents/skills/podcast-intro

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

长篇播客开场(冷开场)

视觉风格参考 Greg Isenberg 的长篇开场。其吸引力在于:

  • 以最强力的台词开场,不要先展示标志。
  • 每 3–6 秒切换一次画面。
  • **让大约每隔一个片段成为切出:**演讲者滑入左侧卡片,同时图形落在右侧。
  • **字幕保持简短:**1–3个词,橙色的关键词。
  • **以标题卡结尾:**展示未来内容的卡片。

工作流是 pipeline/build_episode.py,由 work/<ep>/episode.json → intro 驱动。渲染使用 Remotion 的 IntroV2 合成(pipeline/remotion/src/IntroV2.tsx);图形来自 Graphics.tsx。

1. 从剧集中挖掘剪辑片段(选出 8–10 个候选,保留 7–9 个)

  • 读取转录文本(work/<ep>/words-*.json 或 Descript 的 .txt 文件),列出可在 6 秒内独立的台词。
  • 按优先顺序:
    1. 一个硬数字:“支付 27% 的员工让他们离职”、“900% 的收入留存”。
    2. 一个大胆的主张或预测:“token 将会渗透到一切”。
    3. 一个忏悔或 relatable 的痛苦:“我对支付订阅费感到无比厌倦”。
    4. 一个有趣或情绪化的反应:“我会全力 token max”。
    5. 一句可引用的结尾:“超级智能的价值无法衡量”。
  • **跨话题分布:**每个章节大约一个片段,两位主持人都要出现,至少有一个笑声。
  • 排列集锦顺序:
    • 片段1是单个最强的钩子,通常是一个数字或主张。
    • 交替变换演讲者和能量。
    • 将最可引用的台词放在最后,紧接标题卡。
  • 跳过:
    • 需要上下文的台词(“正如我所说”、“那张图表”);
    • 超过约 6 秒的台词;
    • 有重叠对话的台词。
  • **脏话:**仅当用户接受明确的开场时才保留,并在报告中说明。

2. 配置 episode.json → intro

"title": "FRINGE LINES",
"subtitle": "2026年10月30日",
"intro": {
  "style": "v2",
  "title": "Fringe Lines",
  "title_seconds": 4.5,
  "topics": ["晨间循环", "微软员工规模", "构建 vs 购买", "Token限制", "Google vs AI模式", "Anthropic的S-1", "AI支出"],
  "emphasis": ["27%", "leave", "900%", "retention", "sql", "agents", "tokens", "everything", "maxing"],
  "clips": [
    {"say": "microsoft just offered", "until": "employees to leave", "tag": "AI与就业", "replace": {"27": "27%"},
     "graphic_on": "27%", "graphic": {"type": "stat", "kicker": "微软买断报价", "value": 27, "suffix": "%", "label": "被提供离职补偿金的员工占比 *离职*"}},
    {"say": "tokens are going to seep", "until": "like the internet", "tag": "Token无处不在"}
  ]
}
  • **say / until:**剪辑片段的开始和结束几个口语词,匹配时不区分大小写和标点。匹配发生在剧集中的第一次出现,因此 say 要具有辨识性(3–5 个词)。如果其他演讲者覆盖了该台词,匹配器会仅使用一位演讲者的词语重试。
  • **pre:**在 say 之前的可选领先时间(秒)。
  • **tag:**显示在左上角的话题标签及其编号。使用 1–3 个词。
  • **replace:**字幕修正,例如数字、“sequel” → “SQL”,或 "a": "" 来隐藏某个词。
  • **graphic + graphic_on:**切出图形大约在口语词 graphic_on 前 150 毫秒出现。
    • 可选的 graphic_off(一个较晚出现的词)可恢复至全帧画面。
    • 如果没有 graphic_off,则切出持续到剪辑结束。
  • **切出数量:**为 3–5 个剪辑添加切出。选择含有数字、知名的公司或产品名称,或可引用台词的片段。对反应和笑声片段则保持全帧。
  • 图形类型(与编辑短片相同):
    • stat:一个计数数字,带有提示词和标签;
    • people:图标网格;
    • lines:示意图趋势线;
    • quote:墨水卡片;
    • headline:新闻式卡片,带有高亮扫描效果;
    • list:编号行。
    • 使用 *word* 表示橙色斜体。
  • **诚实性:**屏幕上的数字必须与所说内容一致。图表是示意性的,绝不捏造数据。
  • **topics:**用于标题卡的 5–7 个简短章节名称,按剧集顺序排列。
  • **emphasis:**12–25 个关键词,在字幕中显示为橙色:数字、名称、点题词。
  • **title_seconds:**4–5 秒。标题卡为“Fringe Lines”(serif 字体),最后一个单词为橙色斜体,包含日期和一个“本期剧集”列表。

3. 在渲染前检查计划

~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage plan
  • 它会打印每个开场剪辑的标签、长度和字幕文本。
  • 修复所有 WARN intro clip not found:调整 say/until 的措辞以精确匹配转录文本。
  • **目标总时长:**剪辑 35–50 秒加 4.5 秒标题。删除或修剪超过 6 秒的剪辑。
  • 仔细阅读每行字幕,找出误听的单词并添加 replace 修正。

4. 渲染

~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage graphics   # 开场剪辑 + IntroV2 + 下方字幕条
~/.shorts-skill/bin/python pipeline/build_episode.py --ep <ep> --stage final      # 拼接开场 + 主体、章节、响度标准化
  • 为两个命令添加 --blur 以生成背景模糊版本。它需要 ~/.cache/fringe-lines-video/blur/ 中的模糊摄像机画面(见 pipeline/bg_blur.py),并从单独的缓存中写入 <ep>-fringe-lines-blur.mp4。
  • 主体部分无需因开场更改而重新渲染。
  • 章节文件会重新生成,因此所有时间戳都会随开场长度而偏移。
  • 音效(嗖嗖声、砰砰声、进入标题的长嗖嗖声)会生成到图形文件夹中,并由 Remotion 混合。

5. QA

F=out/episode/<ep>-fringe-lines.mp4
ffmpeg -v error -y -i $F -t 50 -vf "fps=1,scale=320:-1,tile=8x7" -frames:v 1 /tmp/intro.png

检查:

  • 每个切出的卡片完全显示在屏幕上,其数字与所说内容一致,且无残留的 *。
  • 字幕显示橙色关键词,且无字幕与演讲者卡片底部边缘重叠。
  • 标题卡按顺序列出所有话题。
  • 视频和音频时长匹配(ffprobe -show_entries stream=codec_type,duration)。
  • 剧集响度约为 −15.5 LUFS。
  • 章节文件以 00:00 Cold open 开头,接着是开场时长,然后才是“Catching up”。

向用户报告:

  • 剪辑列表(标签 + 台词);
  • 哪些剪辑带有切出;
  • 开场时长;
  • 任何明显用语;
  • 任何需要验证的数字。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

carousel

Make a Fringe Lines image carousel (Instagram/LinkedIn, 1080x1350 PNG slides + PDF) — photo slides with big condensed caps headlines and accent words, large-type text-only slides, chart/screenshot slides, explainer-graphic slides and a follow CTA. Use when asked for a carousel, slide post, or "swipe" post from an episode or a topic.

editorial-short

Make a Fringe Lines vertical short in the "editorial" style (paper background, speaker that morphs between full-bleed / card / round PiP, explainer graphics, word-by-word serif captions, hook + end card, SFX). Use when asked to make, restyle or fix a short from an episode.

engaging-monologue

Make a 16:9 FringeLines "engaging monologue" video from a solo talking-head take — jump cuts with punch-ins, the speaker shrinking into a portrait picture-in-picture while serif kinetic text, diagrams (pyramid stack, compare, roadmap, steps, big stat) and b-roll cards build on a paper canvas, plus callout cards, lower thirds, chips, a CTA pill and a green end card, all synced word by word to the speech. Use for YouTube explainers, solo commentary, newsletter-to-video and "one idea, told well" pieces.

infographic

Make a single-image editorial infographic (1080x1350) that explains one idea at a glance — two-tone headline, one-sentence dek, a hero visual with 2–4 numbered callouts and leader lines, an optional side note, a three-column "why it matters" row with icons, byline and sources. Use for "explain X in one graphic" posts about a company move, a framework, an architecture or a trend; the PNG can also be a carousel slide.

相关技能