🚀 Auto Paper Digest (APD): 自动AI论文解读与发布系统

摘要

Auto Paper Digest (APD) 是一个一站式AI论文自动化处理平台,能够自动抓取前沿AI论文、生成视频讲解、并发布到HuggingFace和抖音等平台,让科研成果更广泛地传播。

功能亮点

📚 论文获取

APD能够自动抓取Hugging Face每周热门AI论文,支持通过周URL进行精准获取。系统会自动解析论文信息,包括标题、作者、摘要等关键内容,为后续处理提供基础数据。

📄 PDF下载

从arXiv下载论文PDF文件时,系统采用了幂等操作和SHA256校验机制,确保文件下载的完整性和准确性。已下载的论文会自动进行缓存,避免重复下载相同文件,提高处理效率。

🎬 视频生成

通过NotebookLM平台,APD能够自动生成论文的视频讲解。系统会将论文内容转化为适合视频呈现的形式,包括语音解说、字幕展示等,让复杂的学术内容变得更加通俗易懂。

📤 自动发布

生成的视频可以自动上传到HuggingFace Dataset,方便用户在平台上进行分享和传播。系统会自动更新metadata.json文件,确保视频信息的准确性和完整性。

📱 抖音发布

APD还支持将视频自动发布到抖音创作者平台。用户只需完成一次登录,系统就会持久化保存登录状态,后续发布无需重复登录。发布过程中,系统会自动填写视频标题、添加话题标签等信息,简化发布流程。

🌐 门户网站

通过Gradio门户网站,用户可以在线播放生成的视频。门户网站提供了友好的用户界面,支持按周、按日等多种方式浏览和搜索视频内容,让用户能够快速找到自己感兴趣的论文解读。

💾 断点续传

系统采用SQLite数据库进行状态追踪,支持断点续传功能。即使在处理过程中出现中断,用户也可以在后续继续完成未处理的论文,避免重复劳动。

🔐 登录复用

Google和抖音的登录状态会被持久化保存,用户只需完成一次登录,后续使用无需重复登录。这不仅提高了使用效率,还减少了用户的操作负担。

架构设计

APD的架构设计分为三个主要阶段:上传、下载和发布。系统通过SQLite数据库进行状态管理,确保各个阶段的协同工作。

┌─────────────────────────────────────────────────────────────────────┐
│                        Auto Paper Digest                             │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│   Phase 1: Upload            Phase 2: Download      Phase 3: Publish │
│   ┌─────────┐    ┌─────────┐    ┌─────────────┐    ┌──────────────┐ │
│   │   HF    │───▶│  arXiv  │───▶│ NotebookLM  │───▶│  HuggingFace │ │
│   │ Papers  │    │  PDFs   │    │   Videos    │    │   Dataset    │ │
│   └─────────┘    └─────────┘    └─────────────┘    └──────────────┘ │
│        │               │               │                   │         │
│        ▼               ▼               ▼                   ▼         │
│   ┌─────────────────────────────────────────────────────────────┐   │
│   │                    SQLite Database                           │   │
│   │      (status: NEW → PDF_OK → NBLM_OK → VIDEO_OK)            │   │
│   └─────────────────────────────────────────────────────────────┘   │
│                              │                                       │
│              ┌───────────────┼───────────────┐                       │
│              ▼               ▼               ▼                       │
│   ┌─────────────────┐ ┌─────────────┐ ┌─────────────┐               │
│   │ Portal Website  │ │   Douyin    │ │   Other     │               │
│   │  (HF Spaces)    │ │  Creator    │ │  Platforms  │               │
│   └─────────────────┘ └─────────────┘ └─────────────┘               │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

快速开始

1. 安装

# 克隆仓库
git clone https://github.com/brianxiadong/auto-paper-digest.git
cd auto-paper-digest

# 安装依赖
pip install -e .

# 安装浏览器
playwright install chromium

2. 配置环境变量

# 复制配置模板
cp .env.example .env

# 编辑 .env 填入 HuggingFace 配置
# HF_TOKEN=hf_xxx
# HF_USERNAME=your-username
# HF_DATASET_NAME=paper-digest-videos

3. 首次登录 Google

apd login

浏览器会打开NotebookLM登录页面,完成Google登录后,会话将被保存。这样后续使用时就无需重复登录,提高使用效率。

三阶段工作流

Phase 1: 上传并触发视频生成

apd upload --week 2026-01 --headful --max 10

该命令会执行以下操作:

  • 获取HuggingFace本周论文(使用 /week/YYYY-WXX URL)
  • 下载arXiv PDF(支持缓存,已下载的跳过)
  • 上传到NotebookLM
  • 触发视频生成(不等待完成)

Phase 2: 下载生成的视频

等待几分钟后(视频生成需要时间),运行以下命令:

apd download-video --week 2026-01 --headful

系统支持缓存功能,已下载的视频会自动跳过。如果需要重新下载,可以使用 --force 参数强制重新下载。

Phase 3: 发布到HuggingFace

apd publish --week 2026-01

