Communitygithub.com

Peytontalismanic424/paper-share-skills

BiliBili 업로드 검증 및 내레이션 비디오 업로드를 biliup으로 자동화합니다. 가로/세로 비디오 순서 준수, 시리즈 업로드, CST 스케줄링, 진단, dry-run 검증 및 업로드 영수증을 처리합니다.

paper-share-skills란 무엇인가요?

이 스킬은 연구 논문의 내레이션 비디오를 Bilibili에 업로드하는 과정을 자동화합니다. `biliup`, `psutil`, `requests` 라이브러리에 의존하며, `python upload.py <PAPER_DIR> --dry-run` 형태의 CLI를 통해 실행됩니다. 주요 기능으로는 가로 비디오를 먼저, 세로 비디오를 나중에 업로드하는 순서 강제, CST 시간대 기반 게시 일정 관리 (23시 이후 업로드는 다음날 07시로 예약), dry-run 모드에서의 사전 검증, 그리고 성공적인 업로드 시 `upload_result.json`에 BV 식별자와 타임스탬프를 기록하는 업로드 영수증 발급이 포함됩니다. 또한, 실험실 조사 논문의 경우 포스터 아티팩트가 필요하지만 커버는 첫 슬라이드를 사용하는 정책, 시리즈 모드, 로그인 및 진단 명령어를 지원합니다. 잘못된 커버로 업로드된 경우 재업로드 없이 `--edit` 명령어로 수정할 수 있습니다.

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

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

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

문서

Paper Bilibili Uploader

최종 패키징된 CLI를 사용하세요:

python <SKILLS_DIR>/paper-bilibili-uploader/scripts/upload.py "<PAPER_DIR>" --dry-run

(스크립트는 biliup, psutil, requests에 의존합니다. — 스킬 디렉토리의 pyproject.toml 참조; 해당 디렉토리에서 uv sync를 실행하거나 import 오류 발생 시 활성 인터프리터에 설치하십시오.)

해결된 파트, 메타데이터, 커버, 게시 시간을 검토한 후에만 --dry-run을 제거하십시오.

필수 일반 모드 레이아웃

<PAPER_DIR>/video/
  *_narrated.mp4
  *_portrait_narrated.mp4
  cover.png
  video_meta.json

두 MP4 파일은 모두 비어 있지 않아야 합니다. CLI는 결정론적으로 모든 가로 비디오를 모든 세로 비디오보다 먼저 전송합니다: P1 가로, 그 다음 P2 세로. 가로, 세로, 커버 또는 메타데이터 파일이 없거나 비어 있으면 실패로 종료됩니다.

커버 정책 (포스터 ARTIFACT 필수; 첫 번째 슬라이드 커버 업로드)

실험실 조사 (课题组) 디렉토리 — 논문 루트에 poster_data.json이 있는 경우 감지됨 — 여전히 논문-비디오-커버 POSTER 아티팩트가 필요합니다: <PAPER_DIR>/poster/poster.png가 존재해야 합니다 (없으면 생성 힌트와 함께 업로드가 실패로 종료됩니다). 그러나 업로드 커버는 기본적으로 데크의 첫 번째 슬라이드로 설정됩니다: video_meta.json에 명시적인 cover_path가 있으면 그것이 우선하고, 그렇지 않으면 video/cover.png (비디오 파이프라인에서 제목 페이지로 렌더링됨)가 사용됩니다 — 포스터는 첫 번째 슬라이드 커버로 복사되지 않습니다. 다른 모든 논문 (论文分享 등)은 일반 커버 계약을 유지합니다 — 명시적 cover_path → video/cover.png — 디렉토리의 poster/poster.png는 무시됩니다. 시리즈 모드 (--series)는 실험실/포스터 확인을 완전히 건너뜁니다.

