SuperAPI AI 工具集

podcast

写作与研究

查看项目

更新于 10-16 14:54

技能介绍

用途

Podcast Generator 是一个用于从任意内容来源自动生成韩语播客节目的技能。它可以接收用户提供的 URL、文章、推文、PDF 或 GitHub 仓库等来源,分析并融合内容后,自动撰写韩语播客脚本、生成音频、转换为 MP4 视频,并上传到 YouTube。

主要能力

完整流水线为:来源收集 → 分析/融合 → 脚本撰写 → TTS 生成 → MP4 转换 → YouTube 上传。

Step 1:来源收集与分析

按类型处理用户提供的来源:

  • URL/文章:使用 WebFetch 或子代理获取全文
  • 推文/X 帖子:使用 WebFetch 配合 api.fxtwitter.com(替换 X/Twitter URL 中的域名)
  • PDF:直接用 Read 工具读取
  • GitHub 仓库:克隆并分析结构(使用子代理)
  • 对话上下文:复用当前会话中已分析的内容

当提供 2 个以上来源时,会为每个来源并行启动子代理。

Step 2:脚本撰写

脚本结构为 8-12 分钟、3000-5000 字符,包含:开场(1 分钟,含钩子、来源介绍、结论前置)、正文第一部分(3 分钟,深入分析第一个来源/视角)、正文第二部分(3 分钟,深入分析第二个来源/视角)、融合/交汇(3 分钟,组合来源后的涌现洞见、模式、共性、对比和可推广含义)、结尾(30 秒,一句话总结核心信息和结束语)。

脚本撰写原则:

  • 像说话一样写作,使用口语化韩语("~입니다"、"~거죠"、"~인데요")
  • 数字用韩语表达:"267K" → "이십육만","$75,000" → "칠만오천 달러"
  • 英文名用韩语发音:"Garry Tan" → "개리 탄"
  • 不使用表格或代码块(TTS 无法朗读),将表格内容转换为句子
  • 引用时转换语气:用"개리 탄 본인이 이렇게 말합니다."制造区分感
  • 短句:每句控制在 50 字符以内

文件布局:输出目录包含 script.md(脚本)、episode.mp3(音频)、episode.mp4(视频,用于 YouTube)、metadata.json(标题、描述、标签、YouTube URL)。输出目录可由用户指定,默认相对当前工作目录为 podcast/YYYY-MM-DD-[slug]/。

Step 3:TTS 生成

使用 scripts/generate_tts.py 将脚本转为音频:

python3 <plugin-path>/skills/podcast/scripts/generate_tts.py \
  --input <script.md path> \
  --output <episode.mp3 path> \
  --api-key <OpenAI API key>

将 <plugin-path> 替换为插件实际安装路径(可用 ${CLAUDE_PLUGIN_ROOT} 或解析后的插件安装路径)。

OpenAI API Key:先检查 OPENAI_API_KEY 环境变量,未设置则询问用户。

TTS 设置:

  • 模型:gpt-4o-mini-tts(支持 instructions 的最新模型)
  • 语音:marin(最适合韩语),cedar 为备选
  • 分块大小:1500 字符(2000 token 限制,韩语约 1.5 字符/token)
  • Instructions:按脚本自动生成

默认 TTS instructions:"따뜻하고 친근한 한국어 팟캐스트 호스트. 명확한 발음으로 또박또박 읽되, 자연스러운 억양과 적절한 감정을 담아서. 중요한 포인트에서는 약간 힘을 주고, 인용구에서는 톤을 살짝 바꿔서 구분감을 준다. 전체적으로 지적이면서도 편안한 분위기."

若用户指定语气,可通过 --instructions 自定义。

Step 4:MP4 转换

将 MP3 转换为带静态标题卡的 MP4:

python3 <plugin-path>/skills/podcast/scripts/convert_mp4.py \
  --input <episode.mp3 path> \
  --output <episode.mp4 path> \
  --title "Episode Title" \
  --subtitle "Subtitle"

生成 1920x1080、深色背景(#1a1a2e)带韩语标题/字幕叠加的视频。

Step 5:YouTube 上传

python3 <plugin-path>/skills/podcast/scripts/upload_youtube.py \
  --video <episode.mp4 path> \
  --title "Episode Title" \
  --description "Description" \
  --privacy unlisted

OAuth 设置:Google OAuth client secret 自动发现 ~/Downloads/client_secret_.json 或 ~/.config/google/client_secret_.json;token 默认存储在视频文件旁(可用 --token-path 覆盖);首次运行需要浏览器 Google 认证;若有多个 YouTube 账号会询问用户使用哪个。

注意:切勿将脚本复制到节目目录,始终从插件原始路径运行。

上传默认值:隐私 unlisted(除非用户另行指定)、分类 People & Blogs (22)、语言 ko。

Step 6:完成报告

上传后向用户报告:

Done!
- Script: <path>/script.md
- Audio: <path>/episode.mp3
- Video: <path>/episode.mp4
- YouTube: https://youtu.be/VIDEO_ID (unlisted)

用 afplay 播放 episode.mp3 让用户立即收听。

部分执行

用户可只请求流水线的一部分:

  • "Just write the script" → 仅 Step 1-2
  • "Generate TTS from this script" → 仅 Step 3
  • "Upload to YouTube" → 仅 Step 5(需已有 MP4)
  • "Make it public" → 通过 API 更新 YouTube 隐私设置

适用场景

适合将文章、推文、PDF、GitHub 仓库等内容快速转化为韩语播客节目,并发布到 YouTube 的场景。支持多来源融合分析,适合需要将多个来源观点整合成单集内容的用户。

限制与要求

  • ffmpeg:音频合并和 MP4 转换必需。macOS 上可能需要 homebrew-ffmpeg/ffmpeg tap 以获得完整编解码器支持
  • OpenAI API key:TTS 生成必需(OPENAI_API_KEY 环境变量或用户提供)
  • Google OAuth client secret:YouTube 上传必需(从 Google Cloud Console 下载)
  • macOS 字体:韩语文本叠加使用 /System/Library/Fonts/AppleSDGothicNeo.ttc。其他平台需调整 convert_mp4.py 中的 FONT_PATH
  • Python 3.10+:所有脚本仅使用标准库(无需 pip install)
  • 输出内容为韩语播客