podcast-publish-xiaoyuzhou

此 Skill 实现了每日科技早报播客的全自动发布流程:播客生成 → RSS.com发布 → 小宇宙同步 → 飞书通知。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "podcast-publish-xiaoyuzhou" with this command: npx skills add muzhicaomingwang/ai-ideas/muzhicaomingwang-ai-ideas-podcast-publish-xiaoyuzhou

播客发布到小宇宙 Skill

概述

此 Skill 实现了每日科技早报播客的全自动发布流程:播客生成 → RSS.com发布 → 小宇宙同步 → 飞书通知。

项目路径: /Users/qitmac001395/workspace/QAL/ideas/apps/daily-podcast-ai

核心能力

功能 状态 所需配置

早报播客生成 ✅ 可用 ELEVENLABS_API_KEY

RSS.com自动发布 ✅ 可用 RSS_COM_API_KEY + RSS_COM_PODCAST_ID

小宇宙RSS订阅 ✅ 可用 一次性手动配置

飞书消息通知 ✅ 可用 FEISHU_APP_ID + FEISHU_APP_SECRET + FEISHU_RECEIVER_OPEN_ID

定时自动执行 ✅ 可用 macOS launchd (每天7点)

使用方法

方式1: 自动执行(推荐)

无需操作,每天早上7点自动运行:

07:00 - 从缓存读取新闻(0:00-6:00收集的30-50篇) 07:02 - AI优选Top 10新闻 07:05 - 生成对话脚本(双人播报模式) 07:10 - TTS语音合成(ElevenLabs) 07:15 - 合并音频 + 生成封面 07:17 - 发布到RSS.com 07:18 - 发送飞书通知 08:00 - 小宇宙自动同步

方式2: 手动发布指定日期

cd /Users/qitmac001395/workspace/QAL/ideas/apps/daily-podcast-ai

发布昨天的播客

python scripts/publish_to_rss.py --date 2026-01-14

生成今天的播客并发布

python scripts/daily_generate.py --from-cache &&
python scripts/publish_to_rss.py --date $(date +%Y-%m-%d)

方式3: 仅发送飞书通知

python scripts/notify_feishu.py
--date 2026-01-14
--rss-url "https://rss.com/podcasts/xxx/feed.xml"
--episode-url "https://rss.com/podcasts/xxx/episodes/ep_xxx"
--article-count 10

首次配置指南

步骤1: RSS.com配置(5分钟)

注册账号: https://rss.com/ → Sign Up

创建播客: Dashboard → Create New Podcast

名称: 今日科技早报 分类: Technology / News 语言: Chinese (Simplified)

获取凭证:

  • Settings → API Keys → Generate New API Key

  • 复制 API Key: rss_com_sk_xxx

  • 从播客URL获取 Podcast ID

配置环境变量: 编辑 apps/daily-podcast-ai/.env :

RSS_COM_API_KEY=rss_com_sk_your_actual_key RSS_COM_PODCAST_ID=your-podcast-uuid

步骤2: 小宇宙订阅配置(3分钟,仅需一次)

步骤3: 飞书通知配置(可选,5分钟)

  • im:message:send_as_bot
  • 配置环境变量: FEISHU_APP_ID=cli_xxx FEISHU_APP_SECRET=xxx FEISHU_RECEIVER_OPEN_ID=ou_18b8063b232cbdec73ea1541dfb74890 # 王植萌

步骤4: 测试验证(2分钟)

测试发布

python scripts/publish_to_rss.py --date 2026-01-14

预期看到:

✅ Episode published successfully!

📱 发送飞书通知...

✅ 飞书消息发送成功

技术架构

集成流程图

┌─────────────┐ │ 早报生成 │ scripts/daily_generate.py │ (每天7点) │ - 从cache读取新闻 └──────┬──────┘ - AI优选Top 10 │ - TTS语音合成 ↓ ┌─────────────┐ │ 输出文件 │ output/{date}/dailyReport/ │ │ - podcast-{date}-1.2x.mp3 │ │ - cover-{date}.png └──────┬──────┘ - script-{date}.md │ ↓ ┌─────────────┐ │ RSS发布 │ scripts/publish_to_rss.py │ │ - 上传音频到RSS.com └──────┬──────┘ - 创建单集元数据 │ ├──────────────────┐ ↓ ↓ ┌─────────────┐ ┌─────────────┐ │ RSS Feed │ │ 飞书通知 │ scripts/notify_feishu.py │ 更新 │ │ │ - 发送卡片消息 └──────┬──────┘ └─────────────┘ - 包含RSS链接 │ ↓ (每小时) ┌─────────────┐ │ 小宇宙同步 │ podcaster.xiaoyuzhoufm.com │ │ - 自动抓取RSS └─────────────┘ - 发布到App

关键文件

文件 行数 功能

scripts/publish_to_rss.py

376 RSS.com发布主脚本

scripts/notify_feishu.py

191 飞书通知脚本

scripts/daily_generate.py

651 播客生成核心逻辑

