S

ai-news-podcast

ai-news-podcast

已认证
AI v1.0.0 · 小杨
下载 ZIP
📥 下载 493 次 📦 370.1KB 📅 2026-05-25

AI科技早报 Podcast 技能

将抖音AI新闻视频,变成你自己的语音播报,每天自动推送。

目录


系统架构

┌─────────────────────────────────────────────────────────┐
│                   抖音站(数据源)                        │
│  大脚AI ──→ 每日发布AI新闻短视频(合集:每日必知AI圈)  │
└──────────────────────┬──────────────────────────────────┘
                       │ opencli browser + douyin.js
                       ▼
┌─────────────────────────────────────────────────────────┐
│              03:00 — collect.js(采集调度)               │
│  1. 读取 sources/sources.json 作者列表                   │
│  2. 逐个调用作者模块(浏览器→下载→Whisper转写)           │
│  3. 汇总原始文案 → cache/raw-transcript.json             │
└──────────────────────┬──────────────────────────────────┘
                       │ LLM 重写
                       ▼
┌─────────────────────────────────────────────────────────┐
│              03:00 — produce cron(AI重写)               │
│  1. 读取 raw-transcript.json                             │
│  2. LLM 以口语化风格重写为播报稿                          │
│  3. 写入 cache/script.txt                                │
│  4. 调用 produce-audio.js → TTS + 背景音乐               │
└──────────────────────┬──────────────────────────────────┘
                       │ 音频文件
                       ▼
┌─────────────────────────────────────────────────────────┐
│              06:00 — review cron(审核+发送)             │
│  1. 审核 script.txt 日期和内容                            │
│  2. 去重检查                                              │
│  3. 调用 send.js → 复制到QQ媒体目录                       │
│  4. message 工具 → 发送到QQ                              │
└─────────────────────────────────────────────────────────┘

文件结构

skills/ai-news-podcast/
├── SKILL.md                 ← 本文件(操作手册 + 扩展指南)
├── collect.js               ← 采集调度入口(03:00自动调用)
├── produce-audio.js         ← 音频制作(TTS分块合成+背景音乐)
├── send.js                  ← 发送到QQ(复制音频到媒体目录)
│
├── sources/                 ← ★ 作者采集模块目录(扩展入口)
│   ├── sources.json         ←   作者配置清单(enabled开关)
│   └── dajiao-ai.js         ←   大脚AI采集模块
│       (新增作者时:sources.json + 新 .js 文件)
│
├── cache/                   ← 运行时缓存
│   ├── raw-transcript.json  ←   原始转写文案汇总
│   ├── script.txt           ←   LLM重写后的播报稿
│   ├── 早报最终音频.mp3     ←   最终成品音频
│   ├── news-reported.json   ←   已播报记录(去重用)
│   └── ...其他临时文件
│
└── prompts/                 ← AI prompt 模板
    ├── produce.txt          ←   重写播报稿
    └── send.txt             ←   审核发送

每日流程

时间线

时间任务说明
03:00collect.js + produce cron采集抖音 → 转写 → LLM重写 → 合成音频
06:00review cron审核文稿 → 发送到QQ

第1步:采集(collect.js)

news-daily-produce cron 触发,Agent 先执行:

node skills/ai-news-podcast/collect.js

collect.js 内部:

  1. 读取 sources/sources.json,筛选 enabled: true 的作者
  2. 对每个作者,调用 sources/xxx.jsmodule.exports.collect(source) 方法
  3. 每个 author module 负责:浏览器打开主页 → 找最新视频 → 下载 → Whisper 转写 → 返回文案
  4. 汇总结果 → 写入 cache/raw-transcript.json

第2步:LLM重写(produce cron 的 AI 部分)

Agent 读取 cache/raw-transcript.json,按 prompts/produce.txt 模板,

将原始转写文案改写成口语化的播报稿,写入 cache/script.txt

第3步:音频制作

执行 produce-audio.js

  • 读取 cache/script.txt
  • 分块并发调用 edge-tts(zh-CN-XiaoxiaoNeural, +10%速率, +50%音量)
  • 合并语音块
  • 混入背景音乐(assets/早报背景音乐.mp3, 音量15%, 淡入/淡出5秒)
  • 输出 cache/早报最终音频.mp3

第4步:审核发送(06:00 review cron)

Agent 审核 cache/script.txt

  • 日期正确性
  • 去重对比 cache/news-reported.json
  • 确认无误 → 执行 send.js → message 工具发送到QQ

使用方法

手动测试采集

node skills/ai-news-podcast/collect.js

手动测试音频制作

# 先确保 cache/script.txt 已存在
node skills/ai-news-podcast/produce-audio.js

手动测试发送

node skills/ai-news-podcast/send.js

扩展指南 — 新增抖音作者

当张总发来一个抖音视频链接说"把这个作者加进来",按以下步骤操作。

