Communitygithub.com

Peytontalismanic424/paper-share-skills

Orchestre un PDF de recherche à travers MinerU, des diapositives SUSTech Beamer, une narration complète en chinois, des vidéos paysage et portrait, des contrôles de métadonnées et un téléversement sur Bilibili. Prend en charge les phases de diapositives, vidéo ou bilibili, pour un seul article ou par lots. Déclencheur sur les demandes de bout en bout d'article vers Bilibili, de publication PDF-vers-vidéo et de publication par lots d'articles.

Qu'est-ce que paper-share-skills ?

Cette compétence agit comme un orchestrateur complet pour la pipeline de publication d'articles de recherche sur Bilibili. Elle intègre plusieurs compétences spécialisées : **paper-to-beamer** pour générer des diapositives Beamer SUSTech au format 16:10 à partir de contenu PDF et MinerU, **paper-slides-to-video** pour créer une vidéo paysage avec narration TTS, **rednote-video-uploader** pour produire une vidéo portrait, et **paper-bilibili-uploader** pour le téléversement avec validation. L'utilisateur peut déclencher des modes spécifiques (slides, video, bilibili) pour un seul article ou en mode batch via un fichier JSON. Le système gère strictement les états de progression (pdf_downloaded → mineru_done → slides_done → narrations_done → video_done → upload_ready → uploaded) avec des contrôles qualité précis : vérification de la présence de fichiers, cardinalité des images/texte/audio, validité des métadonnées, et exécution à sec avant téléversement. Les chemins de sortie suivent une structure commune sous `$PP_ROOT/论文分享/<VENUE YEAR - SHORT>/`. Cette compétence est idéale pour les utilisateurs qui souhaitent automatiser la création et la publication de présentations techniques en chinois sur Bilibili avec un contrôle rigoureux de la qualité et de l'état.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Paper to Bilibili

C'est l'identité d'orchestration de la pipeline complète. Elle compose ces packages promus ainsi que le flux de travail Rednote géré conservé :

  • paper-to-beamer : contenu de l'article et de MinerU vers des diapositives SUSTech Beamer compilées au format 16:10.
  • paper-video-cover : génération optionnelle de vignette de référence ; la vignette vidéo normale reste l'artefact de couverture généré.
  • paper-slides-to-video : rendu physique des pages, extraction de la narration, TTS, assemblage paysage, vignette et métadonnées Bilibili.
  • rednote-video-uploader (géré) : génération obligatoire de la vidéo portrait.
  • paper-bilibili-uploader : validation à sécurité intégrée, exécution à sec, téléversement et reçu durable.

Les sorties utilisent $PP_ROOT/论文分享/<VENUE YEAR - SHORT>/ avec md_output/, slides-beamer/ et video/.

Modes et phases

slides : de l'article aux diapositives compilées

Lorsqu'une entrée a un arxiv_id non vide (ou que l'utilisateur a fourni un lien arXiv) et qu'aucune source n'existe sur le disque (pas de PDF racine, pas de paper_src/ avec .tex), téléchargez d'abord la source TeX :

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

Le téléchargeur crée <paper_dir>/arXiv-<id>.tar.gz + <paper_dir>/paper_src/ ; puis suivez skill://paper-to-beamer à partir de la Phase 1 (l'étape de déplacement de la Phase 1 est ignorée car le répertoire de l'article existe déjà). Pour la sortie PDF_ONLY, copiez le PDF à la racine du répertoire de l'article (la porte pdf_downloaded nécessite un PDF racine).

Suivez skill://paper-to-beamer pour la rédaction du contenu. Portes obligatoires avant de continuer :

  1. slides-beamer/main.tex contient le récit spécifique à l'article, des informations et motivation jusqu'aux méthodes, expériences, limites, enseignements, références, Q&A et 3 à 8 diapositives d'annexes utiles.
  2. Le document utilise le modèle SUSTech 16:10 (aspectratio=1610).
  3. slides-beamer/main.pdf n'est pas vide, sans contrôles non définis ni débordements sévères.

