Communitygithub.com

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.

¿Qué es paper-share-skills?

paper-share-skills is a Claude Code agent skill that 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.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-slides-to-video

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Paper Slides to Video

The public entrypoint is:

<SKILLS_DIR>/paper-slides-to-video/scripts/slides_to_video.py

Run it with the package environment:

uv run --project <SKILLS_DIR>/paper-slides-to-video python <SKILLS_DIR>/paper-slides-to-video/scripts/slides_to_video.py <subcommand>

Exact CLI

  • render PDF FRAME_DIR [--dpi 200]
  • plan TEX
  • narrations FRAME_DIR TEX --annotated-tex ANNOTATED_TEX
  • tts FRAME_DIR [--lang zh]
  • assemble FRAME_DIR OUTPUT [--pad-sec 0.5] [--speed 1.25]
  • cover FIRST_FRAME OUTPUT
  • metadata TEX COVER OUTPUT
  • full PAPER_DIR --annotated-tex ANNOTATED_TEX

Required full workflow

  1. Compile slides-beamer/main.pdf before invoking this package.
  2. Copy slides-beamer/main.tex to video/main_with_narration.tex and add one nonempty % NARRATION: annotation for every rendered physical page. This per-physical-page contract is what keeps landscape and portrait renders in sync: both orientations are assembled from the same PDF pages, so narration/audio cardinality gates apply equally to each orientation.
  3. Run full with the annotated TeX path.
uv run --project <SKILLS_DIR>/paper-slides-to-video python <SKILLS_DIR>/paper-slides-to-video/scripts/slides_to_video.py full "<PAPER_DIR>" --annotated-tex "<PAPER_DIR>/video/main_with_narration.tex"

full removes any stale narrated output before processing. It requires exact PNG/TXT/MP3 cardinality, nonempty narration and audio, probeable positive audio durations, and an assembled MP4 containing both video and audio streams. A missing narration or MP3 exits nonzero and cannot leave a narrated result.

Tool discovery

  • PDFTOPPM or POPPLER_DIR (directory containing pdftoppm), then PATH
  • FFMPEG, then PATH
  • FFPROBE, then PATH
  • EDGE_TTS_BIN, then PATH

Silence is never implicit. Programmatic callers may create a deliberately silent page only by calling encode_slide(..., require_audio=False). The public default is require_audio=True.

Outputs are written under <PAPER_DIR>/video/: video_frames/, <paper>_narrated.mp4, cover.png, frames_data.json, narrations.json, and video_meta.json.

Related skills

  • skill://batch-papers-single-omp-full-pipeline
  • skill://batch-slides-to-video
  • skill://blog-to-bilibili
  • skill://edge-tts-retry-video-driver
  • skill://index-tts-fallback

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

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.

Skills relacionados