Auto Paper Digest AI 论文自动化处理管道技术分析
一、概述
1. 项目简介
Auto Paper Digest(APD)是一个自动化 AI 论文处理管道,能够自动追踪 Hugging Face 每周热门 AI 论文,下载 PDF,导入 NotebookLM 生成视频讲解,并将所有内容归档为可搜索的周报摘要。
2. 核心功能
- 自动抓取 Hugging Face 每周 AI 论文
- 从 arXiv 下载论文 PDF(支持 SHA256 校验)
- 通过 NotebookLM 自动生成论文视频讲解
- 自动发布视频到 HuggingFace Dataset
- 自动发布视频到抖音创作者平台
- 提供 Gradio 门户网站在线播放视频
二、系统架构
1. 整体架构
项目采用三阶段流水线设计,每个阶段可独立执行,支持断点续传。
graph TB
subgraph Phase1["Phase 1: Upload"]
HF["HuggingFace Papers"] --> ArXiv["arXiv PDFs"]
ArXiv --> NBLM["NotebookLM"]
end
subgraph Phase2["Phase 2: Download"]
NBLM --> Video["Videos"]
end
subgraph Phase3["Phase 3: Publish"]
Video --> HFDS["HuggingFace Dataset"]
Video --> Douyin["Douyin Creator"]
end
subgraph Storage["SQLite Database"]
DB[(状态追踪<br/>NEW → PDF_OK →<br/>NBLM_OK → VIDEO_OK)]
end
HF -.状态.-> DB
ArXiv -.状态.-> DB
NBLM -.状态.-> DB
Video -.状态.-> DB
subgraph Portal["Portal Website"]
PortalWeb["Gradio Portal<br/>(HF Spaces)"]
end
HFDS --> PortalWeb2. 组件说明
A. 核心模块
| 模块 | 文件 | 功能 |
|---|---|---|
| CLI 入口 | cli.py | 命令行接口,提供所有用户命令 |
| 配置管理 | config.py | 配置常量和环境变量 |
| 数据库 | db.py | SQLite 状态持久化 |
| HF 抓取 | hf_fetcher.py | HuggingFace 论文抓取(支持周 URL) |
| PDF 下载 | pdf_downloader.py | arXiv PDF 下载器(SHA256 校验) |
| NotebookLM | nblm_bot.py | NotebookLM 自动化操作 |
| 抖音发布 | douyin_bot.py | 抖音创作者平台自动化 |
| HF 发布 | publisher.py | HuggingFace Dataset 发布 |
| 周报生成 | digest.py | 本地周报生成 |
B. 数据流
- 论文获取:从 HuggingFace
/week/YYYY-WXXURL 获取每周热门论文列表 - PDF 下载:从 arXiv 下载 PDF,使用 SHA256 校验避免重复下载
- 视频生成:上传到 NotebookLM,触发 AI 视频生成(异步)
- 视频下载:从 NotebookLM 下载生成的视频文件
- 内容发布:上传到 HuggingFace Dataset 和抖音创作者平台
- 门户展示:通过 Gradio Spaces 门户网站在线播放
三、技术实现
1. 状态机设计
项目使用 SQLite 数据库实现状态追踪,确保处理过程的可恢复性。
stateDiagram-v2
[*] --> NEW: 论文抓取
NEW --> PDF_OK: PDF 下载成功
NEW --> ERROR: 下载失败
PDF_OK --> NBLM_OK: 上传 NotebookLM
PDF_OK --> ERROR: 上传失败
NBLM_OK --> VIDEO_OK: 视频下载成功
NBLM_OK --> NBLM_OK: 等待生成
NBLM_OK --> ERROR: 下载失败
VIDEO_OK --> [*]: 完成
ERROR --> NEW: 自动重试状态定义
| 状态 | 含义 | 说明 |
|---|---|---|
| NEW | 论文已抓取 | 初始状态,等待处理 |
| PDF_OK | PDF 已下载 | 文件已通过 SHA256 校验 |
| NBLM_OK | 已上传 NotebookLM | 视频生成中,可能需要等待 |
| VIDEO_OK | 视频已下载 | 可以发布 |
| ERROR | 处理失败 | 支持自动重试 |
2. 浏览器自动化
A. Playwright 集成
项目使用 Playwright 进行浏览器自动化,支持:
- Google 账号登录(NotebookLM)
- 抖音创作者平台登录
- 登录状态持久化
B. 登录状态管理
登录状态保存在 data/profiles/ 目录下:
- 浏览器配置文件(含 Cookies)
- 支持一次登录,长期使用
3. 缓存机制
A. PDF 缓存
graph LR
A[下载 PDF] --> B{SHA256 校验}
B -->|文件存在| C[跳过下载]
B -->|文件不存在| D[保存到本地]实现细节:
- 使用文件 SHA256 哈希值作为唯一标识
- 相同文件自动跳过,节省带宽
- 支持强制重新下载(
--force参数)
B. 视频缓存
- 使用文件名前缀匹配:
{paper_id}_*.mp4 - 支持新的命名格式:
{paper_id}_{video_title}.mp4 - 已下载视频自动跳过
C. 发布缓存
- metadata.json 中记录已发布的论文
- 重复发布自动跳过
四、工作流程
1. 三阶段工作流
Phase 1:上传并触发视频生成
apd upload --week 2026-01 --headful --max 10该命令会:
- 获取 HuggingFace 本周论文(使用
/week/YYYY-WXXURL) - 下载 arXiv PDF(支持缓存)
- 上传到 NotebookLM
- 触发视频生成(不等待完成)
Phase 2:下载生成的视频
apd download-video --week 2026-01 --headful等待几分钟后(视频生成需要时间),运行下载命令。支持缓存,已下载的视频会自动跳过。
Phase 3:发布到 HuggingFace
apd publish --week 2026-01该命令会:
- 上传视频到 HuggingFace Dataset
- 更新 metadata.json
- 生成 Markdown 摘要
Phase 3b:发布到抖音(可选)
首次登录:
apd douyin-login发布视频:
apd publish-douyin --week 2026-01 --headful该命令会:
- 自动上传视频到抖音创作者平台
- 填写视频标题(论文标题)
- 添加话题标签(AI、论文解读等)
- 自动点击发布
2. 按日处理(可选)
除了按周处理外,也支持按日期处理论文:
# 获取指定日期的论文
apd fetch --date 2026-01-08 --max 10
# 上传并生成视频
apd upload --date 2026-01-08 --headful --max 10
# 下载视频
apd download-video --date 2026-01-08 --headful
# 发布到抖音
apd publish-douyin --date 2026-01-08 --headful3. 目录结构
按日和按周的数据分开存放:
data/pdfs/weekly/2026-01/- 按周处理的 PDFdata/pdfs/daily/2026-01-08/- 按日处理的 PDFdata/videos/weekly/2026-01/- 按周处理的视频data/videos/daily/2026-01-08/- 按日处理的视频
五、命令大全
1. 核心命令
| 命令 | 说明 |
|---|---|
| apd login | 打开浏览器完成 Google 登录(NotebookLM) |
| apd douyin-login | 打开浏览器完成抖音登录 |
| apd fetch | 仅获取论文列表(不下载) |
| apd download | 仅下载 PDF(支持缓存) |
| apd upload | Phase 1:获取 + 下载 + 上传 + 触发生成 |
| apd download-video | Phase 2:下载已生成的视频(支持缓存) |
| apd publish | Phase 3:发布到 HuggingFace |
| apd publish-douyin | Phase 3b:发布到抖音创作者平台 |
| apd digest | 生成本地周报 |
| apd run | 完整流程(一键执行,需等待视频生成) |
| apd status | 查看论文处理状态 |
2. 常用参数
| 参数 | 说明 |
|---|---|
| --week, -w | 指定周 ID(如 2026-01),默认当前周 |
| --date, -d | 指定日期(如 2026-01-08) |
| --max, -m | 最大论文数量 |
| --headful | 显示浏览器窗口(调试时使用) |
| --force, -f | 强制重新处理(忽略缓存) |
| --debug | 开启调试日志 |
六、门户网站
1. Gradio Spaces
视频发布后,可在 HuggingFace Spaces 门户网站直接观看:
https://huggingface.co/spaces/your-username/paper-digest在线体验地址:
https://huggingface.co/spaces/brianxiadong0627/paper-digest2. 功能特性
- 动态周选择下拉菜单
- 在线视频播放
- 论文信息展示
- 响应式设计
七、技术栈
| 技术 | 用途 |
|---|---|
| Python 3.11+ | 核心语言 |
| Playwright | 浏览器自动化 |
| SQLite | 状态持久化 |
| Click | CLI 框架 |
| Requests + BeautifulSoup | 网页抓取 |
| huggingface_hub | HF API |
| Gradio | 门户网站 |
| python-dotenv | 环境变量管理 |
八、故障排除
1. 登录问题
重新执行登录命令:
apd login2. NotebookLM 界面变化
查看截图调试:
ls data/profiles/screenshots/3. 视频未生成
视频生成需要几分钟时间,请稍后重试:
apd download-video --week 2026-01 --headful4. HuggingFace Token 问题
确保 .env 文件配置正确:
cat .env
# 检查 HF_TOKEN 和 HF_USERNAME九、项目亮点
1. 幂等性设计
所有操作都支持幂等性:
- PDF 下载通过 SHA256 校验避免重复
- 视频下载通过文件名匹配避免重复
- 发布操作通过 metadata.json 避免重复
2. 断点续传
基于 SQLite 状态追踪,支持中断后继续:
- 每篇论文独立处理
- 失败自动重试
- 状态可查询
3. 灵活的工作流
三阶段设计允许:
- 分阶段执行,灵活控制
- 按周或按日处理
- 选择性发布(HuggingFace 或抖音)
4. 登录状态持久化
浏览器配置文件保存登录状态:
- 一次登录,长期使用
- 支持 Google 和抖音双平台
- 减少手动操作
5. 门户网站集成
Gradio Spaces 提供:
- 在线视频播放
- 动态内容更新
- 无需自建服务器
十、应用场景
1. 个人知识管理
自动追踪 AI 前沿论文,生成视频摘要,便于快速了解最新进展。
2. 内容创作
自动生成论文解读视频,发布到抖音等平台,构建内容生产流水线。
3. 团队协作
通过周报摘要和门户网站,团队成员可以快速共享和讨论最新研究成果。
4. 学术研究
建立个人论文库,支持搜索和回顾,辅助研究方向探索。