Le CLI batch ne scanne et ne persiste que les preuves disque pour cette phase rédigée par l'agent ; il ne fabrique pas de diapositives.

Porte de rédaction de la narration

Copiez le TeX compilé vers video/main_with_narration.tex et ajoutez exactement une entrée % NARRATION: non vide par page PDF physique. La narration est un chinois simplifié soigné avec des termes techniques anglais incorporés. Elle développe l'argumentation technique plutôt que de lire les puces, évite les références visuelles comme « 本页 » ou « 如图所示 », et couvre également les pages d'annexes.

La transition de slides_done à narrations_done se produit uniquement lorsque les diapositives compilées et le TeX annoté non vide existent.

video : artefacts paysage et portrait narrés

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

Pour chaque article narrations_done, l'orchestrateur appelle la commande full de la compétence sœur paper-slides-to-video. Après le succès de l'enfant, il rescannise et persiste atomiquement video_done. Il appelle ensuite le script géré rednote-video-uploader/scripts/portrait_video.py, rescannise, valide la vignette et les métadonnées Bilibili, et persiste atomiquement upload_ready. Les échecs des enfants se propagent et ne font jamais avancer l'état.

Les portes de qualité sont : cardinalité exacte des images/texte/MP3, narration et audio non vides pour chaque page physique, MP4 paysage non vide, MP4 portrait non vide, vignette non vide et métadonnées Bilibili valides par schéma.

bilibili : valider ou téléverser

Toujours d'abord examiner une exécution à sec :

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

L'exécution à sec délègue au téléverseur promu et doit laisser upload_ready inchangé. Supprimez --dry-run uniquement après examen. Il n'y a pas de délai d'attente de téléversement par défaut ; un opérateur peut opter pour --upload-timeout SECONDS.

Les téléversements normaux nécessitent d'abord le paysage P1 puis le portrait P2. Les métadonnées utilisent un tag singulier, un tid positif, des champs copyright/source valides, une description structurée et une vignette non vide. Un article devient uploaded uniquement lorsque video/upload_result.json est valide et contient une URL BV correspondante ainsi qu'un horodatage ISO-8601.

Contrat d'état

batch.py rescannise le disque avec cette précédence exacte :

  1. upload_result.json valide → uploaded
  2. paysage non vide + portrait non vide + vignette + video_meta.json valide par schéma → upload_ready
  3. paysage non vide → video_done
  4. diapositives compilées + TeX annoté non vide → narrations_done
  5. diapositives compilées → slides_done
  6. Markdown MinerU → mineru_done
  7. PDF source ou source TeX extraite (paper_src/ contenant .tex) → pdf_downloaded
  8. sinon → pending

Chaque commande enfant réussie est suivie d'un rescannage et d'un remplacement atomique du JSON d'entrée. Les changements d'état sont imprimés comme STATE <paper>: <old> -> <new>. L'exécution à sec valide et délègue mais n'invente jamais un nouvel état. Un enfant échoué préserve le dernier état ancré et son code de sortie est propagé.

Entrée batch

papers.json est un tableau d'objets avec un dir_path absolu non vide ; dir_name, arxiv_id, pdf_path et des champs descriptifs peuvent l'accompagner. L'orchestrateur enregistre _status dans chaque objet.

Prérequis

  • Python 3.10+ (si python n'est pas dans le PATH, utilisez py -3).
  • Les dépendances sont déclarées dans pyproject.toml (actuellement aucune à l'exécution) ; installez le projet avec uv sync --project <SKILLS_DIR>/paper-to-bilibili lors de l'ajout.
  • <SKILLS_DIR> est le répertoire contenant les dossiers de compétences installés (par exemple ~/.claude/skills, ~/.codex/skills, .omp/skills) ; les compétences sœurs (paper-slides-to-video, paper-bilibili-uploader, paper-download-arxiv-paper-source) doivent être installées à côté de celle-ci pour que la résolution entre sœurs reste locale au projet et déterministe.
  • PAPER_PYTHON (optionnel) : interpréteur utilisé pour lancer les CLI sœurs ; par défaut, l'interpréteur exécutant batch.py.

Compétences liées

  • 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.

Skills associés