命令行投稿(B站)和视频下载工具,提供多种登录方式,支持多p。
See the code[!IMPORTANT]
🚨 重要通知:本仓库已停止维护,所有后续开发与更新已迁移至新仓库。
👉 请立即访问并使用新的项目地址:biliup
本仓库已归档,仅供参考历史记录。请勿在此提交新的 Issue 或 Pull Request。
文档地址:https://biliup.github.io/biliup-rs
本项目使用 Rust,可以作为 lib 被调用,理论上可以通过 PyO3 作为库提供给 Python 和 napi-rs 给 Node.js 等进行调用。
投稿支持直接投稿和对现有稿件追加投稿:
biliup upload test1.mp4 test2.mp4 即可快速多p投稿;/media/**/*.mp4 匹配 media 及其子目录中的所有 mp4 文件且可以自由调整视频标题、简介、标签等:$ biliup help upload
上传视频
Usage: biliup upload [OPTIONS] [VIDEO_PATH]...
Arguments:
[VIDEO_PATH]... 需要上传的视频路径,若指定配置文件投稿不需要此参数
Options:
--submit <SUBMIT> 提交接口 [default: client] [possible values: client, app, web]
-c, --config <FILE> Sets a custom config file
-l, --line <LINE> 选择上传线路 [possible values: bda2, ws, qn, bldsa, tx, txa, bda, alia]
--limit <LIMIT> 单视频文件最大并发数 [default: 3]
--copyright <COPYRIGHT> 是否转载, 1-自制 2-转载 [default: 1]
--source <SOURCE> 转载来源 [default: ]
--tid <TID> 投稿分区 [default: 171]
--cover <COVER> 视频封面 [default: ]
--title <TITLE> 视频标题 [default: ]
--desc <DESC> 视频简介 [default: ]
--dynamic <DYNAMIC> 空间动态 [default: ]
--tag <TAG> 视频标签,逗号分隔多个tag [default: ]
--dtime <DTIME> 延时发布时间,距离提交大于4小时,格式为10位时间戳
--interactive <INTERACTIVE> [default: 0]
--mission-id <MISSION_ID>
--dolby <DOLBY> 是否开启杜比音效, 0-关闭 1-开启 [default: 0]
--hires <LOSSLESS_MUSIC> 是否开启 Hi-Res, 0-关闭 1-开启 [default: 0]
--no-reprint <NO_REPRINT> 0-允许转载,1-禁止转载 [default: 0]
--open-elec <OPEN_ELEC> 是否开启充电, 0-关闭 1-开启 [default: 0]
--up-selection-reply 是否开启精选评论,仅提交接口为app时可用
--up-close-reply 是否关闭评论,仅提交接口为app时可用
--up-close-danmu 是否关闭弹幕,仅提交接口为app时可用
--extra-fields <EXTRA_FIELDS> 自定义提交参数
-h, --help Print help
./biliup download https://xxxx./biliup show BVxxxxxbiliup -h$ biliup help
Upload video to bilibili.
Usage: biliup [OPTIONS] <COMMAND>
Commands:
login 登录B站并保存登录信息
renew 手动验证并刷新登录信息
upload 上传视频
append 是否要对某稿件追加视频
show 打印视频详情
dump-flv 输出flv元数据
download 下载视频
list 列出所有已上传的视频
help Print this message or the help of the given subcommand(s)
Options:
-p, --proxy <PROXY> 配置代理
-u, --user-cookie <USER_COOKIE> 登录信息文件 [default: cookies.json]
--rust-log <RUST_LOG> [default: tower_http=debug,info]
-h, --help Print help
-V, --version Print version
请在子命令之前通过 -u 或者 --user-cookie 参数传入 cookie 文件的路径(默认为当前目录下的 "cookies.json")。例如:
$biliup -u user1.json login
$biliup --user-cookie user2.json upload ...
$biliup renew # ./cookies.json
请在子命令之前通过 -p 或者 --proxy 参数传入 代理 的地址。例如:
biliup -p http://username:password@proxy.example.com:8080 upload
登录:
biliup login

上传:
biliup upload

