mcpField
P
podcast

podcast

github.com/pika-labs创意与媒体411.7k 次安装14 周前更新
代码仓库

关于 podcast

podcast 是一项生成 1 分钟双主持播客视频的技能,可从 URL 或自由文本简报创作内容。它结合来源信息或主题对话,并支持生成画面和配置语音。

主要功能

  1. 01支持 URL 或主题输入
  2. 02分为四段,每段 15 秒
  3. 03生成演播室与主持人图像
  4. 04可配置预设或克隆语音
  5. 05付费生成前需确认费用

适用场景

  1. 01将产品页面改编成短播客评述
  2. 02根据主题简报制作双主持讨论

MCP 相关

通过 MCP 工具检查余额并生成媒体,包括图像和参考视频;付费调用前须经用户确认。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pika-labs/pika-plugins --skill podcast

安装后在 Claude Code 中输入/podcast确认已加载。

详细介绍

/pika:podcast

4 幕 × 每幕 15 秒 = 共 60 秒。主持人 A 始终在左侧,主持人 B 始终在右侧。接受 URL 或自由形式的话题/简报。

参数

参数默认值说明
input必填要点评的 URL 或自由形式的话题/简报(例如:“我和 Elon Musk 谈论火星”)
bg_img自动生成播客录音室背景
host_a_img自动生成主持人 A 肖像——参见下文“真人处理”
host_b_img自动生成主持人 B 肖像——参见下文“真人处理”
voice_a876341503281471517Kling 预设音色或主持人 A 的克隆音色 ID
voice_b829837252279803904Kling 预设音色或主持人 B 的克隆音色 ID
aspect_ratio16:9输出宽高比

费用透明度确认

进行任何付费 MCP 调用前,调用一次 identity_balance({verbose: true})。告知当前余额、近期消耗速率和剩余可用时长,然后用以下原文确认是否继续:

预计费用:四段 Kling v3-omni pro 15 秒视频、可选的缺失素材图像生成、一次单幕纠错重试、拼接和飞行后 analyze_media QA,总计约需 6,000-9,000 点数(约 $60-$90)。费用超过 $5。回复 proceed 以继续,或回复 cancel 以停止。

在用户回复 proceed 前,不得调用任何付费 MCP 工具。如果用户回复 cancel,则停止,不生成任何内容。这是唯一的是否确认环节;用户回复 proceed 后,渲染四幕并返回 URL。

默认设置——快速执行,中途无需确认

  • 静默使用参数表中的默认音色。 voice_a 默认为 Kling 预设音色 876341503281471517,voice_b 默认为 829837252279803904。执行前不要询问“要用哪种音色?”,仅在用户明确指定时使用覆盖值(voice_a=、voice_b=)。
  • 静默自动生成任何缺失的主持人肖像(步骤 1 的原型提示词)。不要询问“要不要生成主持人图像?”,直接生成即可。
  • **只有费用透明度确认会询问是否 proceed。**用户回复 proceed 后,提交 → 渲染 4 幕 → 返回 URL。账户点数余额和服务提供商故障转移是标准防护措施。为保持向后兼容,接受 --yes 标志,但不执行任何操作。
  • 话题模式角色设定(步骤 3)——用户提到真人公众人物时,静默遵循步骤 4(真人处理):默认使用原型肖像,不自动生成照片写实肖像,也不询问用户是否拥有肖像权。

生成前墙钟超时防护

在确定播客输入并通过成本门槛后,技能启动时立即开始计时。第一次付费生成调用是为缺失的背景/主持人素材调用 generate_image。如果所有素材都已提供,第一次付费生成调用则是 generate_reference_video。必须在技能启动后 5 分钟内发起第一次付费生成调用。如果技能启动后 5 分钟内仍未发起第一次付费生成调用,请在任何付费生成调用之前停止,并报告 failed_pre_generation_timeout,同时提供目前已有的信息:输入模式、素材状态、语音状态、URL 抓取/WebFetch 状态、脚本草稿状态,以及确切的阻碍。不要继续完善主持人原型、事实依据、笑话或分幕措辞。

