这是一个全自动化流程,可自动抓取 Reddit 热门帖子,生成语音旁白,拼接音频和截图导出为视频,最后发布到 TikTok,全程无需人工干预。
预计整体搭建时间为 4-6 小时,包含测试和账号绑定。
用到的工具及各自作用:
• Reddit API(OAuth):免费额度,获取热门帖子
• Python 3.11+:免费开源,编排工作流
• ElevenLabs TTS API:免费试用额度,生成语音旁白
• CapCut Desktop (Windows):免费额度,视频剪辑导出
• TikTok API(第三方服务或手动上传):免费额度,发布最终视频
• n8n(可选):社区版自托管免费,或使用云方案,可视化编排和webhook触发
• GitHub:免费额度,版本控制
该流程共分为 10 步搭建:
1. 在 Reddit 创建脚本类型应用,获取 OAuth 所需的凭证。
2. 创建 Python 虚拟环境,安装依赖包:requests、python-dotenv、elevenlabs-sdk。
3. 在项目根目录创建 .env 文件存储密钥信息,避免凭证出现在源代码中。
4. 通过 Reddit API 认证后,拉取当日点赞最高的 5 篇帖子。
5. 清洗文本内容,去除链接和 Markdown,限制长度,转为短视频脚本。
6. 调用 ElevenLabs TTS 接口生成音频,保存为 MP3 文件。
7. 通过 puppeteer 调用无头 Chrome 对帖子网页截图,保存为图片文件。
8. 使用 CapCut 通过 JSON 项目文件拼接图片和音频,导出为适配 TikTok 的 MP4 视频。
9. 通过 n8n webhook 接收视频路径,调用第三方服务上传到 TikTok。
10. 将步骤 4 到 9 封装为 main 函数,通过定时任务每 4 小时执行一次,保证持续产出新内容。
常见故障及解决方法:
• Reddit OAuth 令牌过期(1小时),返回 401:每次运行刷新令牌,或使用新版 OAuth2 流程存储长时效刷新令牌。
• ElevenLabs 配额超限,返回 429 或空音频:通过 ElevenLabs 面板监控用量,添加指数退避,超限后切换到其他低价 TTS。
• CapCut CLI 在处理大图时卡住,没有输出 MP4:导入前将截图调整为 1080×1920,限制图片时长不超过 5 秒。
• 第三方上传工具拒绝文件,返回 HTTP 400:确保 MP4 使用 H.264 视频和 AAC 音频编码,可通过 ffmpeg 重新编码。
• n8n webhook 无法访问:将 n8n 部署到静态 IP 后,开发阶段可使用 ngrok 等隧道服务,添加健康检查告警。
• 产生意外账单:在脚本中设置每日生成视频数量上限,记录使用情况方便审计。
这个流程是模块化的,可以替换不同的 TTS、编辑器或内容来源,控制好调用频率和成本,就可以持续自动产出内容。