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 --> PortalWeb

mermaid

系统架构图

2. 组件说明

A. 核心模块

模块文件功能
CLI 入口cli.py命令行接口,提供所有用户命令
配置管理config.py配置常量和环境变量
数据库db.pySQLite 状态持久化
HF 抓取hf_fetcher.pyHuggingFace 论文抓取(支持周 URL)
PDF 下载pdf_downloader.pyarXiv PDF 下载器(SHA256 校验)
NotebookLMnblm_bot.pyNotebookLM 自动化操作
抖音发布douyin_bot.py抖音创作者平台自动化
HF 发布publisher.pyHuggingFace Dataset 发布
周报生成digest.py本地周报生成

B. 数据流

  1. 论文获取:从 HuggingFace /week/YYYY-WXX URL 获取每周热门论文列表
  2. PDF 下载:从 arXiv 下载 PDF,使用 SHA256 校验避免重复下载
  3. 视频生成:上传到 NotebookLM,触发 AI 视频生成(异步)
  4. 视频下载:从 NotebookLM 下载生成的视频文件
  5. 内容发布:上传到 HuggingFace Dataset 和抖音创作者平台
  6. 门户展示:通过 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: 自动重试

mermaid

状态机图

状态定义

状态含义说明
NEW论文已抓取初始状态,等待处理
PDF_OKPDF 已下载文件已通过 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[保存到本地]

mermaid

PDF缓存流程

实现细节:

  • 使用文件 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

该命令会:

  1. 获取 HuggingFace 本周论文(使用 /week/YYYY-WXX URL)
  2. 下载 arXiv PDF(支持缓存)
  3. 上传到 NotebookLM
  4. 触发视频生成(不等待完成)

Phase 2:下载生成的视频

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

等待几分钟后(视频生成需要时间),运行下载命令。支持缓存,已下载的视频会自动跳过。

Phase 3:发布到 HuggingFace

apd publish --week 2026-01

该命令会:

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

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

首次登录:

apd douyin-login

发布视频:

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

该命令会:

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

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 --headful

3. 目录结构

按日和按周的数据分开存放:

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

五、命令大全

1. 核心命令

命令说明
apd login打开浏览器完成 Google 登录(NotebookLM)
apd douyin-login打开浏览器完成抖音登录
apd fetch仅获取论文列表(不下载)
apd download仅下载 PDF(支持缓存)
apd uploadPhase 1:获取 + 下载 + 上传 + 触发生成
apd download-videoPhase 2:下载已生成的视频(支持缓存)
apd publishPhase 3:发布到 HuggingFace
apd publish-douyinPhase 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-digest

2. 功能特性

  • 动态周选择下拉菜单
  • 在线视频播放
  • 论文信息展示
  • 响应式设计

七、技术栈

技术用途
Python 3.11+核心语言
Playwright浏览器自动化
SQLite状态持久化
ClickCLI 框架
Requests + BeautifulSoup网页抓取
huggingface_hubHF API
Gradio门户网站
python-dotenv环境变量管理

八、故障排除

1. 登录问题

重新执行登录命令:

apd login

2. NotebookLM 界面变化

查看截图调试:

ls data/profiles/screenshots/

3. 视频未生成

视频生成需要几分钟时间,请稍后重试:

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

4. 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. 学术研究

建立个人论文库,支持搜索和回顾,辅助研究方向探索。


参考资料

  1. Auto Paper Digest - GitHub
  2. HuggingFace Spaces 在线体验
最后修改:2026 年 01 月 19 日
如果觉得我的文章对你有用,请随意赞赏