每个准备阶段结束后,以及付费生成调用前,打印一行进度检查点:

  • Stage 1/4 done — input resolved and cost gate passed, locking missing-asset image prompts.
  • Stage 2/4 done — missing asset prompts ready, calling image generation now. 如果缺少任何背景或主持人图片,请在第一次调用 generate_image 前立即打印此信息。如果所有图片都已提供,则改为打印 Stage 2/4 done — assets and voices ready, collecting URL/topic facts.,并继续,不调用图像生成。
  • Stage 3/4 done — script draft locked, preparing first act.
  • Stage 4/4 done — first act prompt ready, calling Kling now.

第一次调用 generate_image 前,缺失素材的图像提示词最多迭代 2 轮。达到最多 2 轮后,将现有内容提交给 generate_image;不要继续完善主持人原型、演播室背景细节或角色风格。调用 Kling 前,脚本和分幕提示词最多迭代 2 轮。达到最多 2 轮后,将现有内容提交给 generate_reference_video;不要继续完善笑话、打断方式、角色设定或镜头措辞。

Claude Desktop 上的本地图片

Claude Desktop 目前无法将内联粘贴的图片传递给 MCP 工具(Anthropic 方面的限制)。如果用户内联粘贴了照片,或提到想用作 host_a_img / host_b_img 的本地文件,请暂停步骤 1,并友好地向他们说明以下内容,例如:

请注意——Claude Desktop 目前无法将粘贴的图片传递给 MCP 工具(Anthropic 的限制)。处理照片有两个简单选项:

  • 粘贴 URL(如果图片已经托管在 Imgur、S3 或你的网站上)——最快
  • 附上图片文件,这样我就可以在生成前上传。

收到本地文件后,在步骤 1 前使用 upload_asset 将其转换为公开 URL,并将返回的 public_url 用作参数。已经托管的 https://... URL 可直接使用,无需执行此流程。

如果用户提到某位现实中的公众人物,但没有附上任何图片,请勿自动生成其肖像——步骤 4(真人处理)会改用原型肖像。

长时间运行的 task_status 轮询

当任何长时间运行的生成或编辑调用返回 task_id(无论是否包含初始状态),包括 {task_id}、{task_id, status: "queued"},或初始状态为 queued、running 或 processing 时,立即记录任务 ID 和开始时间。

  • 紧密循环调用 task_status({task_id}),直到任务进入终止状态(completed | failed | cancelled)。不要手动休眠,也不要使用 Bash 轮询;工作线程会让每次状态调用保持等待。
  • 当状态为 queued、running 或 processing 时,每 60 秒输出一行可见进度:Seedance i2v queued for {N}m {S}s... still processing。轮询 Kling、图像生成、克隆语音或拼接任务时,替换提供方/阶段标签。
  • 任务 completed 时,提取返回的结果 URL 并继续。
  • 任务 failed 或 cancelled 时,向用户报告失败,并提供 task_id、状态和最后一条状态消息。
  • 从最初提交起满 15 分钟后,如果任务仍未进入终止状态,则调用 task_cancel({task_id}),然后向用户报告失败。如果取消操作返回任务已经处于终止状态,则再调用一次状态查询,并报告该终止结果。
  • 原任务仍处于 queued、running 或 processing 状态时,不要重复提交请求。

步骤

0. 解析输入(空参数菜单)

从 $ARGUMENTS 中移除标志(--yes、--no-captions 等)和 key=value 参数。如果剩余内容为空或仅包含空白字符,则原样输出以下菜单作为完整回复,然后停止并等待用户的下一条消息——不要调用任何工具,不要继续执行步骤 1,也不要自行编造主题或 URL。如果移除后的输入不为空(URL 或任意文字),则静默跳过此步骤并继续执行步骤 1。

**您想做一期关于什么内容的播客?**以下内容都可以:

  • 网站 URL(产品页面、文档站点、发布页面)——例如 https://pika.art
  • GitHub 仓库——例如 https://github.com/anthropics/claude-code
  • 博客文章/文章 URL——例如您希望讨论的一篇近期文章
  • 自由主题或简述——例如 "我和埃隆·马斯克聊火星" 或 "两位科学家辩论 AGI"

回复您的选择,我会生成一段 1 分钟的双主持人播客视频(4 幕 × 约 15 秒)。

