使用命令行工具 biliup(Python 版官方 CLI,非 biliup-rs)向 B 站(bilibili)投稿视频。触发场景:用户说"投稿 B 站"、"上传到 B 站"、"发 B 站"、"bilibili 投稿"、"B 站发视频"、"上传视频到 bilibili"等相关关键字。功能:(1) 自动检测并通过...
使用 biliup(Python 版官方 CLI,PyPI 包名 biliup)投稿 B 站视频。
与 biliup-rs 的区别:本 skill 使用的是 Python 版
biliup(pip install biliup), 不是基于 Rust 的biliup-rs。两者功能相似,但安装方式和命令参数不同。
biliup login 完成后,会在工作目录生成 cookies.json,其中保存的是
用户自己的 B 站登录凭据(access_token),仅用于后续上传视频到用户自己的账号,
不会上传至任何第三方服务器。请妥善保管该文件,不要分享或提交到 git。
pip install biliup(PyPI 官方包)~/.local/bin/biliup(pip --user 安装路径)或系统 PATH 中{workspace}/cookies.json(biliup login 保存到运行时当前目录)scripts/biliup login 不支持 --cookie 参数:凭据固定保存到运行时的当前工作目录 cookies.json。
建议先 cd 到 workspace 根目录再执行。biliup login 必须使用 PTY(pty=true),否则报 IO error: not a terminal。↓↓Enter 实际选到"浏览器登录"(第 4 项)。
使用浏览器登录模式,它会输出一个授权 URL,用 B 站 App 扫码授权即可。bash scripts/setup_biliup.sh
pipx install biliup 或 pip install --user biliup 安装 PyPI 官方包判断是否需要登录:
{workspace}/cookies.json 不存在,或登录流程(必须用 PTY,在 workspace 目录运行):
cd {workspace} && biliup login
# exec with pty=true, timeout=180s, yieldMs=8000
进程启动后显示登录方式菜单,发送 ↓↓Enter 选中"浏览器登录",输出授权 URL:
https://passport.bilibili.com/x/passport-tv-login/h5/qrcode/auth?auth_code=xxxxxx
生成二维码并发送给用户:
python3 -c "import qrcode; qrcode.make('https://passport.bilibili.com/x/passport-tv-login/h5/qrcode/auth?auth_code=xxxxxx').save('/tmp/biliup_qr.png')"
先单独发一条图片消息,再发一条文字备用链接:
# 图片消息(单独一条)
MEDIA: /tmp/biliup_qr.png
# 文字备用(单独一条)
🅱 B站扫码登录链接(图片看不到时使用):
https://passport.bilibili.com/x/passport-tv-login/h5/qrcode/auth?auth_code=xxxxxx
用 B站 App 扫码授权后,请稍等,我会自动检测登录结果~
然后 poll 进程输出,最长等 120 秒,等待进程退出码 0(登录成功)。
⚠️ 不要提前 kill 进程,否则凭据不会写入磁盘。
登录成功后凭据文件在:{workspace}/cookies.json
也可使用辅助脚本(自动捕获 URL 并生成二维码):
python3 scripts/qr_login.py --cookie {workspace}/cookies.json --wait
# 脚本会输出二维码图片路径到 stdout,用于发送给用户
向用户收集以下信息(必填项优先,可选项若用户未提及则跳过):
| 参数 | 必填 | 说明 |
|---|---|---|
| 视频文件路径 | ✅ | 本地路径,支持多个(多 P) |
标题 --title | ✅ | 视频标题,最长 80 字 |
分区 --tid | ✅ | 见 references/tid_list.md;默认 21(虚拟主播综合) |
标签 --tag | ✅ | 逗号分隔,至少 1 个 |
简介 --desc | 可选 | 视频简介 |
封面 --cover | 可选 | 本地图片路径或 URL |
是否原创 --copyright | 可选 | 1=自制(默认),2=转载 |
转载来源 --source | 转载时必填 | 原始来源说明 |
若用户一次性提供了所有信息,直接进入 Step 4,不要反复追问。
视频文件处理:
url= 字段提取 URL,下载到本地再上传:
curl -L -o /tmp/biliup_upload/<filename>.mp4 "<url>"
file 命令确认是有效的 MP4 文件biliup -u {workspace}/cookies.json upload \
--title "视频标题" \
--tid 21 \
--tag "标签1,标签2" \
/path/to/video.mp4
多 P 视频:在末尾追加多个文件路径。
上传线路(可选,若用户要求速度优化):
--line 可选 bda2(默认)、ws、qn、tx、txa
运行投稿命令时:
"bvid": "BVxxxxxxxxx")或错误信息成功时输出:
✅ 投稿成功!
BV 号:BVxxxxxxxxx
标题:xxx
可在哔哩哔哩个人主页查看审核进度~
失败时输出错误信息,常见问题:
401/403 → 登录凭据已过期,需重新登录(回到 Step 2)pip install biliup),无需手动下载二进制references/tid_list.mdZIP package — ready to use