Communitygithub.com

Paper-to-Bilibili (논문→Bilibili)

논문 PDF를 MinerU, SUSTech Beamer 슬라이드, 중국어 내레이션, 가로/세로 동영상, 메타데이터 검증을 거쳐 Bilibili에 업로드하는 종합 파이프라인을 오케스트레이션합니다. 단일 논문 및 배치 슬라이드, 동영상, Bilibili 단계를 지원합니다.

Paper-to-Bilibili (논문→Bilibili)란 무엇인가요?

이 스킬은 논문 PDF를 Bilibili 업로드용 콘텐츠로 변환하는 전체 파이프라인을 자동화합니다. 먼저 논문의 TeX 소스(또는 PDF)를 SUSTech 16:10 Beamer 슬라이드로 컴파일하고, 각 슬라이드에 중국어 내레이션을 추가합니다. 그런 다음 가로(landscape) 동영상과 세로(portrait, Rednote용) 동영상을 생성하고, 표지 이미지와 Bilibili 메타데이터를 검증한 후 최종 업로드를 수행합니다. 슬라이드, 동영상, Bilibili 단계를 개별적으로 실행하거나 전체 파이프라인을 한 번에 실행할 수 있습니다. 각 단계는 엄격한 품질 게이트(예: 모든 페이지에 내레이션 존재, 동영상 파일 비어 있지 않음, 메타데이터 스키마 유효)를 통과해야만 다음 단계로 진행됩니다. 배치 처리를 지원하며, 실패 시 상태를 롤백하지 않고 현재까지의 안정된 상태를 유지합니다. Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-to-bilibili

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

논문을 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가 없고 paper_src/에 .tex 파일이 없으면) 먼저 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에는 논문 정보, 동기, 방법, 실험, 한계점, 핵심 요약, 참고 문헌, Q&A 및 3~8개의 유용한 부록 슬라이드에 이르는 논문별 내러티브가 포함되어야 합니다.
  2. 문서는 SUSTech 16:10 템플릿(aspectratio=1610)을 사용해야 합니다.
  3. slides-beamer/main.pdf는 비어 있지 않으며, 정의되지 않은 컨트롤이나 심각한 오버플로가 없어야 합니다.

배치 CLI는 이 에이전트가 작성한 이 단계에 대해 디스크 증거만 스캔하고 유지합니다. 슬라이드를 조작하지 않습니다.

내레이션 작성 게이트

컴파일된 TeX을 video/main_with_narration.tex로 복사하고 물리적 PDF 페이지당 정확히 하나의 비어 있지 않은 % NARRATION: 항목을 추가합니다. 내레이션은 정제된 간체 중국어로 작성되며 영어 기술 용어는 인라인으로 유지됩니다. 기술적 논지를 확장하며 불릿 포인트를 읽지 않고, "본 페이지" 또는 "그림과 같이" 같은 시각적 참조를 피하며, 부록 페이지도 포함합니다.

slides_done에서 narrations_done으로의 전환은 컴파일된 슬라이드와 비어 있지 않은 주석이 달린 TeX이 모두 존재할 때만 발생합니다.

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, 유효한 copyright/source 필드, 구조화된 설명, 비어 있지 않은 표지를 사용합니다. 논문은 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.

관련 스킬