提示:您无需输入 /pika:podcast——只需说“制作一期关于 的播客”“播客评论 ”或“我和 聊聊 ”之类的话,我就会自动启动此技能。

用户回复后,将其回复视为已解析的输入(URL 或主题),并继续执行步骤 1。不要再次提示。

1. 生成缺少的素材(并行)

仅生成用户未提供的内容。默认原型提示词:

  • bg_img — 现代播客录音室,两把椅子,暖色灯光,无人,16:9
  • host_a_img — 热情的主持人,录音室肖像,人物位于画面左侧,1:1
  • host_b_img — 务实的怀疑派主持人,录音室肖像,人物位于画面右侧,1:1

如果输入中提到了特定人物(步骤 3),则调整原型以匹配人物风格——参见下文“真实人物处理”。

2. 解析语音 ID

使用给定的 voice_a / voice_b;否则使用默认 Kling 预设(876341503281471517 / 829837252279803904)。如果用户通过 voice_a= / voice_b= 提供了克隆语音 ID,则直接使用。

3. 解析输入模式——URL 与主题

从 $ARGUMENTS 中剥离标志(--yes、--no-captions 等)和 key=value 参数。检查剩余内容。

URL 模式——输入中包含 https?:// URL:

  • 对该 URL 调用 capture_website,仅用于视觉参考:产品/页面名称、可见布局、屏幕截图、B-roll 线索,以及一个可拿来开玩笑的视觉细节。
  • 对同一个 URL 调用 WebFetch,并将其全文作为脚本的事实来源。不要仅依赖屏幕截图获取事实。
  • 从合并后的输入中提取:产品名称、价值主张、2–3 个具体功能或事实、定价、一个可拿来开玩笑的细节,以及任何具体引语或说法。
  • 对于长篇页面(Wikipedia、文档、博客文章或文章),检查 WebFetch 的全文,寻找导语之后的深入章节。若至少有 3 个实质性的深入章节,脚本必须提及导语之后至少 3 个不同章节(例如架构、训练、幻觉、局限性、部署或安全),而不能只介绍开篇摘要。
  • 使用 WebFetch 文本作为事实依据,并使用 capture_website 获取视觉信息。如果二者冲突,事实说法以 WebFetch 为准,并将屏幕截图视为视觉参考。

主题模式——输入为自由形式的文本(不含 URL):

  • 将全部输入视为创作简报。解析以下内容:
    • 主题——对话内容
    • 主持人——若有明确提及则使用所述信息(“我和 Elon Musk”“两位科学家”“Joe 和 Sarah”);否则使用默认设置(热情的主持人 + 持怀疑态度的主持人)
    • 角度——辩论/采访/讲解/闲聊
    • 具体事实——用户提供的任何具体说法、数字、日期或引语
  • 如果没有提供具体事实,使用 2–3 条明确标注的观察或假设,作为笑话和“等等,其实……”转折的依据。不要将编造的说法当作事实;如果主题需要事实准确性,请索要来源或 URL。
  • 如果用户说“I and X”或“me and X”,则主持人 A = 用户(若提供 host_a_img=,则使用该图片;否则生成主持人肖像),主持人 B = X。
4. 真实人物处理(仅限主题模式)

如果解析后的输入将某位真实公众人物(例如“Elon Musk”“Taylor Swift”“Joe Rogan”)指定为主持人:

  • 默认行为:不要自动生成该人物的照片级肖像。生成符合其人物气质的原型肖像——例如,为 Elon 风格的主持人生成“在播客桌前、充满科技亿万富翁气场的 CEO”,为 Taylor 风格的主持人生成“流行巨星风格”。应明确体现灵感来源,而非冒充本人。
  • 例外情况:如果用户明确提供 host_a_img=<url> 或 host_b_img=<url>,则原样使用所提供的图片。用户需自行承担肖像权责任。
  • 语音:遵循相同逻辑——默认使用通用 Kling 预设;只有在用户提供克隆语音(voice_a= / voice_b=)时才使用。
  • 脚本基调:对话可以围绕该人物已知的公开立场或风格展开(例如,Elon 风格的主持人对火星的热情);公开记录中的观点可以作为创作素材。不要让他们说出具体的诽谤性、不符合其风格或虚构的私人生活相关言论。