快速步骤

  1. 打开作者的抖音视频链接,获取 sec_uid(抖音用户唯一ID)
  2. 编辑 sources/sources.json,添加一条新记录
  3. sources/ 下新建一个采集模块(复制 dajiao-ai.js 修改)
  4. 重启 Gateway 使 cron 配置生效

详细说明

#### 步骤1:获取 sec_uid

方法A — 用 opencli browser 打开视频页面:

opencli browser --session dy-find open "视频链接"
opencli browser --session dy-find state
# 在 state 输出中找类似 /user/MS4wLjABAAAA... 的链接
opencli browser --session dy-find close

方法B — 用 douyin.js info 获取视频详情(部分版本会返回作者信息):

node skills/zc-douyin-xiazai-txt-1.0.0/douyin.js info "视频链接"

方法C — 直接打开抖音网页版,进入作者主页,从URL中提取 sec_uid。

URL格式:https://www.douyin.com/user/{sec_uid}

#### 步骤2:编辑 sources.json

[
  // ... 已有作者
  {
    "id": "ai-xiao-zhang",       // 作者唯一ID(英文,不要空格)
    "name": "AI小张",             // 作者显示名称
    "enabled": true,              // true=启用,false=暂时关闭
    "module": "ai-xiao-zhang.js", // 对应的采集模块文件名
    "config": {
      "sec_uid": "填入从步骤1获取的sec_uid",
      "collection_keyword": "合集关键词(可选)",
      "video_count": 1            // 采集最新几条(默认1)
    }
  }
]

#### 步骤3:创建采集模块

  1. 复制 sources/dajiao-ai.jssources/ai-xiao-zhang.js
  2. 修改 collect 函数中的页面解析逻辑
  3. 关键要点:
  • 模块必须导出 { collect } 函数
  • collect(source) 接收 sources.json 中该作者的配置对象
  • 返回 { videoTitle, videoUrl, transcript }
  • transcript 是转写后的文案文本

示例采集模块骨架:

/**
 * ai-xiao-zhang.js — 作者采集模块
 * ==============================
 * 
 * 【新增作者模板】
 * 复制自 dajiao-ai.js,修改以下内容:
 * 1. 页面打开逻辑(如果主页结构不同)
 * 2. 视频定位方式(合集/时间线/置顶)
 * 
 * 必须导出:{ collect }
 * collect(source) 返回:{ videoTitle, videoUrl, transcript }
 */

const { execSync } = require('child_process');
const path = require('path');

async function collect(source) {
  const config = source.config || {};
  const secUid = config.sec_uid;
  // ... 你的采集逻辑
  return { videoTitle, videoUrl, transcript };
}

module.exports = { collect };

#### 步骤4:重启 Gateway

openclaw gateway restart

故障排查

采集失败(collect.js 报错)

错误常见原因解决方法
opencli browser 超时Chrome 未连接 / 浏览器桥断开运行 opencli doctor 检查
找不到视频页面结构变了手动打开主页看看是不是改版了
Whisper 转写失败whisper 未安装pip install -U openai-whisper
douyin.js extract 超时视频太长 / 网络慢检查网络,或单独运行 extract

音频制作失败

错误常见原因解决方法
edge-tts 导入失败node-edge-tts 未安装cd skills/edge-tts/scripts && npm install
ffmpeg 找不到未安装或不在 PATH检查 ffmpeg -version
背景音乐找不到assets/ 下缺失检查 assets/早报背景音乐.mp3

发送失败

错误原因解决
音频文件不存在produce cron 未成功检查 cache/早报最终音频.mp3
QQ消息发送失败媒体目录问题检查 .openclaw/media/qqbot/downloads

Cron 配置

涉及的 cron 任务

cron ID时间功能
news-daily-produce03:00采集 + 重写 + 音频合成
news-daily-review06:00审核 + 发送到QQ

旧任务(已禁用)

以下 cron 任务已被此技能替代,不应重新启用

  • news-collect-intl(已禁用)
  • news-collect-cnai(已禁用)
  • news-collect-tech(已禁用)
  • news-collect-fallback(已禁用)
  • news-merge(已禁用)
  • news-gatekeep(已禁用)
  • news-daily-send(已禁用)
⚠️ 如果需要恢复旧的数据源(不再用抖音),才考虑重新启用。
一般情况下请保持禁用状态。

依赖清单

依赖作用安装检查
Node.js运行所有脚本node --version
ffmpeg音频处理、混音ffmpeg -version
opencli浏览器自动化接口opencli doctor
Whisper (openai)语音转文字whisper --version
zc-douyin-xiazai-txt抖音视频下载技能已安装
edge-tts文字转语音skills/edge-tts/scripts/

更新日志

日期变更
2026-05-20初始版本。首版作者:大脚AI
2026-XX-XX后续扩展在此记录

💡 安装方法

下载 ZIP 解压到 skills/ 目录即可使用