核心用法
Reddit Archive 是一款基于 Python 的命令行工具,用于批量下载 Reddit 用户或特定子版块的帖子内容。支持两种模式:
- 用户模式 (
-u username):抓取指定用户的所有发帖 - 子版块模式 (
-s subreddit):抓取指定社区的帖子
下载内容涵盖图片(JPG/PNG/WebP)和视频/GIF(通过 yt-dlp 处理 gfycat、redgifs、imgur 等外链)。输出文件采用 {target}_{post_id}.{ext} 的命名规则,便于检索。
显著优点
1. 自动化依赖管理:首次运行自动检测并安装 requests 和 yt-dlp,降低使用门槛
2. 灵活的筛选机制:支持按热度、时间、日期范围过滤,可限制抓取数量
3. 并行下载加速:默认 4 个 worker 同时下载,提升效率
4. 智能去重:--skip-existing 避免重复下载,节省带宽和时间
5. 原生支持媒体元数据:自动解析 Reddit 画廊(gallery)中的多图结构
潜在缺点与局限性
1. API 限制:Reddit 未公开 API 的速率限制较严格(0.8 秒/请求),大规模抓取耗时较长
2. 日期过滤为客户端实现:先获取再过滤,非 API 级别筛选,可能影响效率
3. 单实例限制:并行运行多个任务会触发 403 错误
4. 依赖外部工具:视频下载依赖 yt-dlp,若其更新滞后可能影响特定平台兼容性
5. 无增量同步机制:每次运行需重新扫描,不适合实时监控新内容
适合人群
- 数字存档爱好者、研究人员需要备份特定用户或社区的历史内容
- 内容创作者批量采集素材进行二次创作
- 隐私敏感用户希望将 Reddit 内容本地化存储
常规风险
- 版权合规:下载他人内容需遵守 Reddit 用户协议及当地版权法
- 账户安全:频繁请求可能触发 Reddit 反爬虫机制,建议控制抓取频率
- 存储管理:未设置
--limit时可能产生大量文件,需注意磁盘空间 - 依赖安全:自动安装的 Python 包来源为 PyPI,需确保环境可信