这项防护措施既能让创作保持自由(“我想制作一个和科技 CEO 争论火星问题的播客”),又能避免自动生成具名真实人物的深度伪造内容。

CJK / 非拉丁文字处理

当 URL、主题、产品名称、主机名、引语或必需的脚本细节中包含中文、日文、韩文、阿拉伯文、天城文、西里尔文、带重音符号的拉丁字母、表情符号或其他非拉丁文字时,请使用本节。

  • 文字保留:在脚本和任何事实回顾中,准确保留用户提供的非拉丁字符及其文字形式。除非用户明确要求,否则不要将产品名称、人名、口号或引用语罗马化、音译或翻译。如果需要辅助发音,请在附近的英文文本中提供,不要用它替代原始字符。
  • Kling 语音 ID:voice_a= 和 voice_b= 仍必须是有效的 Kling 语音 ID。对于中文 / 日文 / 韩文对话,优先选择已知能够讲该语言的 Kling 语音 ID 或克隆语音样本;如果没有匹配语言的 Kling 语音可用,请在对话中保留原始字符,并说明发音可能带有口音,而不是悄悄换用无关的 TTS 服务提供商。
  • 混合语言对话:让每位主持人的台词保持简短明确。避免要求 Kling 朗读冗长的混合语言段落;将复杂名称或引语拆分到不同段落中,并让周围的英文保持简单。
  • 字幕 / 字体回退:此技能默认跳过 add_captions,因为播客对话的自动转录可能会误转术语。如果用户明确要求添加字幕,请根据撰写的脚本传入手动编写的 subtitles[],中文 / 日文 / 韩文使用 font: "noto-cjk",并准确保留原始非拉丁文本。
  • QA:交付前,如果存在非拉丁文本,请在最终结论中添加一行说明:原始字符是否在脚本中得到保留,以及所选语音是否与语言匹配或为尽力选择。
术语密集型原生音频处理

当 URL、主题、产品名称、引语或必需的脚本细节涉及专业领域或术语密集内容时,请使用本节,尤其是金融、法律、医学、AI / 加密货币、缩写、新造词、特殊产品名称、长数字或多词复合术语。Kling-omni 原生 TTS 不仅可能在自动字幕中出错,也可能在语音输出中读错新造词,因此请在付费调用 Kling 之前降低风险。

  • 风险扫描:如果某一行包含多个领域专用术语、缩略词、较长数字,或嵌套的、多分句的经济学家式表达,就将该段标记为术语密集。stablecoins、unbundle 和 reassure 等示例属于关键术语,必须确保含义清晰。
  • 脚本改写:在脚本状态和最终回顾中保留规范术语,但缩短围绕术语的口播内容。使用短句,拆分长分句,每位主持人的台词最多包含一两个高风险术语,并避免嵌套分句,以免 Kling 推断出听起来相似的填充词。
  • 发音提示:为每一幕创建简短的高风险术语发音提示,例如 stablecoins = STAY-bul coins、unbundle = un-BUN-dul、reassure = ree-uh-SHOOR。发音提示仅用于提示元数据;不要在对话、字幕、事实内容或最终回顾中用其替代规范术语。
  • 已知难读术语的修正:如果已知某个术语容易读错,或后续检查发现将其听成了近似词,就不要再次单独尝试这个难读词。将规范术语保留在幕元数据中(canonical_terms: ["unbundle"]),然后将修正后的语音词条改为简短的上下文短语,并加入便于朗读的提示/微停顿,例如 we un-bundle payments。在元数据中添加观察到的错误形式作为发音排除项,例如 unbundle = un-BUN-dul, not un-bumble。
  • 已知难读术语的可发布备用方案:在付费 Kling 调用之前,如果以往 E2E 或当前后续检查发现 unbundle 等术语会发生偏差,例如被读成 unbubble、un-bumble 或 unbundable,就将其标记为已知难读术语。记录 canonical_terms 和 observed_wrong_forms。不要用 Kling 原生音频生成包含已知难读口播术语的内容。应生成不含已知难读术语原生语音词条的相关视觉幕或最终视频,然后使用规范拼写(unbundle,而非连字符提示)通过 generate_speech(text=<spoken-only script>, provider: "minimax-tts", minimax_model: "speech-2.8-hd", language: "en") 生成可控旁白。仅包含口播内容的脚本必须保留撰写好的主持人轮次顺序,但不得包含 HOST_A/HOST_B 标签、元数据、发音提示或观察到的错误形式拼写。使用 transcribe_audio(audio=<tts_audio_url>) 和 analyze_media(media=<tts_audio_url>) 对 TTS 音频进行替换前 QA;每个必需的 canonical_terms 条目都必须出现在 transcribe_audio 文本和 analyze_media 观察到的转录文本中。如果缺少规范术语,或被任何观察到的错误形式或新的近似词替代,则拒绝该 TTS。然后调用 edit_audio_replace(video_url=<final_mp4>, audio_url=<tts_audio_url>, duration_policy: "video"),丢弃原生音频并替换为可控 TTS 音轨。使用 transcribe_audio(audio=<replaced_mp4_url>) 和 analyze_media(media=<replaced_mp4_url>) 对替换后的 MP4 进行替换后 QA;每个必需的 canonical_terms 条目都必须出现在两项最终检查中,且 analyze_media 还必须验证主持人轮次顺序和音画同步是否可接受。如果任何最终检查听到错误形式、未听到规范术语,或指出备用方案破坏了播客轮次结构,则返回 not publish-ready;如果两项检查均通过,即使使用的是可控 TTS 而非 Kling 原生语音,备用方案输出仍可发布。
  • 数字和缩略词:在口播表达很重要时,改用便于朗读的形式:$175B 改为 one hundred seventy-five billion dollars;除非品牌通常将其读作单词,否则将 API 写作 A P I。
  • 幕提示词:在语音词条附近加入每幕的发音提示,并说明这不是对话,不应逐字朗读。要求清晰读出规范术语,不要临场改说相似词。
