首页 / 正文

用一个 Python 脚本把 Reddit 帖子做成 YouTube Shorts:抓帖→截屏→配音→叠卡→导出 MP4

Mooko
发布于 2026-04-15 · 5分钟阅读
445 浏览
0 点赞 暴击点赞!

用一个 Python 脚本,把 Reddit 帖子批量做成 Shorts(冷知识/故事号同款)

你刷到过这种视频吗:

  • 画面是《我的世界》跑酷/地铁跑酷当背景
  • 上面一张张弹出 Reddit 帖子/评论卡片
  • AI 旁白像在讲故事
  • 30~60 秒一条,密集更新

这套流水线已经很透明了:给它一个 Reddit 链接,它就能自动生成完整视频

GitHub 上就有开源项目(9000+ Star)在干这事:elebumm/RedditVid

下面咱们按“能照做”的方式,把它跑起来。⚙️


你会得到什么成品

成品一般长这样:

  • 自动抓取:Reddit 帖子标题 + 正文 + 若干热门评论
  • 自动截图:生成帖子/评论卡片(用于叠加到视频上)
  • 自动配音:TTS 生成旁白音频(可选多种声音)
  • 自动剪辑:拿一段背景视频铺底(Minecraft 等)
  • 自动合成:卡片按时间点弹出 + 音频对齐 + 导出 MP4

适合的账号类型:

  • Reddit 故事号
  • 冷知识/奇闻号
  • “评论区神回复”号

不适合的:想做强个人风格、强剪辑节奏的号(自动化模板会显得“量产感”很重)。


准备清单(少一个都容易卡住)

必备

  • Python(建议 3.10+)
  • FFmpeg(负责合成、编码、导出 MP4)
  • Git(可选,用来克隆仓库)
  • 一条 Reddit 帖子链接

可选但很推荐

  • 一个干净的背景视频素材库(Minecraft 跑酷、地铁跑酷、解压切割等)
  • 可用的 TTS:项目自带/第三方都行,稳定最重要

安装与运行(按这个做,出错率最低)

下面命令以 macOS/Linux 为例,Windows 也能跑,路径写法不一样而已。

1)拉取项目代码

git clone https://github.com/elebumm/RedditVid.git
cd RedditVid

2)创建虚拟环境并安装依赖

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

如果项目用到了 Playwright/Selenium 之类的网页截图工具,通常还需要额外安装浏览器依赖(按仓库 README 为准):

playwright install

3)安装 FFmpeg

macOS:

brew install ffmpeg

Ubuntu:

sudo apt-get update
sudo apt-get install -y ffmpeg

Windows:去 FFmpeg 官网下压缩包,把 ffmpeg.exe 加到系统 PATH。

检验是否装好:

ffmpeg -version

能看到版本信息就 OK。


工作流拆解:它到底怎么把视频“拼出来”的

你理解这段,就知道怎么改模板、怎么提质量。

A. 抓取 Reddit 帖子与评论

常见做法两种:

  • 走 Reddit API(需要 key,稳定,结构化)
  • 直接解析网页(省事,遇到反爬/版式变化容易炸)

你想批量跑、少掉链子,更建议 API

B. 生成“卡片截图”(帖子/评论)

你看到的弹窗卡片通常来自:

  • 用浏览器把帖子/评论渲染出来
  • 截图保存为 PNG
  • 合成时把 PNG 叠到视频上

这一步最容易翻车:字体、主题、窗口大小一变,截图就歪。

C. TTS 生成旁白

生成音频后,脚本会拿到一个关键数据:音频时长

时长决定:

  • 背景视频要裁多长
  • 评论卡片每张出现多久
  • 过场怎么切(有的项目会简单淡入淡出)

D. 背景视频铺底(Minecraft 等)

背景视频一般会:

  • 裁到 9:16
  • 随机截取一段
  • 加一点模糊/降噪(避免太抢戏)

你想让账号“像人做的”,背景素材别太重复。

E. 叠加卡片 + 合成导出

核心工具基本都是 FFmpeg。

  • overlay 叠图
  • drawtext(有时用来打字幕/标题)
  • -shortest 让视频跟音频对齐

导出就是 MP4(H.264/AAC),Shorts/TikTok 都吃这套。


