¿Qué hace Paper a Bilibili?
Esta es la identidad única de orquestación del pipeline completo. Compone los siguientes paquetes promovidos más el flujo de trabajo gestionado de RedNote:
paper-to-beamer: contenido del artículo y de MinerU convertido a diapositivas SUSTech Beamer en formato 16:9.paper-video-cover: generación opcional de póster de referencia; la portada normal del video sigue siendo el artefacto generado como portada.paper-slides-to-video: renderizado físico de páginas, extracción de narración, TTS, ensamblaje en horizontal, portada y metadatos de Bilibili.rednote-video-uploader(gestionado): generación obligatoria de video vertical.paper-bilibili-uploader: validación con cierre ante fallo, simulación (dry-run), subida y recibo duradero.
Las salidas se ubican en $PP_ROOT/论文分享/<VENUE AÑO - CORTO>/ con las carpetas md_output/, slides-beamer/ y video/.
Modos y fases
slides: de artículo a diapositivas compiladas
Cuando una entrada tiene un arxiv_id no vacío (o el usuario proporcionó un enlace de arXiv) y no existe fuente en disco (sin PDF raíz, sin paper_src/ con .tex), primero descargue la fuente TeX:
python \
"<SKILLS_DIR>/paper-download-arxiv-paper-source/scripts/download_source.py" \
"<arxiv_id>" --output "<paper_dir>"
El descargador crea <paper_dir>/arXiv-<id>.tar.gz + <paper_dir>/paper_src/; luego siga skill://paper-to-beamer desde la Fase 1 en adelante (el paso de mover de la Fase 1 se omite porque el directorio del artículo ya existe). Para salida PDF_ONLY, copie el PDF a la raíz del directorio del artículo (la puerta pdf_downloaded requiere un PDF raíz).
Siga skill://paper-to-beamer para la autoría de contenido. Puertas obligatorias antes de continuar:
slides-beamer/main.texcontiene la narrativa específica del artículo, desde información y motivación hasta métodos, experimentos, limitaciones, conclusiones, referencias, preguntas y respuestas, y de 3 a 8 diapositivas de apéndice útiles.- El documento usa la plantilla SUSTech 16:9 (
aspectratio=169). slides-beamer/main.pdfno está vacío, no tiene controles indefinidos ni desbordamientos graves.
El CLI por lotes solo escanea y persiste evidencia en disco para esta fase de autoría del agente; no fabrica diapositivas.
Puerta de autoría de narración
Copie el TeX compilado a video/main_with_narration.tex y agregue exactamente una entrada % NARRATION: no vacía por página física del PDF. La narración es chino simplificado pulido con términos técnicos en inglés intercalados. Expande el argumento técnico en lugar de leer viñetas, evita referencias puramente visuales como “本页” o “如图所示”, y también cubre las páginas del apéndice.
La transición de slides_done a narrations_done ocurre solo cuando existen tanto las diapositivas compiladas como el TeX anotado no vacío.
video: artefactos narrados en horizontal y vertical
python <SKILLS_DIR>/paper-to-bilibili/scripts/batch.py video "<PAPERS_JSON>"
Para cada artículo con narrations_done, el orquestador llama al comando full de la habilidad hermana paper-slides-to-video. Después del éxito del hijo, vuelve a escanear y persiste atómicamente video_done. Luego llama al rednote-video-uploader/scripts/portrait_video.py gestionado, vuelve a escanear, valida la portada y los metadatos de Bilibili, y persiste atómicamente upload_ready. Las fallas de los hijos se propagan y nunca avanzan el estado.
Las puertas de calidad son: cardinalidad exacta de fotogramas/texto/MP3, narración y audio no vacíos para cada página física, un MP4 horizontal no vacío, un MP4 vertical no vacío, una portada no vacía y metadatos de Bilibili con esquema válido.
bilibili: validar o subir
Siempre revise primero una simulación (dry-run):
python <SKILLS_DIR>/paper-to-bilibili/scripts/batch.py bilibili "<PAPERS_JSON>" --dry-run
El dry-run delega en el cargador promovido y debe dejar upload_ready sin cambios. Elimine --dry-run solo después de la revisión. No hay tiempo de espera de subida predeterminado; un operador puede optar por --upload-timeout SEGUNDOS.
Las subidas normales requieren primero el video horizontal (P1) y luego el vertical (P2). Los metadatos usan tag singular, un tid positivo, campos copyright/source válidos, una descripción estructurada y una portada no vacía. Un artículo se marca como uploaded solo cuando video/upload_result.json es válido y contiene una URL BV coincidente más una marca de tiempo ISO-8601.
Contrato de estado
batch.py vuelve a escanear el disco con esta precedencia exacta:
upload_result.jsonválido →uploaded- horizontal no vacío + vertical no vacío + portada +
video_meta.jsoncon esquema válido →upload_ready - horizontal no vacío →
video_done - diapositivas compiladas + TeX anotado no vacío →
narrations_done - diapositivas compiladas →
slides_done - MinerU Markdown →
mineru_done - PDF fuente o fuente TeX extraída (
paper_src/con.tex) →pdf_downloaded - de lo contrario →
pending
Cada comando hijo exitoso va seguido de un nuevo escaneo y reemplazo atómico del JSON de entrada. Los cambios de estado se imprimen como STATE <paper>: <old> -> <new>. El dry-run valida y delega pero nunca inventa un nuevo estado. Un hijo fallido preserva el último estado fundamentado y su código de salida se propaga.
Entrada por lotes
papers.json es un arreglo de objetos con un dir_path absoluto no vacío; pueden acompañarlo dir_name, arxiv_id, pdf_path y campos descriptivos. El orquestador registra _status en cada objeto.
Prerrequisitos
- Python 3.10+ (si
pythonno está en PATH, usepy -3). - Las dependencias están declaradas en
pyproject.toml(actualmente ninguna en tiempo de ejecución); instale el proyecto conuv sync --project <SKILLS_DIR>/paper-to-bilibilial agregar alguna. <SKILLS_DIR>es el directorio que contiene las carpetas de habilidades instaladas (por ejemplo,~/.claude/skills,~/.codex/skills,.omp/skills); las habilidades hermanas (paper-slides-to-video,paper-bilibili-uploader,paper-download-arxiv-paper-source) deben estar instaladas junto a esta para que la resolución de hermanas se mantenga local al proyecto y determinista.PAPER_PYTHON(opcional): intérprete usado para lanzar CLIs hermanos; por defecto es el intérprete que ejecutabatch.py.
Habilidades relacionadas
- 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