Communitygithub.com

论文到Bilibili全流程编排

将论文PDF通过MinerU解析、生成SUSTech Beamer幻灯片、完整中文讲解、横竖版视频、元数据审查并上传至Bilibili。支持单篇和批量处理。

论文到Bilibili全流程编排 是什么?

这是一个完整的论文到Bilibili发布流水线编排技能。它整合了多个子技能:`paper-to-beamer`从MinerU解析内容生成16:10 SUSTech Beamer幻灯片;`paper-slides-to-video`将幻灯片页面渲染为视频帧,提取旁白文本并调用TTS生成中文讲解音频,最后组装为横版MP4视频;`rednote-video-uploader`负责竖版视频生成;`paper-bilibili-uploader`处理验证、试运行和最终上传。 核心工作流包括三个主要阶段:`slides`阶段从arXiv下载源码或PDF,编译TeX生成幻灯片;`video`阶段为每页添加中文旁白,生成横竖版视频和封面;`bilibili`阶段先试运行验证元数据,再正式上传。每个阶段都有严格的质量门禁,确保输出完整性。 支持Linux、macOS和Windows平台,依赖Python 3.10+和一系列子技能包。状态机基于磁盘扫描自动推进,每步成功后会重写状态JSON,失败时保留最后有效状态并传播错误码。 通过`papers.json`批量输入,每个论文对象包含`dir_path`、`arxiv_id`等字段。支持单篇或批量从论文到Bilibili的端到端请求,以及PDF到视频发布等触发方式。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-to-bilibili

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

论文到Bilibili

这是唯一完整的全流水线编排身份。它组合了以下推广包以及保留的管理型Rednote工作流:

  • paper-to-beamer:论文和MinerU内容到编译的16:10 SUSTech Beamer幻灯片。
  • paper-video-cover:可选的海报生成供参考;常规视频封面仍为生成的封面工件。
  • paper-slides-to-video:物理页面渲染、旁白提取、TTS、横版组装、封面和Bilibili元数据。
  • rednote-video-uploader(管理型):必需的竖版视频生成。
  • paper-bilibili-uploader:失败关闭式验证、试运行、上传和持久化收据。

输出使用 $PP_ROOT/论文分享/<VENUE YEAR - SHORT>/ ,包含 md_output/ 、 slides-beamer/ 和 video/ 。

模式和阶段

slides:论文到编译的幻灯片

当一个条目拥有非空的 arxiv_id (或用户提供了arXiv链接)且磁盘上没有源文件(没有根PDF,也没有包含 .tex 的 paper_src/ )时,首先下载TeX源码:

python \
  "<SKILLS_DIR>/paper-download-arxiv-paper-source/scripts/download_source.py" \
  "<arxiv_id>" --output "<paper_dir>"

下载器创建 <paper_dir>/arXiv-<id>.tar.gz + <paper_dir>/paper_src/ ;然后继续执行 skill://paper-to-beamer 阶段1及后续步骤(阶段1的移动步骤被跳过,因为论文目录已存在)。对于 PDF_ONLY 输出,将PDF复制到论文目录根目录( pdf_downloaded 门禁要求存在根PDF)。

按照 skill://paper-to-beamer 进行内容创作。继续前必须满足以下门禁:

  1. slides-beamer/main.tex 包含针对论文的叙述,涵盖论文信息与动机、方法、实验、局限性、要点、参考文献、问答以及3–8张有用的附录幻灯片。
  2. 文档使用SUSTech 16:10模板( aspectratio=1610 )。
  3. slides-beamer/main.pdf 非空,无未定义控制或严重溢出。

批量CLI仅扫描并持久化此智能体撰写阶段的磁盘证据;它不会伪造幻灯片。

旁白创作门禁

将编译后的TeX复制到 video/main_with_narration.tex ,并为每个物理PDF页面添加恰好一个非空的 % NARRATION: 条目。旁白是精炼的简体中文,技术术语保留英文。它扩展技术论证,而非朗读要点,避免“本页”或“如图所示”等纯视觉引用,并覆盖附录页面。

只有当编译的幻灯片和非空的带注释TeX都存在时,状态才从 slides_done 转换到 narrations_done 。

video:带旁白的横版和竖版工件

python <SKILLS_DIR>/paper-to-bilibili/scripts/batch.py video "<PAPERS_JSON>"

对于每个 narrations_done 的论文,编排器调用同级 paper-slides-to-video 的 full 命令。子任务成功后,重新扫描并原子化持久化 video_done 。然后调用管理型 rednote-video-uploader/scripts/portrait_video.py ,重新扫描,验证封面和Bilibili元数据,并原子化持久化 upload_ready 。子任务失败会传播并永不推进状态。

质量门禁包括:每个页面的帧/文本/MP3数量精确、非空旁白和音频、非空横版MP4、非空竖版MP4、非空封面以及符合模式的Bilibili元数据。

bilibili:验证或上传

始终先审查试运行:

python <SKILLS_DIR>/paper-to-bilibili/scripts/batch.py bilibili "<PAPERS_JSON>" --dry-run

