npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@panda-video-automation/pva

v0.1.5

Published

Playwright-based video upload automation for Bilibili, Douyin, Kuaishou, Weixin Video, and YouTube

Readme

Panda Video Automation Publisher

跨平台视频上传自动化引擎

"One CLI to publish everywhere."

npm version License TypeScript Playwright

🐼 Panda Video Generator 的发布模块,独立为 npm 包,可单独使用或集成到自有流水线。


✨ 核心特性


❇️ 功能演示

《已开源!视频号多平台发布工具 CLI》


🚀 快速开始

安装

npm install -g @panda-video-automation/pva

环境要求: Node.js >= 20.9.0,安装后 pva 命令即可全局使用。

1. 登录(每个平台只需一次)

pva bilibili login

打开浏览器,手动完成登录后自动检测并持久化 Session。后续上传无需重复登录。

Session 有效期因平台而异:大部分平台可保持较长时间,但微信视频号需要每日重新登录。

2. 上传视频

pva youtube upload --video ./demo.mp4 --title "我的视频"

📖 CLI 参考

pva <platform> <action> [options]

平台列表

| 平台 | 标识符 | 别名 | |------|--------|------| | Bilibili | bilibili | | | 抖音 | douyin | | | 快手 | kuaishou | | | 微信视频号 | weixin | weixinvideowechat | | YouTube | youtube | yt |

操作

| 操作 | 说明 | |------|------| | login | 登录并保存浏览器 Session | | upload | 上传视频及元数据 |

上传参数

参数可通过 CLI 标志或环境变量传入。

| 参数 | 环境变量 | 说明 | |------|---------|------| | --video <path> | VIDEO_PATH | 视频文件路径 (必填) | | --title <text> | VIDEO_TITLE | 视频标题 (必填) | | --desc <text> | VIDEO_DESC | 视频描述 | | --tags <list> | VIDEO_TAGS | 逗号分隔的标签 | | --cover <path> | VIDEO_COVER | 封面图片路径 | | --privacy <mode> | VIDEO_PRIVACY | YouTube:publicunlisted(默认)、private | | --headless | PVA_HEADLESS=1 | 无头模式运行(默认有头) |

示例

# 登录
pva douyin login

# CLI 参数上传
pva bilibili upload \
  --video ./video.mp4 \
  --title "My Title" \
  --desc "Description" \
  --tags tag1,tag2

# 环境变量上传
export VIDEO_PATH=./video.mp4
export VIDEO_TITLE="My Video"
pva youtube upload

# 无头模式
pva kuaishou upload --video ./demo.mp4 --title "Test" --headless

# 批量发布
pva bilibili upload && pva douyin upload && pva kuaishou upload

🧩 集成到 Panda Video Generator

本包是 Panda Video Generator 发布模块的独立封装。在完整的视频生产流水线中,典型的工作流为:

网页抓取 → LLM 文稿优化 → Edge TTS + 字幕 → Remotion 渲染 → 本包发布

渲染完成后,直接调用 pva 将成片分发到各平台。


📋 平台限制

| 平台 | 标题长度 | 描述字段 | 注意事项 | |------|---------|---------|---------| | 抖音 | 30 字 | 支持 | 发布前需勾选"内容为个人观点或见解" | | 快手 | 标题+描述合并 | 合并到标题 | 使用 contenteditable 单一字段 | | Bilibili | 无严格限制 | 支持 | 支持 AI 生成内容标注 | | 微信视频号 | 无严格限制 | 支持 | 使用"昨日数据"文本判断登录状态 | | YouTube | 无严格限制 | 支持 | 支持隐私级别:public / unlisted / private |


🔧 本地开发

# 安装依赖
pnpm install

# 构建 TypeScript
pnpm build

# 登录快捷命令
pnpm login:bilibili    pnpm login:douyin    pnpm login:kuaishou
pnpm login:weixin      pnpm login:youtube

# 上传快捷命令
pnpm upload:bilibili   pnpm upload:douyin   pnpm upload:kuaishou
pnpm upload:weixin     pnpm upload:youtube

# 全平台发布
pnpm upload:all

⚙️ 实现原理

基于 Playwright Test 的浏览器自动化框架:

  1. 登录流程 — 打开目标平台的创作者后台,等待用户手动登录,检测到成功状态后保存浏览器 Storage State 到 playwright/.auth/
  2. 上传流程 — 恢复已保存的 Session,导航到上传页面,自动定位表单控件并填充视频元数据,提交发布
  3. Spec 文件 位于 automations/ 目录,按平台分目录组织
  4. TypeScript 源码编译为 JS 后发布到 npm,产物在 dist/ 目录

🤝 贡献

欢迎提交 Issue 和 Pull Request!


📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。


👤 作者

szhshp


⚠️ 免责声明

本项目按「原样」提供。你在使用浏览器自动化上传功能时,须自行确保符合适用法律法规、各平台服务条款及 robots 规则;请勿将本工具用于未经授权的抓取、侵权转载或垃圾信息传播。本仓库与第三方平台无任何隶属或合作关系