실험실 비디오가 잘못된 커버로 이미 업로드된 경우, 재업로드 없이 수정하십시오: upload.py --edit --vid <BV> --cover <video/cover.png> — 멤버 커버 엔드포인트가 이미지를 업로드하고 편집이 URL을 그대로 제출합니다 (스킴을 제거하면 封面必须由页面进行上传,不支持外部链接 오류로 편집이 실패합니다). 비디오는 업로드 후 잠시 검토 상태에 머물며, 잠금 해제되면(상태 0) 편집이 성공하고, 그렇지 않으면 폴링 및 재시도합니다.

세로 아티팩트는 보존된 관리 워크플로우 ~/.omp/agent/managed-skills/rednote-video-uploader/scripts/portrait_video.py로 생성하십시오 (에이전트의 managed-skills 디렉토리에 맞게 조정).

메타데이터 계약

video/video_meta.json은 Bilibili의 단수 tag 키를 사용해야 합니다:

{"title":"【Venue Year】Paper — 中文亮点","tag":["论文分享","机器人"],"tid":231,"copyright":1,"desc":"【论文信息】...","cover_path":"cover.png"}

검증에는 비어 있지 않은 문자열 title; 비어 있지 않은 문자열 목록의 tag; 양의 정수 tid; copyright가 정확히 1 또는 2; 그리고 copyright가 2인 경우 비어 있지 않은 source가 필요합니다. cover_path는 비어 있지 않은 파일로 확인되어야 합니다. tag를 tags로 이름을 바꾸지 마십시오. tags는 Rednote 메타데이터에 속합니다.

Dry-run 경계

--dry-run은 입력 해결, P1/P2 순서 지정, 메타데이터 패치, 게시 일정, 검증 및 완전한 명령 구성을 수행합니다. biliup 하위 프로세스가 시작되기 전에 반환되며 업로드 영수증을 절대 기록하지 않습니다.

CST 스케줄링

  • 00:00–22:59는 메타데이터 또는 --dtime이 지연 시간을 제공하지 않는 한 즉시 게시합니다.
  • 23:00–23:59는 이미 지연 시간이 제공되지 않은 경우 다음날 07:00으로 예약합니다.
  • 명시적 --dtime은 항상 우선합니다. CST의 YYYY-MM-DD HH:MM 또는 10자리 Unix 타임스탬프를 허용합니다.

업로드 영수증

실제 업로드는 biliup이 0으로 종료되고 BV 식별자를 반환할 때만 성공합니다. CLI는 status, bv, url 및 ISO-8601 uploaded_at 필드를 정확히 포함하는 video/upload_result.json을 기록합니다. 0으로 종료되었지만 BV 식별자가 없으면 실패하며 영수증이 기록되지 않습니다.

시리즈 모드

정렬된 P1–PN 가로 비디오, cover.png 및 video_meta.json을 <PAPER_DIR>/bilibili-series/video/에 배치한 후 --series를 추가하십시오. 시리즈 모드는 파일 이름 순서를 유지하며 의도적으로 세로 부분을 필요로 하지 않습니다.

로그인 및 진단

동일한 CLI를 --login, --diagnose 또는 --kill-all과 함께 사용하십시오. 쿠키는 %USERPROFILE%/.bilibili/cookies.json에 저장됩니다. 진단은 psutil 프로세스/열린 파일 검사를 사용하며 WMIC 또는 fsutil에 의존하지 않고 설정되지 않은 LOCALAPPDATA를 허용합니다.

관련 스킬

  • skill://paper-video-cover
  • skill://rednote-video-uploader
  • skill://awesome-embodied-batch-pipeline
  • skill://bilibili-edit-while-in-review
  • skill://blog-to-bilibili
  • skill://lab-survey-to-bilibili-runbook

Individual skills in this repo

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

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

Orchestrate a paper PDF through MinerU, SUSTech Beamer slides, complete Chinese narration, landscape and portrait video, metadata gates, and Bilibili upload. Supports single-paper and batch slides, video, or bilibili phases. Trigger on full paper-to-Bilibili requests, PDF-to-video publication, and batch paper publishing.

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.

관련 스킬