scripts/daily_automated_run.sh

100 定时任务执行脚本

docs/XIAOYUZHOU_INTEGRATION.md

完整集成指南

QUICKSTART_XIAOYUZHOU.md

5分钟快速开始

环境变量清单

必需 - 播客生成

ELEVENLABS_API_KEY=sk_xxx # TTS语音合成

可选 - AI增强

OPENAI_API_KEY=sk-xxx # AI摘要和优选

必需 - RSS发布

RSS_COM_API_KEY=rss_com_sk_xxx # RSS.com API RSS_COM_PODCAST_ID=xxx-xxx-xxx # 播客频道ID

可选 - 飞书通知

FEISHU_APP_ID=cli_xxx # 飞书应用ID FEISHU_APP_SECRET=xxx # 飞书密钥 FEISHU_RECEIVER_OPEN_ID=ou_xxx # 接收者Open ID

代码改进(已实现)

  1. 智能文件名识别(publish_to_rss.py:258-269)

问题: 项目生成 podcast-{date}-1.2x.mp3 ,但脚本期望 podcast-{date}.mp3

解决: 自动查找并使用多速率版本

audio_file = base_path / f"podcast-{args.date}.mp3" if not audio_file.exists(): audio_file_12x = base_path / f"podcast-{args.date}-1.2x.mp3" audio_file_15x = base_path / f"podcast-{args.date}-1.5x.mp3"

if audio_file_12x.exists():
    audio_file = audio_file_12x

2. 多端点重试机制(publish_to_rss.py:106-159)

问题: RSS.com API端点可能变化

解决: 依次尝试3个可能的端点

upload_endpoints = [ f"{self.API_BASE_URL}/upload", f"{self.API_BASE_URL}/media", f"{self.API_BASE_URL}/podcasts/{self.podcast_id}/media" ]

  1. 飞书通知集成(publish_to_rss.py:343-362)

功能: 发布成功后自动调用 notify_feishu.py

特性:

  • 使用 check=False 避免通知失败中断主流程

  • 自动提取文章数量

  • 传递RSS URL和单集URL

飞书消息效果

发布成功后,接收者会收到蓝色卡片消息:

┌─────────────────────────────────────────┐ │ 🎙️ 今日科技早报已发布 │ ├─────────────────────────────────────────┤ │ 📅 日期: 2026-01-14 │ │ 📰 内容: 精选 10 篇科技新闻 │ │ │ │ 📢 发布状态: │ │ - ✅ RSS.com 发布成功 │ │ - ⏳ 小宇宙同步中(预计1小时内) │ │ │ │ 🔗 单集链接: https://rss.com/... │ │ 📡 RSS Feed: https://rss.com/...feed.xml│ │ │ │ ─────────────────────────────────────── │ │ 💡 小宇宙订阅步骤: │ │ 1. 打开小宇宙创作者平台 │ │ 2. 点击「立即同步」查看最新单集 │ │ 3. 首次设置需添加RSS订阅(仅需一次) │ └─────────────────────────────────────────┘

故障排查

常见问题

问题 症状 解决方案

RSS发布失败 401 Unauthorized

检查API Key是否正确/过期

文件找不到 Missing required files

确认播客已生成,检查output目录

小宇宙未同步 RSS成功但App无单集 手动点击「立即同步」

飞书通知失败 发布成功但无消息 检查应用权限,验证open_id

API端点404 Endpoint not found

查看RSS.com最新API文档

调试命令

查看最近的生成日志

tail -50 logs/daily_run.log

检查错误日志

tail -50 logs/daily_error.log

验证RSS Feed可访问

curl -I "https://rss.com/podcasts/{YOUR_ID}/feed.xml"

验证环境变量

python3 -c "from dotenv import load_dotenv; import os; load_dotenv();
print('RSS Key:', bool(os.getenv('RSS_COM_API_KEY')));
print('Podcast ID:', bool(os.getenv('RSS_COM_PODCAST_ID')))"

使用场景

场景1: 每日自动发布(默认)

触发: 每天07:00自动执行 流程: 完整的生成 → 发布 → 通知 无需操作: 配置一次后永久生效

场景2: 补发昨天的播客

用户说: "帮我重新发布昨天的播客到小宇宙"

python scripts/publish_to_rss.py --date 2026-01-14

场景3: 仅通知不发布

用户说: "通知植萌播客已发布"

python scripts/notify_feishu.py
--date 2026-01-14
--rss-url "https://rss.com/podcasts/xxx/feed.xml"
--article-count 10

场景4: 生成但不发布

用户说: "生成今天的播客但先不发布"

python scripts/daily_generate.py --from-cache

不运行 publish_to_rss.py

技术细节

RSS.com API集成

API版本: v4 Base URL: https://api.rss.com/v4 认证方式: Bearer Token

核心端点:

POST /upload # 上传文件(主端点) POST /media # 备选端点1 POST /podcasts/{id}/media # 备选端点2 POST /podcasts/{id}/episodes # 创建单集 GET /podcasts/{id}/feed.xml # RSS Feed

