Was macht Paper Bilibili Uploader?
Nutze das finale gepackte CLI:
python <SKILLS_DIR>/paper-bilibili-uploader/scripts/upload.py "<PAPER_DIR>" --dry-run
(Das Skript hängt von biliup, psutil und requests ab — siehe pyproject.toml im Skill-Verzeichnis; führe dort uv sync aus oder installiere sie im aktiven Interpreter, falls Importe fehlschlagen.)
Entferne --dry-run erst, nachdem du die aufgelösten Teile, Metadaten, Cover und Veröffentlichungszeit überprüft hast.
Erforderliches Normalmodus-Layout
<PAPER_DIR>/video/
*_narrated.mp4
*_portrait_narrated.mp4
cover.png
video_meta.json
Beide MP4s müssen nicht leer sein. Das CLI sendet deterministisch jedes Querformat-Video vor jedem Hochformat-Video: P1 Querformat, dann P2 Hochformat. Ein fehlendes oder leeres Querformat, Hochformat, Cover oder eine fehlende Metadatendatei führt zu einem Abbruch.
Cover-Richtlinie (POSTER-ARTEFAKT erforderlich; ERSTE-FOLIE-Cover-Uploads)
Verzeichnisse für 实验室调研 (课题组) — erkannt durch eine poster_data.json im Paper-Stammverzeichnis — erfordern weiterhin das Paper-Video-Cover-POSTER-Artefakt:
<PAPER_DIR>/poster/poster.png muss existieren (fehlt es, wird der Upload mit einem Generierungshinweis abgebrochen). Das UPLOAD-COVER verwendet jedoch standardmäßig die ERSTE FOLIE des Decks: Ein expliziter cover_path in video_meta.json hat Vorrang, ansonsten wird video/cover.png (vom Video-Pipeline aus der Titelseite gerendert) verwendet — das Poster wird NICHT über das Cover der ersten Folie kopiert. ALLE ANDEREN Paper (论文分享 etc.) behalten den einfachen Cover-Vertrag — expliziter cover_path → video/cover.png — und ein poster/poster.png im Verzeichnis wird IGNORIERT. Der Serien-Modus (--series) überspringt die Labor-/Poster-Prüfung vollständig.
Falls ein Labor-Video bereits mit dem falschen Cover hochgeladen wurde, korrigiere es OHNE erneuten Upload: upload.py --edit --vid <BV> --cover <video/cover.png> — der Member-Cover-Endpunkt lädt das Bild hoch und die Bearbeitung sendet die URL wörtlich (das Entfernen des Schemas führt zum Fehler 封面必须由页面进行上传,不支持外部链接). Das Video bleibt kurz nach dem Upload in der Überprüfung; die Bearbeitung ist erfolgreich, sobald es entsperrt ist (Status 0), ansonsten Polling und Wiederholung.
Generiere das Hochformat-Artefakt mit dem beibehaltenen verwalteten Workflow unter ~/.omp/agent/managed-skills/rednote-video-uploader/scripts/portrait_video.py (passe an das managed-skills-Verzeichnis deines Agenten an).
Metadaten-Vertrag
video/video_meta.json muss Bilibilis singulären tag-Schlüssel verwenden:
{"title":"【Venue Year】Paper — 中文亮点","tag":["论文分享","机器人"],"tid":231,"copyright":1,"desc":"【论文信息】...","cover_path":"cover.png"}
Die Validierung erfordert einen nicht leeren String title; eine nicht leere Liste von nicht leeren Strings in tag; eine positive ganze Zahl tid; copyright genau 1 oder 2; und einen nicht leeren source, wenn copyright 2 ist. cover_path muss auf eine nicht leere Datei verweisen. Benenne tag nicht in tags um; tags gehört zu Rednote-Metadaten.
Trockenlauf-Grenze
--dry-run führt die Eingabeauflösung, P1/P2-Reihenfolge, Metadaten-Korrektur, Veröffentlichungsplanung, Validierung und vollständige Befehlskonstruktion durch. Es kehrt zurück, bevor ein biliup-Unterprozess starten kann, und schreibt niemals eine Upload-Quittung.
CST-Planung
- 00:00–22:59 veröffentlicht sofort, es sei denn, die Metadaten oder
--dtimeliefern eine verzögerte Zeit. - 23:00–23:59 plant für den nächsten Tag um 07:00, wenn noch keine verzögerte Zeit angegeben wurde.
- Explizites
--dtimehat immer Vorrang; es akzeptiertYYYY-MM-DD HH:MMin CST oder einen zehnstelligen Unix-Zeitstempel.
Upload-Quittung
Ein echter Upload ist nur erfolgreich, wenn biliup mit dem Exit-Code 0 beendet wird und eine BV-Kennung zurückgibt. Das CLI schreibt video/upload_result.json exakt mit den Feldern status, bv, url und ISO-8601 uploaded_at. Ein Exit-Code 0 ohne BV-Kennung schlägt fehl und schreibt keine Quittung.
Serien-Modus
Lege geordnete P1–PN-Querformat-Videos, cover.png und video_meta.json in <PAPER_DIR>/bilibili-series/video/ ab und füge dann --series hinzu. Der Serien-Modus bewahrt die Dateinamen-Reihenfolge und erfordert bewusst keinen Hochformat-Teil.
Anmeldung und Diagnose
Verwende dasselbe CLI mit --login, --diagnose oder --kill-all. Cookies befinden sich unter %USERPROFILE%/.bilibili/cookies.json. Die Diagnose verwendet psutil-Prozess-/offene-Datei-Inspektion, hängt nicht von WMIC oder fsutil ab und toleriert ein nicht gesetztes LOCALAPPDATA.
Verwandte Skills
- 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