试运行委托给推广的上传器,且必须保持 upload_ready 不变。仅在审查后移除 --dry-run 。没有默认的上传超时;操作员可以选择 --upload-timeout SECONDS 。

正常上传需要先上传P1横版视频,然后上传P2竖版视频。元数据使用单一的 tag 、正数的 tid 、有效的版权/来源字段、结构化的描述和非空封面。只有当 video/upload_result.json 有效且包含匹配的BV URL和ISO-8601时间戳时,论文才变为 uploaded 状态。

状态契约

batch.py 按以下精确优先级重新扫描磁盘:

  1. 有效的 upload_result.json → uploaded
  2. 非空横版视频 + 非空竖版视频 + 封面 + 符合模式的 video_meta.json → upload_ready
  3. 非空横版视频 → video_done
  4. 编译的幻灯片 + 非空带注释TeX → narrations_done
  5. 编译的幻灯片 → slides_done
  6. MinerU Markdown → mineru_done
  7. 源PDF或提取的TeX源码( paper_src/ 包含 .tex )→ pdf_downloaded
  8. 否则 → pending

每个成功的子命令后都会进行重新扫描并原子化替换输入的JSON。状态变更以 STATE <paper>: <old> -> <new> 打印。试运行会验证和委托,但从不创造新状态。失败的子任务保留最后有效状态,并传播其退出码。

批量输入

papers.json 是一个对象数组,每个对象包含非空的绝对 dir_path ; dir_name 、 arxiv_id 、 pdf_path 和描述性字段可以伴随。编排器在每个对象中记录 _status 。

先决条件

  • Python 3.10+(如果 python 不在PATH中,请使用 py -3 )。
  • 依赖项在 pyproject.toml 中声明(当前运行时无依赖);添加任何依赖时,请使用 uv sync --project <SKILLS_DIR>/paper-to-bilibili 安装项目。
  • <SKILLS_DIR> 是包含已安装技能文件夹的目录(例如 ~/.claude/skills 、 ~/.codex/skills 、 .omp/skills );同级技能( paper-slides-to-video 、 paper-bilibili-uploader 、 paper-download-arxiv-paper-source )必须安装在此技能旁边,以便同级解析保持项目局部性和确定性。
  • PAPER_PYTHON (可选):用于启动同级CLI的解释器;默认为运行 batch.py 的解释器。

相关技能

  • skill://paper-bilibili-uploader
  • skill://paper-download-arxiv-paper-source
  • skill://paper-slides-to-video
  • skill://paper-to-beamer
  • skill://paper-video-cover
  • skill://rednote-video-uploader

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Peytontalismanic424/paper-share-skills

Validate and upload narrated paper videos to Bilibili with biliup. Handles required landscape-first/portrait-second submissions, series uploads, CST scheduling, diagnostics, dry-run validation, and durable upload receipts. Trigger on: "upload to bilibili", "bilibili upload", "发布到B站", "上传到B站".

Peytontalismanic424/paper-share-skills

Download the TeX source (e-print tar.gz) of an arXiv paper from an arXiv URL or bare ID, and unpack it into paper_src/. Use FIRST whenever a pipeline input is an arXiv link and the TeX source is preferred over the PDF (paper-to-beamer, paper-to-bilibili, paper-venue-discovery). Invoke with an arXiv URL (abs/pdf/e-print, arxiv.org or export.arxiv.org) or a bare ID like 2509.07996v4.

Peytontalismanic424/paper-share-skills

Convert Beamer PDF slides into a fail-closed narrated MP4 with page-aligned narration, TTS audio, cover, and upload metadata. Trigger on narrated slides, slide video, or paper video requests.

Peytontalismanic424/paper-share-skills

Automated pipeline: paper (PDF or TeX source) → SUSTech Beamer slides (11-section 论文分享 structure) → compiled PDF. When TeX source is available, skip MinerU and extract content directly from LaTeX. Use when the user asks to create Beamer slides from an academic paper, or says "论文分享", "paper to slides", "make beamer from paper". Invoke with an absolute or relative path to a PDF, .tar.gz TeX archive, .tex file, or an arXiv URL/ID (source TeX is downloaded first via skill://paper-download-arxiv-paper-source).

Peytontalismanic424/paper-share-skills

Generate a deterministic 16:10 video-cover poster from a paper directory. Extracts paper metadata and figures and atomically produces poster.tex, poster.pdf, and poster.png. Use for paper-video covers, not conference posters.

Peytontalismanic424/paper-share-skills

Convert a PDF (especially academic papers) to clean Markdown using MinerU — preserves reading order, LaTeX equations, tables, and figures, and runs on the GPU. Use when the user asks to convert/extract a PDF to markdown/text. Invoke directly — no need for the user to type the skill name.

Peytontalismanic424/paper-share-skills

Fix for undefined \setsource/\setdomains/\setpresenter/\setvenue commands when compiling SUSTech Beamer slides from the standard template. Copy the extended beamerthemesustech.sty from the sustech-slides-template repository.

相关技能