bilibili 投稿模式分主要为 fetch 和直传两种,线路概览:
测速:http://member.bilibili.com/preupload?r=ping
未选择上传线路时,在上传前会通过 probe 来返回几条线路,并发包测试从中选择响应时间较短的,正常情况下都会选择到良好的上传线路。 如果自动选择的线路上传速度不佳,可以增大并发数或指定上述已支持选择的线路。 理论上,增加并发数能加快上传速度,但部分线路存在并发数限制,请结合实际自行测试。
用户等级大于 3 ,且粉丝数 > 1000 ,Web 端投稿不限制分 P 数量。B 站 Web 端将替换为合集 。
对于不满足条件的账号,多 P 投稿只能依靠 B 站的投稿客户端,但是投稿客户端使用的线路与 Web 端不同,质量低于 Web 端的线路,在国外机器会放大这一差距。所以本项目使用 client 的提交接口配合 Web 端的上传线路,弥补两者各自的不足。既可以多 P 上传,又提供了质量(速度和稳定性)较高的线路,且提供了 Web 端不具备的手动切换线路功能。
export DATABASE_URL="sqlite:data.db"
cargo sqlx db create
cargo sqlx migrate run --source .\crates\biliup-cli\migrations\
cargo sqlx prepare --merged
cargo run -- server -b localhost
64 followers · starred Mar 2025
63 followers · starred Jun 2022
6 followers · starred Jan 2022
44 followers · starred Feb 2024
命令行投稿(B站)和视频下载工具,提供多种登录方式,支持多p。
See the code[!IMPORTANT]
🚨 重要通知:本仓库已停止维护,所有后续开发与更新已迁移至新仓库。
👉 请立即访问并使用新的项目地址:biliup
本仓库已归档,仅供参考历史记录。请勿在此提交新的 Issue 或 Pull Request。
文档地址:https://biliup.github.io/biliup-rs
本项目使用 Rust,可以作为 lib 被调用,理论上可以通过 PyO3 作为库提供给 Python 和 napi-rs 给 Node.js 等进行调用。
投稿支持直接投稿和对现有稿件追加投稿:
biliup upload test1.mp4 test2.mp4 即可快速多p投稿;/media/**/*.mp4 匹配 media 及其子目录中的所有 mp4 文件且可以自由调整视频标题、简介、标签等:$ biliup help upload
上传视频
Usage: biliup upload [OPTIONS] [VIDEO_PATH]...
Arguments:
[VIDEO_PATH]... 需要上传的视频路径,若指定配置文件投稿不需要此参数
Options:
--submit <SUBMIT> 提交接口 [default: client] [possible values: client, app, web]
-c, --config <FILE> Sets a custom config file
-l, --line <LINE> 选择上传线路 [possible values: bda2, ws, qn, bldsa, tx, txa, bda, alia]
--limit <LIMIT> 单视频文件最大并发数 [default: 3]
--copyright <COPYRIGHT> 是否转载, 1-自制 2-转载 [default: 1]
--source <SOURCE> 转载来源 [default: ]
--tid <TID> 投稿分区 [default: 171]
--cover <COVER> 视频封面 [default: ]
--title <TITLE> 视频标题 [default: ]
--desc <DESC> 视频简介 [default: ]
--dynamic <DYNAMIC> 空间动态 [default: ]
--tag <TAG> 视频标签,逗号分隔多个tag [default: ]
--dtime <DTIME> 延时发布时间,距离提交大于4小时,格式为10位时间戳
--interactive <INTERACTIVE> [default: 0]
--mission-id <MISSION_ID>
--dolby <DOLBY> 是否开启杜比音效, 0-关闭 1-开启 [default: 0]
--hires <LOSSLESS_MUSIC> 是否开启 Hi-Res, 0-关闭 1-开启 [default: 0]
--no-reprint <NO_REPRINT> 0-允许转载,1-禁止转载 [default: 0]
--open-elec <OPEN_ELEC> 是否开启充电, 0-关闭 1-开启 [default: 0]
--up-selection-reply 是否开启精选评论,仅提交接口为app时可用
--up-close-reply 是否关闭评论,仅提交接口为app时可用
--up-close-danmu 是否关闭弹幕,仅提交接口为app时可用
--extra-fields <EXTRA_FIELDS> 自定义提交参数
-h, --help Print help
./biliup download https://xxxx./biliup show BVxxxxxbiliup -h$ biliup help
Upload video to bilibili.
Usage: biliup [OPTIONS] <COMMAND>
Commands:
login 登录B站并保存登录信息
renew 手动验证并刷新登录信息
upload 上传视频
append 是否要对某稿件追加视频
show 打印视频详情
dump-flv 输出flv元数据
download 下载视频
list 列出所有已上传的视频
help Print this message or the help of the given subcommand(s)
Options:
-p, --proxy <PROXY> 配置代理
-u, --user-cookie <USER_COOKIE> 登录信息文件 [default: cookies.json]
--rust-log <RUST_LOG> [default: tower_http=debug,info]
-h, --help Print help
-V, --version Print version
请在子命令之前通过 -u 或者 --user-cookie 参数传入 cookie 文件的路径(默认为当前目录下的 "cookies.json")。例如:
$biliup -u user1.json login
$biliup --user-cookie user2.json upload ...
$biliup renew # ./cookies.json
请在子命令之前通过 -p 或者 --proxy 参数传入 代理 的地址。例如:
biliup -p http://username:password@proxy.example.com:8080 upload
登录:
biliup login

上传:
biliup upload

bilibili 投稿模式分主要为 fetch 和直传两种,线路概览:
测速:http://member.bilibili.com/preupload?r=ping
未选择上传线路时,在上传前会通过 probe 来返回几条线路,并发包测试从中选择响应时间较短的,正常情况下都会选择到良好的上传线路。 如果自动选择的线路上传速度不佳,可以增大并发数或指定上述已支持选择的线路。 理论上,增加并发数能加快上传速度,但部分线路存在并发数限制,请结合实际自行测试。
用户等级大于 3 ,且粉丝数 > 1000 ,Web 端投稿不限制分 P 数量。B 站 Web 端将替换为合集 。
对于不满足条件的账号,多 P 投稿只能依靠 B 站的投稿客户端,但是投稿客户端使用的线路与 Web 端不同,质量低于 Web 端的线路,在国外机器会放大这一差距。所以本项目使用 client 的提交接口配合 Web 端的上传线路,弥补两者各自的不足。既可以多 P 上传,又提供了质量(速度和稳定性)较高的线路,且提供了 Web 端不具备的手动切换线路功能。
export DATABASE_URL="sqlite:data.db"
cargo sqlx db create
cargo sqlx migrate run --source .\crates\biliup-cli\migrations\
cargo sqlx prepare --merged
cargo run -- server -b localhost
64 followers · starred Mar 2025
63 followers · starred Jun 2022
6 followers · starred Jan 2022
44 followers · starred Feb 2024