Paper Bilibili Uploader は何をしますか?
最終的なパッケージ化されたCLIを使用します:
python <SKILLS_DIR>/paper-bilibili-uploader/scripts/upload.py "<PAPER_DIR>" --dry-run
(このスクリプトは biliup、psutil、requests に依存しています — スキルディレクトリ内の pyproject.toml を参照してください;インポートに失敗した場合は、そのディレクトリで uv sync を実行するか、アクティブなインタプリタにインストールしてください。)
解決されたパーツ、メタデータ、カバー、公開時間を確認した後でのみ --dry-run を削除してください。
必須の通常モードのレイアウト
<PAPER_DIR>/video/
*_narrated.mp4
*_portrait_narrated.mp4
cover.png
video_meta.json
両方のMP4ファイルは空であってはなりません。CLIは常にすべての横向きビデオを最初に、すべての縦向きビデオを後に送信します:P1(横向き)、次にP2(縦向き)。横向き、縦向き、カバー、またはメタデータファイルがないか空の場合、アップロードは失敗し終了します。
カバーポリシー(ポスターARTIFACT必須;最初のスライドのカバーアップロード)
研究室調査(课题组)ディレクトリ — 論文ルートに poster_data.json が存在することで検出 — では、paper-video-cover POSTERアーティファクトが必須です:
<PAPER_DIR>/poster/poster.png が存在する必要があります(存在しない場合、生成ヒントとともにアップロードは失敗します)。ただし、アップロードされるカバーは、デフォルトでデッキの最初のスライドになります:video_meta.json の明示的な cover_path が優先され、それ以外の場合は video/cover.png(ビデオパイプラインがタイトルページからレンダリング)が使用されます — ポスターは最初のスライドのカバーに上書きコピーされません。その他すべての論文(论文分享 など)は通常のカバー契約を維持します — 明示的な cover_path → video/cover.png — そして、ディレクトリ内の poster/poster.png は無視されます。シリーズモード(--series)では、ラボ/ポスターのチェックは完全にスキップされます。
研究室のビデオが誤ったカバーで既にアップロードされている場合、再アップロードせずに修正します:upload.py --edit --vid <BV> --cover <video/cover.png> — メンバーカバーエンドポイントが画像をアップロードし、編集がURLをそのまま送信します(スキームを削除すると、編集は「封面必须由页面进行上传,不支持外部链接」で失敗します)。アップロード後、ビデオはすぐにレビュー中になります;編集はアンロックされた後(ステート0)に成功し、それ以外の場合はポーリングとリトライを行います。
縦向きアーティファクトは、保持されている管理ワークフロー ~/.omp/agent/managed-skills/rednote-video-uploader/scripts/portrait_video.py を使用して生成します(お使いのエージェントのmanaged-skillsディレクトリに調整してください)。
メタデータ契約
video/video_meta.json はBilibiliの単数形 tag キーを使用する必要があります:
{"title":"【会場年度】论文 — 中文亮点","tag":["论文分享","机器人"],"tid":231,"copyright":1,"desc":"【論文情報】...","cover_path":"cover.png"}
バリデーションでは、title は空でない文字列である必要があります;tag は空でない文字列の空でないリストである必要があります;tid は正の整数である必要があります;copyright は正確に 1 または 2 である必要があります;そして copyright が 2 の場合は source が空でない必要があります。cover_path は空でないファイルに解決される必要があります。tag を tags にリネームしないでください;tags はRednoteメタデータ用です。
ドライラン境界
--dry-run は、入力解決、P1/P2順序付け、メタデータパッチ、公開スケジューリング、バリデーション、および完全なコマンド構築を実行します。biliupサブプロセスが開始される前に戻り、アップロードレシートは決して書き込みません。
CSTスケジューリング
- 00:00–22:59 は、メタデータまたは
--dtimeで遅延時間が指定されていない限り、即座に公開します。 - 23:00–23:59 は、既に遅延時間が指定されていない場合、翌日の07:00にスケジュールします。
- 明示的な
--dtimeは常に優先されます;CSTでYYYY-MM-DD HH:MM形式または10桁のUnixタイムスタンプを受け付けます。
アップロードレシート
実際のアップロードは、biliupが終了コード0で終了し、BV識別子を返した場合にのみ成功します。CLIは、status、bv、url、ISO-8601形式の uploaded_at フィールドを含む video/upload_result.json を正確に書き込みます。終了コード0でBV識別子がない場合は失敗し、レシートは書き込まれません。
シリーズモード
順序付けられたP1–PN横向きビデオ、cover.png、そして video_meta.json を <PAPER_DIR>/bilibili-series/video/ に配置し、--series を追加します。シリーズモードはファイル名の順序を保持し、縦向きパーツは意図的に必要としません。
ログインと診断
同じCLIを --login、--diagnose、または --kill-all と共に使用します。Cookieは %USERPROFILE%/.bilibili/cookies.json に保存されます。診断はpsutilプロセス/オープンファイル検査を使用し、WMICやfsutilに依存せず、LOCALAPPDATA が設定されていない場合でも動作します。
関連スキル
- 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