文件上传:

  • 音频: 最大100MB,支持MP3/M4A

  • 封面: 最大5MB,推荐3000x3000px PNG

  • 超时: 120秒

小宇宙集成方式

方式: RSS订阅(非API上传)

优势:

  • ✅ 一次配置,永久生效

  • ✅ 无需逆向工程小宇宙API

  • ✅ 官方支持,稳定可靠

  • ✅ 支持多平台分发

更新频率:

  • 默认: 每小时

  • 可设置: 30分钟/2小时/4小时

飞书通知实现

消息类型: Interactive(卡片消息)

卡片结构:

{ "header": {"title": "🎙️ 今日科技早报已发布", "template": "blue"}, "elements": [ {"tag": "markdown", "content": "📅 日期: {date}\n📰 内容: 精选 {count} 篇..."} ] }

依赖库: httpx>=0.27.0

监控与维护

日志位置

logs/ ├── daily_run.log # 主日志(生成+发布) ├── daily_error.log # 错误日志 ├── hourly-stdout.log # 每小时收集日志 └── hourly-stderr.log # 收集错误

关键日志搜索

查看最近5次发布状态

grep "Publication completed" logs/daily_run.log | tail -5

查看RSS发布错误

grep "RSS" logs/daily_error.log

查看飞书通知记录

grep "飞书通知" logs/daily_run.log | tail -5

数据清理

清理30天前的播客文件(节省空间)

find output/ -type d -mtime +30 -exec rm -rf {} +

清理缓存(保留最近7天)

find cache/ -name "*.json" -mtime +7 -delete

成本预估

每日成本

服务 用量 成本

ElevenLabs TTS 3-5分钟音频 ¥1-2

OpenAI GPT-4o-mini 摘要+优选 ¥0.5-1

RSS.com 3-5MB存储+流量 免费

小宇宙 RSS订阅 免费

飞书API 1条消息/天 免费

月度总计: ¥45-90(主要是ElevenLabs和OpenAI)

免费额度

  • ElevenLabs: 10,000 credits/月(约10分钟)

  • OpenAI: 需付费,但gpt-4o-mini成本极低

  • RSS.com: 免费版支持5GB存储+流量

  • 飞书: 企业自建应用免费

扩展功能(可选)

  1. 多平台分发

将同一个RSS Feed提交到:

  • 小宇宙(已支持)

  • 喜马拉雅

  • 荔枝FM

  • Apple Podcasts

  • Spotify Podcasts

  1. 数据分析

从RSS.com获取统计数据:

curl -H "Authorization: Bearer $RSS_COM_API_KEY"
"https://api.rss.com/v4/podcasts/$RSS_COM_PODCAST_ID/analytics"

  1. 智能推送

根据播放数据优化:

  • 调整发布时间(当前07:00)

  • 优化新闻选择策略

  • A/B测试不同播报风格

  1. 批量操作

批量发布最近7天的播客

for date in $(seq -f "%Y-%m-%d" 7 -1 1); do python scripts/publish_to_rss.py --date $date sleep 10 done

注意事项

重要提醒

API凭证安全:

  • ✅ .env 已在 .gitignore 中

  • ❌ 不要将API Key提交到Git

  • ❌ 不要在日志中打印完整API Key

文件命名规范:

  • 项目生成带速率后缀的文件(-1.2x.mp3 )

  • 发布脚本会自动识别

  • 优先使用1.2x版本(平衡时长和音质)

错误处理策略:

  • RSS发布失败 → 中断流程(需要人工介入)

  • 飞书通知失败 → 仅记录日志(不影响发布)

  • 小宇宙同步延迟 → 可手动触发

RSS Feed更新频率:

  • RSS.com: 实时更新

  • 小宇宙: 每小时抓取(可配置)

  • 加速同步: 手动点击「立即同步」

相关资源

官方文档

项目文档

  • 完整集成指南: docs/XIAOYUZHOU_INTEGRATION.md

  • 快速开始: QUICKSTART_XIAOYUZHOU.md

  • 主项目README: apps/daily-podcast-ai/README.md

工具链接

更新记录

  • 2026-01-15: 初始版本,支持RSS.com自动发布和小宇宙订阅

  • 2026-01-15: 添加飞书通知功能(王植萌)

  • 2026-01-15: 修复多速率音频文件名识别问题

  • 2026-01-15: 增强API错误处理,支持多端点重试

Skill维护者

  • 创建者: Claude Code

  • 项目: daily-podcast-ai

  • 版本: v1.0.0

  • 最后更新: 2026-01-15

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

feishu-messaging

No summary provided by upstream source.

Repository SourceNeeds Review
General

miniapp-design

No summary provided by upstream source.

Repository SourceNeeds Review
General

notion-docs-enhancer

No summary provided by upstream source.

Repository SourceNeeds Review
General

obsidian-organize

No summary provided by upstream source.

Repository SourceNeeds Review