一条视频跑起来:示例(你照抄就能测通)

不同仓库参数名会不一样,这里给你“操作方式”,具体参数以项目文档为准。

假设你想把这条 Reddit 链接做成 Shorts:

https://www.reddit.com/r/AskReddit/comments/xxxxxx/...

你可以按类似思路运行:

python main.py \
  --url "https://www.reddit.com/r/AskReddit/comments/xxxxxx/..." \
  --background "./backgrounds/minecraft_01.mp4" \
  --voice "en_us_001" \
  --comments 8 \
  --output "./out/video_001.mp4"

跑完去 out/ 目录找成品。

建议你先做一个“最小闭环”:

  • 固定一个背景视频
  • 固定评论数量(比如 5 条)
  • 固定一种声音

能稳定生成后,再加随机化、批量化。


批量生产怎么做:一天出 30 条那种

批量的关键不在“多跑几次”,在“让素材不撞车”。

1)准备链接清单

搞个 urls.txt

https://www.reddit.com/r/AskReddit/comments/...
https://www.reddit.com/r/tifu/comments/...
https://www.reddit.com/r/relationship_advice/comments/...

2)写个最短的批处理脚本

while read url; do
  python main.py --url "$url" --background "./backgrounds/mc.mp4" --output "./out/$(date +%s).mp4"
done < urls.txt

你想更“像真人运营”,再加三件事:

  • 背景视频随机切换(素材池至少 20 条起)
  • 卡片位置做轻微随机(别每条都一模一样)
  • 配音音色做轮换(同一音色刷屏很像机器人)

质量拉满的小技巧(别让视频看着像流水线)

评论筛选:别什么都念

很多 Reddit 热评是梗、脏话、内涵。

你可以做个简单规则:

  • 太短的过滤(少于 8 个词直接跳过)
  • 全是 emoji/符号的过滤
  • 过于敏感的词替换或跳过(避免平台限流)

旁白节奏:别“朗读机”

TTS 想自然:

  • 语速不要太快(宁愿慢一点)
  • 句子太长就断句
  • 把缩写读法修掉(例如 TIFU、AITA)

画面别抢戏

背景视频太花会让人看不清卡片。

你可以:

  • 降低饱和度/亮度
  • 加轻微模糊
  • 卡片加描边或阴影

避坑清单(踩一次你就想骂人)

  • FFmpeg 找不到:90% 是 PATH 没配好。终端里跑 ffmpeg -version 自检。
  • 截图错位/元素缺失:窗口尺寸没固定。把 viewport 写死,别让它自适应。
  • Reddit 访问不稳定:地区网络、反爬、频率限制都会中招。API 方式更稳,抓取频率也别太猛。
  • TTS 声音断断续续:免费接口限额、网络抖动都会导致生成失败。加重试机制,或换稳定的付费渠道。
  • 导出视频糊:检查输出分辨率和码率。Shorts 建议 1080x1920,码率别低得离谱。
  • 被判重复内容:模板一成不变 + 同一背景反复用,很容易被平台“看穿”。素材池和版式要变化。

合规提醒(不讲大道理,只说会影响你账号的点)

  • Reddit 内容有版权与社区规则,别把作者信息抹掉还当“原创故事”。
  • 背景视频素材要么自制,要么拿可商用授权的。随手搬运游戏视频,爆了再说也行,但号可能活不久。
  • 涉及敏感话题(仇恨、暴力、成人内容),Shorts/TikTok 更容易限流或下架。

想走长期路线:加一点你的观点、吐槽、总结,哪怕只是一句“这评论太离谱了”。观感立刻不一样。


你可以怎么继续升级

  • 做一个“选题脚本”:自动找高互动帖子(按 upvote、评论数、时间窗口)
  • 做一个“字幕层”:把旁白转字幕,顺便高亮关键词
  • 做一个“模板系统”:标题、卡片动画、字体、配色都可配置

你要是把仓库的 README 或运行报错截图发我,我也能按你的环境把参数补齐,顺便给你一套更稳的批量配置。

OpenClaw
OpenClaw
木瓜AI支持养龙虾啦
木瓜AI龙虾专供API,限时领取免费tokens
可在 OpenClaw接入全球顶尖AI大模型
立即领取