5. 编写脚本

编写 4 幕 × 每幕 2 句台词(HOST_A / HOST_B)。每句口播时长约为 10–12 秒。

必需(URL 模式和主题模式都适用):

  • 一个与具体细节相关的笑点(URL 模式中来自抓取的事实;主题模式中来自主题相关的说法)
  • 一个“等等,其实……”式的质疑反转时刻
  • 至少一次句中打断
  • 自然的填充语:“okay so”“wait”“right?”“i mean”“honestly”
  • 真实反应,而非泛泛赞美
  • 至少提及一个实际的功能名称、价格、说法或引言
  • 自然收尾,不要生硬地说“bye!”
  • 如果主题属于领域知识密集、术语密集或使用自造词,在敲定每幕台词前,先处理术语密集内容的原生音频。

各幕:引子 → 功能深入讲解 → 转折 → 结论 (主题模式下对应为:引子 → 内容实质 → 转折 → 结论。)

6. 生成视频各幕(子代理,依次执行)

将所有已确定的素材和脚本交给子代理。子代理按 1→2→3→4 幕依次执行——不要并行处理。子代理必须遵循上文的长时间运行任务 task_status 轮询约定,并在等待 Kling、图像生成、语音克隆或拼接任务时,每隔 60 秒向父代理转发进度信息。

每个常规幕:调用一次 generate_reference_video(kling-v3-omni、duration=15、sound=true、quality_mode: "pro")。每个常规幕都传入 reference_images=[bg_img, host_a_img, host_b_img]、voice_ids=[voice_a, voice_b] 和 quality_mode: "pro";必须传入 quality_mode: "pro",因为成本关卡按 Pro 档的 15 秒幕报价。可选参数:如果需要确保不同运行之间结果可复现,可使用 kling_model 固定具体的 Kling 系列成员。三个镜头:

  • 已知难发音内容的回退例外:对于包含已知难发音口播词语的幕,将受影响的画面幕设为 sound=false,且受影响的台词不使用语音令牌。不要在任何 <<<voice_*>>> 原生语音令牌台词中包含标准写法的已知难发音词语;之后由受控 TTS 替换内容补上这些词语。对于术语密集但不属于已知难发音的幕,在该幕提示词中以非对白元数据的形式加入第 5 步提供的发音辅助信息,并在引号中的 <<<voice_*>>> 台词中保留标准写法的术语。
  • 全景 5 秒:两位主持人,无语音令牌
  • A 的中近景 5 秒:<<<voice_1>>> '<HOST_A line>'
  • B 的中近景 5 秒:<<<voice_2>>> '<HOST_B line>'