该命令会执行以下操作:

  • 上传视频到HuggingFace Dataset
  • 更新metadata.json
  • 生成Markdown摘要

Phase 3b: 发布到抖音(可选)

首次使用需要先登录抖音:

apd douyin-login

浏览器会打开抖音创作者中心登录页面,使用抖音APP扫码登录后,登录状态将被保存。后续发布视频时无需重复登录。

然后发布视频到抖音:

apd publish-douyin --week 2026-01 --headful

该命令会执行以下操作:

  • 自动上传视频到抖音创作者平台
  • 填写视频标题(论文标题)
  • 添加话题标签(AI、论文解读等)
  • 自动点击发布

首次使用建议添加 --headful 参数观察发布过程,确认无误后可去掉该参数。这样可以确保发布过程的顺利进行,避免出现意外情况。

按日处理(可选)

除了按周处理外,APD还支持按日期处理论文:

# 获取指定日期的论文
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 --headful

需要注意的是,周末和节假日通常没有新的论文发布,系统会提示错误而非继续处理。这可以避免不必要的资源浪费,提高系统的运行效率。

文件夹结构

按日和按周的数据分开存放,方便用户进行管理和查找:

  • data/pdfs/weekly/2026-01/ – 按周处理的PDF
  • data/pdfs/daily/2026-01-08/ – 按日处理的PDF
  • data/videos/weekly/2026-01/ – 按周处理的视频
  • data/videos/daily/2026-01-08/ – 按日处理的视频

🌐 门户网站

视频发布后,可在HuggingFace Spaces门户网站直接观看:

https://huggingface.co/spaces/your-username/paper-digest

门户网站提供了友好的用户界面,支持按周、按日等多种方式浏览和搜索视频内容,让用户能够快速找到自己感兴趣的论文解读。

命令大全

命令 说明
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 查看论文处理状态

常用参数

--week, -w     指定周ID(如2026-01),默认当前周
--max, -m      最大论文数量
--headful      显示浏览器窗口(调试时使用)
--force, -f    强制重新处理(忽略缓存)
--debug        开启调试日志

目录结构

auto-paper-digest/
├── apd/                    # 主程序包
│   ├── cli.py              # 命令行入口
│   ├── config.py           # 配置常量
│   ├── db.py               # SQLite数据库
│   ├── hf_fetcher.py       # HF论文抓取(支持周URL)
│   ├── pdf_downloader.py   # PDF下载器
│   ├── nblm_bot.py         # NotebookLM自动化
│   ├── douyin_bot.py       # 抖音创作者平台自动化
│   ├── publisher.py        # HuggingFace发布
│   ├── digest.py           # 周报生成
│   └── utils.py            # 工具函数
├── portal/                 # HuggingFace Spaces门户
│   ├── app.py              # Gradio应用
│   ├── requirements.txt
│   └── README.md
├── data/
│   ├── apd.db              # SQLite数据库
│   ├── .douyin_auth.json   # 抖音登录状态
│   ├── pdfs/               # 下载的PDF(按周分目录)
│   ├── videos/             # 生成的视频(按周分目录)
│   ├── digests/            # 周报文件
│   └── profiles/           # 浏览器配置(含登录态)
├── .env.example            # 环境变量模板
└── pyproject.toml

缓存机制

PDF缓存

已下载的PDF通过SHA256校验,确保文件的完整性和准确性。相同文件会自动跳过下载,避免重复劳动,提高处理效率。

视频缓存

使用文件名前缀匹配({paper_id}_*.mp4),支持新的命名格式:{paper_id}_{video_title}.mp4。如果需要重新下载视频,可以使用 --force 参数强制重新下载。

发布缓存

metadata.json中记录已发布的论文,重复发布时会自动跳过,避免重复发布相同内容,提高发布效率。

状态追踪

NEW → PDF_OK → NBLM_OK → VIDEO_OK
 │                          │
 └──────── ERROR ◄──────────┘
状态 含义
NEW 论文已抓取,待处理
PDF_OK PDF已下载
NBLM_OK 已上传到NotebookLM,视频生成中
VIDEO_OK 视频已下载
ERROR 处理失败(会自动重试)

查看状态:

apd status --week 2026-01
apd status --week 2026-01 --status ERROR

故障排除

登录问题

如果遇到登录问题,可以重新运行以下命令:

apd login

NotebookLM界面变化

如果NotebookLM界面发生变化,可以查看截图:

ls data/profiles/screenshots/

视频未生成

视频生成需要一定的时间,如果视频未生成,可以等待几分钟后重试:

apd download-video --week 2026-01 --headful

HuggingFace Token问题

确保 .env 文件配置正确:

cat .env
# 检查HF_TOKEN和HF_USERNAME

技术栈

  • Python 3.11+ – 核心语言
  • Playwright – 浏览器自动化
  • SQLite – 状态持久化
  • Click – CLI框架
  • Requests + BeautifulSoup – 网页抓取
  • huggingface_hub – HF API
  • Gradio – 门户网站
  • python-dotenv – 环境变量管理