auto-paper-digest: An automated pipeline that tracks Hugging Face weekly AI papers, downloads PDFs, imports them into NotebookLM, generates video overviews, and archives everything into a searchable weekly digest.
Find a file
2026-02-12 23:52:51 +08:00
apd feat: Refactor Gradio UI to use Blocks for dynamic week dropdown refreshing and enhance database queries to support flexible week/date ID matching. 2026-01-16 10:34:01 +08:00
portal feat: Refactor Gradio UI to use Blocks for dynamic week dropdown refreshing and enhance database queries to support flexible week/date ID matching. 2026-01-16 10:34:01 +08:00
.env.example 增加门户网站发布 2026-01-08 16:56:16 +08:00
.gitignore 增加门户网站发布 2026-01-08 16:56:16 +08:00
daily.sh 增加参数形式,方便使用crontab自动化 2026-02-12 23:52:51 +08:00
douyin.jpg feat : 增加抖音推广图片 2026-01-12 10:28:52 +08:00
pyproject.toml 增加门户网站发布 2026-01-08 16:56:16 +08:00
README.md feat : 增加抖音推广图片 2026-01-12 10:28:52 +08:00

🚀 Auto Paper Digest (APD)

自动获取 AI 前沿论文 → 下载 PDF → 生成视频讲解 → 发布到 HuggingFace/抖音 → 门户网站展示

Python NotebookLM HuggingFace Douyin License

🎥 在线体验: https://huggingface.co/spaces/brianxiadong0627/paper-digest


📱 关注抖音,获取最新 AI 论文解读视频!

抖音二维码

🔥 最新AI论文每周更新
扫码关注,第一时间获取精彩内容


功能亮点

功能 说明
📚 论文获取 自动抓取 Hugging Face 每周热门 AI 论文(支持周 URL
📄 PDF 下载 从 arXiv 下载论文 PDF幂等操作SHA256 校验)
🎬 视频生成 通过 NotebookLM 自动生成论文视频讲解
📤 自动发布 上传视频到 HuggingFace Dataset
📱 抖音发布 自动发布视频到抖音创作者平台
🌐 门户网站 Gradio 门户网站,在线播放视频
💾 断点续传 SQLite 状态追踪,支持中断后继续
🔐 登录复用 Google/抖音登录状态持久化,一次登录长期使用

📐 架构设计

┌─────────────────────────────────────────────────────────────────────┐
│                        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 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

<EFBFBD> 缓存机制

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 界面变化

查看截图:

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 - 环境变量管理

📄 License

MIT License © 2026