Communitygithub.com

Paper Bilibili Uploader

Bilibiliへの論文ナレーションビデオの検証とアップロードを行います。横向き優先・縦向き順、シリーズアップロード、CSTスケジューリング、診断、ドライランバリデーション、アップロードレシート生成をサポートします。

Paper Bilibili Uploader とは?

Paper Bilibili Uploaderは、研究論文のナレーションビデオをBilibiliにアップロードするためのCLIツールです。biliup、psutil、requestsに依存し、スキルディレクトリ内で`uv sync`を実行するか、アクティブなインタプリタにインストールして使用します。このスキルは、横向きビデオ(P1)を最初に、縦向きビデオ(P2)を後に送信する順序を強制し、カバー画像やメタデータファイルの存在を検証します。また、CST(中国標準時)に基づくスケジューリング機能を備え、深夜(23:00-23:59)のアップロードは翌朝7:00に自動延期されます。ドライランモードでは実際のアップロードを行わずに検証のみを実行し、アップロード成功時にはJSON形式のレシートを生成します。さらに、シリーズモード、ログイン・診断機能、カバー編集機能(再アップロード不要)を提供し、論文カバーアートファクト(poster)が必要な研究室向けの特別なカバーポリシーも実装されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-bilibili-uploader

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

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

Orchestrate a paper PDF through MinerU, SUSTech Beamer slides, complete Chinese narration, landscape and portrait video, metadata gates, and Bilibili upload. Supports single-paper and batch slides, video, or bilibili phases. Trigger on full paper-to-Bilibili requests, PDF-to-video publication, and batch paper publishing.

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.

関連スキル