# Paper Bilibili Uploader

> |

- **Type:** Skill
- **Install:** `agentstack add skill-yhbcode000-paper-share-skills-paper-bilibili-uploader`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [yhbcode000](https://agentstack.voostack.com/s/yhbcode000)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [yhbcode000](https://github.com/yhbcode000)
- **Source:** https://github.com/yhbcode000/paper-share-skills/tree/main/paper-bilibili-uploader
- **Website:** https://blog.yhbcode000.tech/paper-share-skills/

## Install

```sh
agentstack add skill-yhbcode000-paper-share-skills-paper-bilibili-uploader
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Paper Bilibili Uploader

Use the final packaged CLI:

```bash
python /paper-bilibili-uploader/scripts/upload.py "" --dry-run
```

(The script depends on `biliup`, `psutil`, and `requests` — see `pyproject.toml` in the skill dir; run `uv sync` there or install them in the active interpreter if imports fail.)

Remove `--dry-run` only after reviewing the resolved parts, metadata, cover, and publication time.

## Required normal-mode layout

```text
/video/
  *_narrated.mp4
  *_portrait_narrated.mp4
  cover.png
  video_meta.json
```

Both MP4s must be nonempty. The CLI deterministically sends every landscape video before every portrait video: P1 landscape, then P2 portrait. A missing or empty landscape, portrait, cover, or metadata file fails closed.

## Cover policy (poster ARTIFACT required; FIRST-SLIDE cover uploads)

实验室调研 (课题组) dirs — detected by a `poster_data.json` in the paper root
— still REQUIRE the paper-video-cover POSTER artifact:
`/poster/poster.png` must exist (missing it fails the upload closed
with a generation hint). The UPLOAD COVER, however, defaults to the deck's
FIRST SLIDE: explicit `cover_path` in `video_meta.json` wins, otherwise
`video/cover.png` (rendered by the video pipeline from the title page) is
used — the poster is NOT copied over the first-slide cover. ALL OTHER papers
(论文分享 etc.) keep the plain cover contract — explicit `cover_path` →
`video/cover.png` — and a `poster/poster.png` in the dir is IGNORED. Series
mode (`--series`) skips the lab/poster check entirely.

If a lab video was already uploaded with the wrong cover, fix it WITHOUT
re-uploading: `upload.py --edit --vid  --cover ` —
the member cover endpoint uploads the image and the edit submits the URL
verbatim (stripping the scheme makes the edit fail with `封面必须由页面进行上传，不支持外部链接`).
The video stays in review briefly after upload; the edit succeeds once
unlocked (state 0), otherwise poll and retry.

Generate the portrait artifact with the retained managed workflow at `~/.omp/agent/managed-skills/rednote-video-uploader/scripts/portrait_video.py` (adjust to your agent's managed-skills directory).

## Metadata contract

`video/video_meta.json` must use Bilibili's singular `tag` key:

```json
{"title":"【Venue Year】Paper — 中文亮点","tag":["论文分享","机器人"],"tid":231,"copyright":1,"desc":"【论文信息】...","cover_path":"cover.png"}
```

Validation requires a nonempty string `title`; a nonempty list of nonempty strings in `tag`; a positive integer `tid`; `copyright` exactly `1` or `2`; and a nonempty `source` when copyright is `2`. `cover_path` must resolve to a nonempty file. Do not rename `tag` to `tags`; `tags` belongs to Rednote metadata.

## Dry-run boundary

`--dry-run` performs input resolution, P1/P2 ordering, metadata patching, publication scheduling, validation, and complete command construction. It returns before any biliup subprocess can start and never writes an upload receipt.

## CST scheduling

- 00:00–22:59 publishes immediately unless metadata or `--dtime` supplies a delayed time.
- 23:00–23:59 schedules 07:00 the next day when no delayed time is already supplied.
- Explicit `--dtime` always wins; it accepts `YYYY-MM-DD HH:MM` in CST or a ten-digit Unix timestamp.

## Upload receipt

A real upload succeeds only when biliup exits zero and returns a BV identifier. The CLI writes `video/upload_result.json` exactly with `status`, `bv`, `url`, and ISO-8601 `uploaded_at` fields. A zero exit without a BV identifier fails and writes no receipt.

## Series mode

Place ordered P1–PN landscapes, `cover.png`, and `video_meta.json` in `/bilibili-series/video/`, then add `--series`. Series mode preserves filename order and intentionally does not require a portrait part.

## Login and diagnostics

Use the same CLI with `--login`, `--diagnose`, or `--kill-all`. Cookies live at `%USERPROFILE%/.bilibili/cookies.json`. Diagnostics use psutil process/open-file inspection, do not depend on WMIC or fsutil, and tolerate an unset `LOCALAPPDATA`.

## Related 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

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [yhbcode000](https://github.com/yhbcode000)
- **Source:** [yhbcode000/paper-share-skills](https://github.com/yhbcode000/paper-share-skills)
- **License:** Apache-2.0
- **Homepage:** https://blog.yhbcode000.tech/paper-share-skills/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** yes
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-yhbcode000-paper-share-skills-paper-bilibili-uploader
- Seller: https://agentstack.voostack.com/s/yhbcode000
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
