Bilibili's command line submission tool supports SMS login , account and password login , QR code scan login , browser login and web page cookie login , and saves the cookies and tokens returned after login in cookie.json
, which can be used for other projects.
Document address : https://biliup.github.io/biliup-rs
This project uses Rust, which can be called as a lib. In theory, it can be called through PyO3 as a library for Python and napi-rs for Node.js, etc.
Download address
bilibili
Little Red Book (work-in-process)
Douyu Live
Huya Live
Station B live broadcast
Douyin live (coming soon)
Kuaishou live (coming soon)
Submission supports direct submission and additional submission of existing manuscripts:
Submit quickly, enter biliup upload test1.mp4 test2.mp4
to quickly submit multiple pages;
Contribute through the configuration file. Please see config.yaml for details of the configuration file. It supports batch matching of video files according to Unix shell style patterns. For example, /media/**/*.mp4
matches all mp4 files in media and its subdirectories and can be adjusted freely. Video title, introduction, tags, etc.:
$ biliup help upload Upload videoUsage: biliup upload [OPTIONS] [VIDEO_PATH]... Arguments: [VIDEO_PATH]... The path of the video to be uploaded. If you specify a configuration file for submission, this parameter is not required. Options: --submit <SUBMIT> Submit interface [default: client] [possible values: client, app, web] -c, --config <FILE> Sets a custom config file -l, --line <LINE> Select upload line [possible values: bda2, ws, qn, bldsa, tx, txa, bda] --limit <LIMIT> Maximum number of concurrent requests for a single video file [default: 3] --copyright <COPYRIGHT> Whether to reprint, 1-self-made 2-reprint [default: 1] --source <SOURCE> Reprint source [default: ] --tid <TID> Submission partition [default: 171] --cover <COVER> video cover [default: ] --title <TITLE> video title [default: ] --desc <DESC> Video introduction [default: ] --dynamic <DYNAMIC> spatial dynamics [default: ] --tag <TAG> video tag, commas separate multiple tags [default: ] --dtime <DTIME> Delayed publishing time, more than 4 hours before submission, format is 10-digit timestamp --interactive <INTERACTIVE> [default: 0] --mission-id <MISSION_ID> --dolby <DOLBY> Whether to enable Dolby audio, 0-off 1-on [default: 0] --hires <LOSSLESS_MUSIC> Whether to enable Hi-Res, 0-off 1-on [default: 0] --no-reprint <NO_REPRINT> 0-allow reprinting, 1-forbid reprinting [default: 0] --open-elec <OPEN_ELEC> Whether to enable charging, 0-off 1-on [default: 0] --up-selection-reply Whether to enable selected comments, only available when the submission interface is app --up-close-reply Whether to close comments, only available when the submission interface is app --up-close-danmu Whether to close barrages, -h, --help Print help is only available when the submission interface is app
Download video: ./biliup download https://xxxx
Check the specific points of transcoding failure: ./biliup show BVxxxxx
To view the complete usage, enter biliup -h
on the command line
biliup 0.1.14 Upload video to bilibili. USAGE: biliup.exe [OPTIONS] <SUBCOMMAND>OPTIONS: -h, --help Print help information -u, --user-cookie <USER_COOKIE> Login information file [default: cookies.json] -V, --version Print version information SUBCOMMANDS: append Whether to add a video to a manuscript download Download video dump-flv Output flv metadata help Print this message or the help of the given subcommand(s) login Log in to site B and save login information renew Manually verify and refresh login information show Print video details upload Upload video
Please pass the path of the cookie file through -u
or --user-cookie
parameter before the subcommand (the default is "cookies.json" in the current directory). For example:
$biliup -u user1.json login$biliup --user-cookie user2.json upload ...$biliup renew # ./cookies.json
Log in:
.biliup.exe login
Upload:
.biliup.exe upload
Automatic recording and broadcasting submission tool
GUI version based on this project
There are two main submission modes of bilibili: fetch and direct transmission. Line overview:
Speed test: http://member.bilibili.com/preupload?r=ping
bup (direct transmission to station B submission system)
bda2 (Baidu Cloud)
qn (qiu)
ws (wangsu)
bldsa (Baidu Cloud)
tx (Tencent Cloud EO)
txa (Tencent Cloud EO overseas)
bda (Baidu Cloud Overseas)
upos
bupfetch (after being transmitted to the partner, it will be pulled by the submission system of station B. It has been unavailable for a long time )
kodo (seven cows)
bos (Baidu)
gcs (Google)
cos (Tencent)
When no upload line is selected, several lines will be returned through probe before uploading, and the one with a shorter response time will be selected for the concurrent packet test. Under normal circumstances, a good upload line will be selected. If the upload speed of the automatically selected line is not good, you can increase the number of concurrencies or specify the line that has been selected above. Theoretically, increasing the number of concurrencies can speed up the upload speed, but some lines have concurrency limits, so please test it yourself based on actual conditions.
If the user level is greater than 3, and the number of fans is > 1000, there is no limit on the number of P points for Web submissions. The web version of Station B will be replaced by a collection.
For accounts that do not meet the conditions, multi-P submissions can only rely on the submission client of Station B. However, the submission client uses a different line from the Web side, and the quality is lower than the Web side. Machines abroad will amplify this gap. Therefore, this project uses the client's submission interface to cooperate with the upload line on the Web side to make up for the shortcomings of each. It not only supports multi-P uploading, but also provides high-quality (speed and stability) lines, and provides a manual line switching function that is not available on the Web side.
export DATABASE_URL="sqlite:data.db" cargo sqlx db create cargo sqlx migrate run --source .cratesbiliupmigrations cargo sqlx prepare --merged cargo run -- server -b localhost