每幕的情绪表现:

  • 第 1 幕:A 兴奋,B 怀疑
  • 第 2 幕:A 做手势并讲解,B 提问
  • 第 3 幕:A 坚定,B 惊讶并重新考虑
  • 第 4 幕:A 满意,B 认同

第 4 幕结束后,子代理调用 edit_concat([act1, act2, act3, act4]),将任何异步轮询进度转发给父代理,并返回最终视频 URL。将四个幕的 URL 保存在状态中,以便飞行后质量关卡最多只需进行一次有针对性的幕修正,而不必重新生成已通过检查的幕。

7. 输出

返回最终视频 URL 和一句话结论。默认不要调用 add_captions——Whisper 自动转录在播客对白常见的领域专有词语(产品名称、角色名称、技术术语)上并不可靠。如果用户明确要求字幕,请根据撰写好的脚本传入 subtitles[],不要自动转录;对于 CJK / 非拉丁文本,请遵循上文的字体和保留原文指导。默认交付内容为 Kling Omni 原生音频。

飞行后质量门槛

在宣布成功之前,请对最终视频 URL 调用 analyze_media,并要求给出结构化判定:

Return JSON only: {
  "verdict": "clean" | "degraded" | "catastrophic",
  "observations": string[],
  "quality_warning": string | null,
  "re_roll_suggestion": string | null
}
Check that Host A remains on the left, Host B remains on the right, product names / persona names / topic-specific terms are not visibly garbled, the four-act podcast structure is present, and there are no black frames or wrong-host shots.
Also check the spoken audio, not only captions or visible text: product names, persona names, topic-specific terms, coined terms, and jargon must be intelligible. Flag garbled or mispronounced native audio such as "stablecoins" sounding like "stable kinds", "unbundle" sounding like "un-bumble" or "unbundable", or "reassure" losing syllables.
  • 如果 verdict 为 clean,首先检查脚本状态中是否包含已知难发音词。对于已知难发音词,在接受 clean 判定之前,运行“已知难发音词可发布备用方案”,并执行替换前及替换后的 transcribe_audio / analyze_media 检查。只有替换后的 MP4 检查通过后才能返回成功。如果没有已知难发音词,则正常返回最终 URL 和一句话判定。
  • 如果 verdict 因普通的非阻断性视觉问题而为 degraded,则返回最终 URL 和 quality_warning,供用户在发布前审核。
  • 如果 verdict 因口语音频将术语、新造词或其他领域专用词弄得含混不清而为 degraded,则视为尚未达到发布要求,而非默默判定成功。对于已知难发音词或观察到的难词偏差,跳过原生音频的片段修正;不要将定向片段修正预算花在另一个 Kling 原生音频提示词上。直接使用“已知难发音词可发布备用方案”:调用 generate_speech(text=<spoken-only script>, provider: "minimax-tts", minimax_model: "speech-2.8-hd"),对 TTS 音频运行替换前的 transcribe_audio 和 analyze_media,然后调用 edit_audio_replace(video_url=<final_mp4>, audio_url=<tts_audio_url>, duration_policy: "video"),丢弃原生音频并替换最终 MP4 的音频。对替换后的 MP4 运行替换后的 transcribe_audio 和 analyze_media。如果这些检查通过,则返回替换后的 URL;如果备用方案检查仍报告口语术语含混不清,或者问题不够集中,无法修正或替换,则不要将播客视为已完成;返回 URL,并注明 not publish-ready、受影响的术语以及 quality_warning。仅对于非已知难发音词的含混问题,如果观察结果或 re_roll_suggestion 将问题定位到某一片段,则使用一次定向片段修正预算:通过缩短受影响的句子、拆分多分句表述、添加或改进语音发音辅助信息、更改镜头提示词、参考图像、语音 ID,或调整导致失败的其他阶段专用输入,对该片段的负载做实质性修改。以 quality_mode: "pro" 提交一个修正后的片段,将四个片段重新拼接,并再次运行此 analyze_media 检查。如果第二次判定仍报告口语术语含混不清,则不要将播客视为已完成;返回 not publish-ready。
  • 如果 verdict 为 catastrophic,仅当观察结果或 re_roll_suggestion 指明某一个片段有问题、镜头中的主持人错误、出现黑屏,或存在局部视觉 / 音频故障时,才使用一次定向片段修正预算。kling-v3-omni 没有 seed,相同的片段负载可能会解析为相同的任务 / 资源。不要提交相同的 Kling 负载。重试前,通过调整脚本句子、镜头提示词、参考图像、语音 ID、发音辅助信息,或导致失败的其他阶段专用输入,对有问题片段的负载做实质性修改。以 quality_mode: "pro" 提交一个修正后的片段,将四个片段重新拼接,并再次运行此 analyze_media 检查。不得超出成本门控范围:如果第二次判定仍为 catastrophic,或者故障无法归因于某一个片段,则不要将播客视为已完成;应呈现判定和 re_roll_suggestion,而不是宣布成功。

