一键导入
pva-publisher
Cross-platform video upload (login only when explicitly requested) — Bilibili, Douyin, Kuaishou, Weixin Video, YouTube
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Cross-platform video upload (login only when explicitly requested) — Bilibili, Douyin, Kuaishou, Weixin Video, YouTube
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
[ENTRY POINT] Full NotebookLM pipeline — research → generate video → download → watermark → trim → generate meta files → cover → prepare upload → publish. Single entry point for all end-to-end video tasks.
Research a topic with NotebookLM — create notebook, run deep research, auto-import sources, and summarize. Checks notebooklm installation, login, and skill installation first.
Create a NotebookLM notebook for a topic and generate a video overview in Simplified Chinese. Delegates installation and login checks to notebooklm-research skill.
Overview of the Panda Video Automation pipeline — from NotebookLM research to video upload. Run this skill to see the full workflow.
Download a NotebookLM video artifact to /input/video.mp4 and create a title.json with its title.
Generate minimalist academic-style cover images via Python/Pillow — black (#000000) solid background, centered bold white title (120px), thin subtitle (76px) below. ONLY text on black — no graphics, icons, dates, or logos. TRIGGER: activates when user mentions "simple cover", "minimalist cover", "academic cover", or "cover" without further qualifiers. For "detailed cover", "complex cover", "report-style cover", or "detailed cover"/"complex cover", do NOT use this skill — instead generate a detailed infographic with --style professional or --style scientific.
| name | pva-publisher |
| description | Cross-platform video upload (login only when explicitly requested) — Bilibili, Douyin, Kuaishou, Weixin Video, YouTube |
Cross-platform video upload using the pva CLI tool.
| Platform | Alias | Login | Upload |
|---|---|---|---|
| Bilibili | bilibili | pva bilibili login | pva bilibili upload |
| Douyin | douyin | pva douyin login | pva douyin upload |
| Kuaishou | kuaishou | pva kuaishou login | pva kuaishou upload |
| Weixin Video | weixin / wechat / weixinvideo | pva weixin login | pva weixin upload |
| YouTube | youtube / yt | pva youtube login | pva youtube upload |
--video <path> — Path to video file (or VIDEO_PATH env)--title <text> — Video title (or VIDEO_TITLE env)--desc <text> — Video description (or VIDEO_DESC env). First line = headline title, at most 3 topics, each line ≤ 30 chars.--tags <list> — Comma-separated tags, max 3. Most platforms restrict tags to 3. Pick the most relevant ones. (or VIDEO_TAGS env)--cover <path> — Cover image path (or VIDEO_COVER env)--privacy <mode> — YouTube only: public|unlisted|private (default: unlisted)--headless — Run browser in headless mode (default: headed)Login and upload tasks can run multiple platforms concurrently using shell backgrounding:
pva douyin login &
pva kuaishou login &
wait
cd /Users/Zill/Documents/Dev/Github/panda-video-automation-notebooklm
V="$(pwd)/input/video.mp4" && C="$(pwd)/input/cover.png" \
&& T="$(jq -r .title input/title.json)" \
&& G="$(jq -r '.tags | join(",")' input/tags.json)" \
&& D="$(cat input/description.md)"
npx pva bilibili upload --video "$V" --title "$T" --desc "$D" --tags "$G" --cover "$C" &
npx pva douyin upload --video "$V" --title "$T" --desc "$D" --tags "$G" --cover "$C" &
npx pva kuaishou upload --video "$V" --title "$T" --desc "$D" --tags "$G" --cover "$C" &
npx pva weixin upload --video "$V" --title "$T" --desc "$D" --tags "$G" --cover "$C" &
wait
✅ 这条命令已验证可用。直接用
jq读文件(不用管道),npx pva确保能找到命令,四平台后台并行跑,wait等全部完成。
pva douyin upload --video ./video.mp4 --title "Title" &
pva kuaishou upload --video ./video.mp4 --title "Title" &
wait
--headless for uploads.pva process launches its own Playwright browser instance — no conflict between platforms.~/.local/share/mise/installs/node/22/lib/node_modules/@panda-video-automation/pva/playwright/.auth/.pva --help for full CLI reference.pva command not foundIf running in a local install (not global), the pva binary is at node_modules/.bin/pva. Do NOT rely on pva being in PATH — always use the full relative path:
node_modules/.bin/pva bilibili upload ...
# NOT: pva bilibili upload
You can also use npx:
npx --no-install pva bilibili upload ...
The pva CLI internally runs Playwright tests with cwd: PROJECT_ROOT (the npm package directory, e.g. node_modules/@panda-video-automation/pva/), NOT the project root. Relative paths like input/video.mp4 or ./input/video.mp4 will fail because Playwright checks existsSync() from the wrong CWD.
Always use absolute paths for --video and --cover:
# ❌ Wrong — "Video file not found"
pva bilibili upload --video input/video.mp4 ...
# ✅ Correct — use absolute path
pva bilibili upload --video /path/to/project/input/video.mp4 ...
# ✅ Best — resolve in a bash variable
VIDEO="$(pwd)/input/video.mp4"
COVER="$(pwd)/input/cover.png"
pva bilibili upload --video "$VIDEO" --cover "$COVER" ...
The --desc argument supports multi-line text, but shell escaping can be tricky with Chinese characters and newlines. Prefer reading from file into a variable:
DESC=$(cat input/description.md)
pva bilibili upload --desc "$DESC" ...
--check / login verification steps entirely by default.& + wait).input/title.json for the title, use input/*.mp4 for the video path.