用一个 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 或运行报错截图发我,我也能按你的环境把参数补齐,顺便给你一套更稳的批量配置。