规则:

  • voice_ids 必须是有效的 Kling 语音 ID — 绝不要使用 Calm_Man 这类名称式字符串
  • 主持人 A 始终在左侧(<<<image_2>>>),主持人 B 始终在右侧(<<<image_3>>>)— 绝不能交换

承载关键信息的短语

这些锚点可确保播客输出在 URL 模式和主题模式下都连贯一致:

短语位置为何是承载关键信息的内容
Host A always LEFT, Host B always RIGHT布局和镜头提示词防止在分别渲染的 4 个单独片段中,主持人身份互换。
4 acts × 15s each整体结构确保拼接结果可预测,并避免各片段节奏不均。
Hook → Feature deep-dive → The Turn → Verdict脚本结构让单集形成对话式的起承转合,而不是 4 段互不相干的反应。
wait, actually... 怀疑者立场反转时刻脚本要求通过制造转折,让播客听起来像真实交流。
Do not call add_captions输出规则默认避免生成质量较差的烧录字幕;用户明确要求字幕时,使用手动设置的 subtitles[] 和字体回退,而不是自动转录。

引擎选择:使用 Kling v3-omni 实现原生双主持人对话

4 个片段都使用 Kling v3-omni,因为它支持在单个镜头计划中使用 2 位参考主持人和语音令牌进行原生对话。代价是为了保持一致性,片段会依次运行,耗时可能比纯剪辑/合成流程更长。默认不要添加单独的字幕或音乐层;这项技能的价值在于原生的口语交流。

运行时间预期

完整的 4 段渲染通常需要 24-32 分钟的实际耗时:实际情况约为 25 分钟,P95 约为 32 分钟。 4 个片段会依次通过 Kling Omni 运行;这是主要耗时环节,不应描述为并行工作。 如果用户或执行框架的时间预算低于 32 分钟,应提前提醒用户,完整渲染可能无法完成,并提供 2 段/30 秒的备用方案。否则,按正常流程执行,无需确认。

步骤实际耗时备注
生成缺失素材30-90s用户已提供背景/主持人参考素材时跳过
解析 URL/主题 + 编写脚本1-3 minURL 模式取决于页面抓取质量
4 段 Kling 生成24-32 min依次调用 Kling Omni 4 次,每次约 8 分钟;是主要耗时环节
拼接 + 返回30-90s仅返回最终 URL;默认跳过字幕

故障模式

从 capture_website / clone_voice / generate_video / edit_concat 的上游 5xx 错误中恢复

如果任何 MCP 调用返回:

  • code: "provider_5xx" 且 retry_class: "retry_after_backoff"
  • 或任何上游服务商(Kling、语音克隆、抓取、存储)返回 HTTP 502 / 503 / 504

请按以下步骤操作:

  1. 等待 5 秒。
  2. 使用完全相同的参数,重新调用完全相同的 MCP 工具。不要改写脚本、切换语音、更换主持人参考素材、改变片段顺序,也不要重新提交不同的提示词。
  3. 如果重试后仍返回 5xx,则中止并向用户说明:"服务商两次返回暂时性上游错误。请在 1-2 分钟后重试;此类错误通常会自行消失。"

