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 :
slides-beamer/main.texcontient 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.- Le document utilise le modèle SUSTech 16:10 (
aspectratio=1610). slides-beamer/main.pdfn'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 :
upload_result.jsonvalide →uploaded- paysage non vide + portrait non vide + vignette +
video_meta.jsonvalide par schéma →upload_ready - paysage non vide →
video_done - diapositives compilées + TeX annoté non vide →
narrations_done - diapositives compilées →
slides_done - Markdown MinerU →
mineru_done - PDF source ou source TeX extraite (paper_src/ contenant .tex) →
pdf_downloaded - 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
pythonn'est pas dans le PATH, utilisezpy -3). - Les dépendances sont déclarées dans
pyproject.toml(actuellement aucune à l'exécution) ; installez le projet avecuv sync --project <SKILLS_DIR>/paper-to-bilibililors 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écutantbatch.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