最多重试一次。5xx 表示暂时性服务中断,并不意味着播客主题、语音或脚本有问题。

从上游 4xx / moderation_blocked 错误中恢复

如果可选的 generate_image 辅助工具、主持人素材或 Kling 片段出现上游 4xx 或 moderation_blocked:

  1. 不要使用相同输入重试;审核拦截和大多数 4xx 验证失败都是确定性的。
  2. 只有在该环节明确提供备用服务商时才使用。默认的 Kling v3-omni 双主持人片段流程没有等效的备用服务商;不要用无关字幕或单人语音合成来伪造播客。
  3. 向用户说明:"服务商拒绝了此播客输入。请尝试更换主持人参考素材、减少对知名公众人物/品牌的明显提及,或选择更安全的主题角度。"
从上游 429(速率限制)错误中恢复

如果任何上游服务返回带有退避提示的 HTTP 429:

  1. 等待提示的退避时长;如果未提供提示,则等待 30 秒。
  2. 使用完全相同的参数,重新调用完全相同的 MCP 工具。
  3. 最多重试一次。如果仍返回 429,则中止并向用户说明速率限制问题。
capture_website 返回空内容/页面未加载

如果 URL 模式调用 capture_website 后返回 200,但 action_bboxes 为空或 recording_viewport 为 0x0:

  1. 不要重试 capture_website;页面在捕获环境中未能渲染。
  2. 如果 WebFetch 返回了可用的全文文本,请勿重试 capture_website,直接继续:使用 WebFetch 提供事实依据,并使用通用视觉素材或生成的视觉素材,而不要假装损坏的页面捕获包含页面细节。
  3. 如果捕获和 WebFetch 都未能提供可用的源材料,请说明:“无法捕获 。该页面可能受到拦截/付费墙限制/需要身份验证。请提供文本简介或粘贴源材料。”

如果捕获的页面明显只有首屏导航,没有文章/内容正文,只有在 WebFetch 返回了足以支撑脚本的全文时才继续;这种情况下,使用捕获内容作为视觉素材,使用 WebFetch 提供事实依据。如果捕获和 WebFetch 都未能提供可用的源材料,请要求用户粘贴源材料,而不要臆造页面深层内容。

upload_asset 网络/身份验证失败

如果 upload_asset 在将本地宿主引用、语音样本或源媒体转换为托管 URL 时失败,请勿使用本地文件系统路径继续。仅针对上述 5xx 或 429 类错误重试一次。对于 auth_error、不支持的 MIME 类型、网络故障或重试后仍失败的情况,请用户提供托管 URL 或受支持的替代文件。

长时间运行的 task_status 超出上限

每个异步 MCP 调用都会返回内联结果或 {task_id, status} 以供轮询。在判定任务卡住之前,请使用以下时限:

  • Kling Omni act:每次调用 15 分钟
  • 语音克隆:5 分钟
  • 编辑/拼接:5 分钟

使用以下两者中较早的时限:服务提供方时限的 1.5 倍,或任何特定技能的硬性轮询上限,包括上文“长时间运行的 task_status 轮询约定”中的 15 分钟总上限。如果 task_status 返回 status: "processing" 或 status: "queued",且超过了较早的时限,请调用 task_cancel({task_id}) 并说明:“服务提供方耗时异常;正在中止。请重试。”

示例

URL 模式(审阅网站/仓库/博客):

/pika:podcast https://pika.art
/pika:podcast https://github.com/anthropics/claude-code
/pika:podcast https://cursor.com voice_a=876341503281471517

主题模式(自由形式的简介):

/pika:podcast Two AI researchers debate whether AGI arrives before 2030
/pika:podcast I and a Mars-obsessed tech CEO talk about colonization timelines
/pika:podcast interview with a seed-stage VC about what kills most startups
/pika:podcast podcast about quantum computing breakthroughs in 2026

混合模式(主题提示中包含 URL——如果找到有效 URL,Agent 会优先采用 URL 模式):

/pika:podcast podcast about https://pika.art with skeptical investor energy

评论

支持 Markdown