GithubHelp home page GithubHelp logo

biliup / biliup-rs Goto Github PK

View Code? Open in Web Editor NEW
744.0 8.0 96.0 1.07 MB

命令行投稿(B站)和视频下载工具,提供多种登录方式,支持多p。

Home Page: https://biliup.github.io/biliup-rs

License: MIT License

Rust 97.59% Python 2.41%
bilibili upload bilibili-helper

biliup-rs's Introduction

logo

python PyPI PyPI - Downloads license Telegram

issues STARS forks

录制各大主流直播平台并上传至哔哩哔哩弹幕网
自动选择上传线路,保证上传稳定性,可手动调整并发
支持录制哔哩哔哩、斗鱼、虎牙、Twitch直播弹幕用于外挂播放器
防止录制花屏(使用默认的stream-gears下载器就会有这个功能),解决网络、PK导致的花屏。
更新日志 »

简易教程 · 交流社区 · 投稿工具

社区教程: 图文教程 by @ikun1993编写。

Quick Start

Windows

下载 exe: Release

Linux or macOS

  1. pythonversion >= 3.8
  2. pip3 install biliup
  3. biliup start
  4. 启动时访问 http://your-ip:19159 使用webUI,

How to Contribute

  1. nodejs version >= 18
  2. npm i
  3. npm run dev
  4. python3 -m biliup
  5. 访问http://localhost:3000

支持

直播平台 支持类型 链接示例 特殊注释
虎牙 直播 https://www.huya.com/123456 可录制弹幕
斗鱼 直播 https://www.douyu.com/123456 可录制弹幕
YY语音 直播 https://www.yy.com/123456
哔哩哔哩 直播 https://live.bilibili.com/123456 特殊分区hls流需要单独配置/可录制弹幕
acfun 直播 https://live.acfun.cn/live/123456
afreecaTV 直播 https://play.afreecatv.com/biliup123/123456 录制部分直播时需要登陆
bigo 直播 https://www.bigo.tv/123456
抖音 直播 直播:https://live.douyin.com/123456(直播间数字号)
直播:https://live.douyin.com/tiktok(抖音号)
主页(不推荐):https://www.douyin.com/user/456789(抖音号)
使用主页链接或被风控需配置cookies
快手 直播 https://live.kuaishou.com/u/biliup123
网易CC 直播 https://cc.163.com/123456
flextv 直播 https://www.flextv.co.kr/channels/123456/live
映客 直播 https://www.inke.cn/liveroom/index.html?uid=123456
猫耳FM 直播 https://fm.missevan.com/live/123456 猫耳为纯音频流
nico 直播 https://live.nicovideo.jp/watch/lv123456 可配置登录信息
twitch 直播
回放
直播:https://www.twitch.tv/biliup123
回放:https://www.twitch.tv/biliup123/videos?filter=archives&sort=time
可配置登录信息/尽量录制回放/可录制弹幕
youtube 直播
回放
直播:https://www.youtube.com/watch?v=biliup123(单场)
直播:https://www.youtube.com/@biliup123/live(最远的预约)
回放:https://www.youtube.com/@biliup123/videos
可配置登录信息/尽量录制回放/可配置回放下载日期

Credits

  • Thanks ykdl, youtube-dl, streamlink provides downloader.
  • Thanks THMonster/danmaku.

捐赠

  • 爱发电 :https://afdian.net/a/biliup

aifadian

Stars

Star History Chart

biliup-rs's People

Contributors

begnion avatar coolzxp avatar cxumol avatar dreammu avatar eatradish avatar forgqi avatar fwqaaq avatar haha114514 avatar hguandl avatar kataick avatar keyword233 avatar saindriches avatar vicat47 avatar zzc10086 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

biliup-rs's Issues

上传视频时报错,invalid peer certificate: UnknownIssuer

报错堆栈:
stream_gears.upload(
RuntimeError: invalid peer certificate contents: invalid peer certificate: UnknownIssuer, error sending request for url (https://passport.bilibili.com/x/passport-login/oauth2/info?access_key=ed66b0e26c71bfc3515efdf6c97cf9a2&actionKey=appkey&appkey=783bbb7264451d82&sign=ee3c846227bd09f106c91078e25af90b&ts=1667096237): error trying to connect: invalid peer certificate contents: invalid peer certificate: UnknownIssuer
服务器信息:
arm64+ubuntu20
在服务器上用curl访问B站,是能得到正确返回的

如何对已上传的视频追加分P

如题,是否可以配置呢?
我自己扒拉了一下上传过程,没看到上传和稿件做绑定的地方
可不可以指定链接进行稿件追加呢?

statements are unstable 请问需要如何破?

error[E0658]: let...else statements are unstable
--> crates/biliup/src/server/core/download_actor.rs:72:5
|
72 | let Some(extractor) = find_extractor(&url) else { return; };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #87335 rust-lang/rust#87335 for more information

warning: unused import: std::any::Any
--> crates/biliup/src/server/core/download_actor.rs:8:5
|
8 | use std::any::Any;
| ^^^^^^^^^^^^^

warning: unused import: anyhow::Context
--> crates/biliup/src/server/infrastructure/repositories/live_streamers_repository.rs:3:5
|
3 | use anyhow::Context;
| ^^^^^^^^^^^^^^^

For more information about this error, try rustc --explain E0658.
warning: biliup (lib) generated 16 warnings
error: could not compile biliup due to 3 previous errors; 16 warnings emitted
warning: build failed, waiting for other jobs to finish...

[问题] 上传问题

Ubuntu Server 20.04 LTS 64bit
CPU: 2核 内存: 4GB
带宽:6Mbps

佬你好,想问下出现这个问题怎么解决。试了上传3G左右的文件是可以成功的,这个7G的一直失败超时。
投稿上传是在screen里运行的。

Caused by:
0: error sending request for url (https://upload-na0.qbox.me/mkblk/4194304): operation timed out
1: operation timed out

Error: HTTP status server error (502 Bad Gateway) for url `

QQ截图20220619055752
QQ截图20220619134705

pre upload 上传报错

偶尔会出现这样的错误,重试后一般都会成功:

Line { os: Cos, probe_url: "internal", query: "", cost: 0 }
pre_upload: {"build":2110000,"name":"breakice.mp4","profile":"ugcupos/bupfetch","r":"cos","size":317682075,"ssl":0,"version":"2.11.0"}
Error: error sending request for url (https://member.bilibili.com/preupload?build=2110000&name=breakice.mp4&profile=ugcupos%2Fbupfetch&r=cos&size=317682075&ssl=0&version=2.11.0): connection closed before message completed

未搜索到匹配的视频文件

在配置文件中使用绝对或相对路径都不行,提示未搜索到匹配的视频文件。

line: bda2
limit: 3
streamers:
  ~/c/*.mp4:
    copyright: 1
    source: # 转载来源
    tid: 231 # 投稿分区
    cover: "" # 视频封面
    title: "2021 年秋季学期 ICS 课程"
    desc_format_id: 0
    desc: "2021 年秋季学期 ICS 课程"
    dolby: 0 # 杜比音效
    dynamic: ""
    subtitle:
      open: 0
      lan: ""
    tag: "计算机基础, C 语言"
    dtime: ~
    open_subtitle: false

为何录制下来的有些全部是分段的视频,有些视频大小还是0?

机器:德机,1核1G内存,10G大小硬盘,千兆网络。
录制平台:斗鱼、哔哩哔哩。就斗鱼出问题。哔哩哔哩暂时没出现问题。
情况如下:没有使用docker搭建,采用你发布的软件进行录制。vps挂载谷歌网盘。实现录制过程不走vps自身小硬盘。只跑流量和cpu。
2022-09-13_090526
2022-09-13_090705
2022-09-13_090803
2022-09-13_091219

index out of bounds: the len is 0 but the index is 0'

2022-12-25T13:05:15.312537Z  INFO biliup::client: 通过cookie登录
2022-12-25T13:05:15.542313Z  INFO biliup::client: 验证cookie
2022-12-25T13:05:15.542486Z  INFO biliup::client: 无需更新cookie
user: ***
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', crates\biliup\../bin\uploader.rs:74:24
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

支持多账号

希望可以为项目贡献多账号管理的功能,例如:

  • 管理多个账号,包括登入登出、上传
  • 不知道能否实现以某个账号的 cookie 打开 bilibili.com

Compile Error on rust 1.61.0

Hi I'm new to biliup-rs! I'm trying to compile the project using rust 1.61.0, but got the following compiler error:
Screen Shot 2022-12-16 at 6 33 24 AM
Seems I'm missing a database file? What should I add to make it work? Thanks for any advice!

Tag不能为空

./biliup upload /root/111.mp4
2022-10-16T04:37:06.213048Z  INFO biliup::uploader::credential: 通过cookie登录
2022-10-16T04:37:06.457777Z  INFO biliup::uploader::credential: 验证cookie
2022-10-16T04:37:06.457788Z  INFO biliup::uploader::credential: 无需更新cookie
user: 77777777777
number of concurrent futures: 3
2022-10-16T04:37:08.444361Z  INFO biliup::uploader::line: bucket=bvcupcdnkodobm&probe_version=20211012: 1340
2022-10-16T04:37:12.110467Z  INFO biliup::uploader::line: probe_version=20211012&upcdn=qn&zone=cs: 3666
Line { os: Kodo, probe_url: "//up-na0.qbox.me/crossdomain.xml", query: "bucket=bvcupcdnkodobm&probe_version=20211012", cost: 1340 }
2022-10-16T04:37:12.111163Z  INFO biliup::uploader::line: pre_upload: {"build":2110000,"name":"111.mp4","profile":"ugcupos/bupfetch","r":"kodo","size":1406040,"ssl":0,"version":"2.11.0"}
Upload completed: 111.mp4 => cost 7.03s, 0.20 MB/s.
2022-10-16T04:37:19.845722Z  INFO biliup::uploader::bilibili: {"code":21005,"message":"Tag不能为空,总数量不能超过12个, 并且单个不能超过20个字","ttl":1}
Error: {"code":21005,"message":"Tag不能为空,总数量不能超过12个, 并且单个不能超过20个字","ttl":1}

我看演示快捷投稿,没指定tag,刚用,把config.yaml例子默认放在同目录也是相同报错

B站崩了之后是改了策略了吗

按照README 通过 https://github.com/ForgQi/biliup-rs login之后,上传第一个视频还是成功的,接下来又会提示
{'code': -101, 'message': '账号未登录', 'ttl': 1, 'data': {'isLogin': False, 'wbi_img': {'img_url': 'https://i0.hdslb.com/bfs/wbi/91f9bf3d220947e8ab0f5c11597b2171.png', 'sub_url': 'https://i0.hdslb.com/bfs/wbi/de50f1adf10e4c81ae2e865d5d943e64.png'}}}
重新登录一遍,可以又传一个视频,但接下来又会提示未登录。

需要静态编译

执行

wget -qO-  https://github.com/ForgQi/biliup-rs/releases/download/v0.1.0/biliupR-v0.1.0-x86_64-linux.tar.xz | tar xJv
biliup*/biliup

返回

biliupR-v0.1.0-x86_64-linux/biliup: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by biliupR-v0.1.0-x86_64-linux/biliup)

运行环境为 google colab

[已解决]HiRes支持错误,代码如下,如何解决?

windows 10系统
命令:biliup upload --tag 音乐 --tid 130 --hires 1 MTV.mkv
出现以下错误信息
error: Found argument '--hires' which wasn't expected, or isn't valid in this context

If you tried to supply '--hires' as a value rather than a flag, use '-- --hires'

登录风控

选择一种登录方式 ›
  账号密码
❯ 短信登录
  扫码登录
  浏览器登录
✔ 选择一种登录方式 · 短信登录
✔ 请输入手机国家代码 · **
✔ 请输入手机号 · ****
Error: {"code":0,"data":{"captcha_key":"","is_new":false,"recaptcha_url":"https://www.bilibili.com/h5/project-msg-auth/verify?ct=geetest&recaptcha_token=039********&gee_gt=1c0e**************&gee_challenge=2e938******************"},"message":"0","ttl":1}

edit: 我的错, 看漏了 …… 下面是解决方案

如果在被风控 IP 段的服务器上短信登陆, 会触发人机验证, 那么可以先在无风控的本地 IP 用短信登陆, 将 cookies.json 上传到服务器, 即可继续操作

能否增添刮削视频功能?

在下载B站视频的同时,把nfo信息也爬取下来,用以emby等视频管理工具

nfo参考

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<movie>
  <plot>透心凉,心飞扬!
每日猫片,活力再现!</plot>
  <title>每日一遍,烦恼再见!</title>
  <year>2020</year>
  <mpaa>PG</mpaa>
  <customrating>PG</customrating>
  <countrycode>CN</countrycode>
  <premiered>2020-06-29</premiered>
  <release>2020-06-29</release>
  <runtime>190秒</runtime>
  <country>**</country>
  <id>BV1et4y197na</id>
  <num>BV1et4y197na</num>
  <genre>全能打卡挑战</genre>
  <genre>动物圈</genre>
  <genre>可爱</genre>
  <genre>猫片</genre>
  <genre>猫咪</genre>
  <genre>萌宠</genre>
  <genre>喵星人</genre>
  <genre>每日一遍,烦恼再见!</genre>
  <genre>喵星人</genre>
  <genre>戒喵中心</genre>
  <genre>https://www.bilibili.com/video/BV1et4y197na</genre>
  <genre>cid:207002784</genre>
  <genre>aid:626189984</genre>
  <genre>1088x1920</genre>
  <genre>2020-06-29</genre>
  <tag>全能打卡挑战</tag>
  <tag>动物圈</tag>
  <tag>可爱</tag>
  <tag>猫片</tag>
  <tag>猫咪</tag>
  <tag>萌宠</tag>
  <tag>喵星人</tag>
  <tag>每日一遍,烦恼再见!</tag>
  <tag>喵星人</tag>
  <tag>戒喵中心</tag>
  <tag>https://www.bilibili.com/video/BV1et4y197na</tag>
  <tag>cid:207002784</tag>
  <tag>aid:626189984</tag>
  <tag>1088x1920</tag>
  <tag>2020-06-29</tag>
  <actor>
    <name>戒喵中心</name>
    <type>Actor</type>
  </actor>
</movie>

上传超过 4GB 的视频失败

在通过命令行上传时,视频体积超过 4GB 的话会报错,attempt to add with overflow。包括 qnws 都会发生该错误。

thread 'main' panicked at 'attempt to add with overflow', biliup-rs/src/uploader/upos.rs:121:26

请求添加分P标题参数

有的视频会因为文件名过长而被拒绝:

Error: {"code":21104,"message":"第(1)个视频的标题过长,已经超过80个字符","ttl":1}

请问有没有计划添加分P标题参数?

P.S:其实最让人抓狂的是在上传完毕之后才报错……

v0.1.14 文件名含有空格 报错

root@localhost:/bbb/biliup# ./biliup upload /bbb/biliup/可妮Koni 2022-09-25T09_08_47.flv
2022-09-25T17:33:07.945004Z  INFO biliup::client: 通过cookie登录
2022-09-25T17:33:08.438292Z  INFO biliup::client: 验证cookie
2022-09-25T17:33:08.438317Z  INFO biliup::client: 无需更新cookie
user: 猫雷小公主
number of concurrent futures: 3
2022-09-25T17:33:10.895108Z  INFO biliup::line: probe_version=20211012&upcdn=qn&zone=cs: 1262
Line { os: Upos, probe_url: "//upos-cs-upcdnqn.bilivideo.com/OK", query: "probe_version=20211012&upcdn=qn&zone=cs", cost: 1262 }
Error: file /bbb/biliup/可妮Koni

Caused by:
    No such file or directory (os error 2)

能否支持Arm

需要在arm设备设备中上传视频(闲置手机:armbian)

在上传前检查参数是否合法

我在视频都上传完之后才提示
Error: {"code":21021,"message":"稿件类型为转载时,转载来源不能为空","ttl":1}
建议在上传前检查参数是否合法而不是在上传完成后才检查,以免浪费流量和时间

请求添加删除视频api

尝试使用https://member.bilibili.com/x/geetest/pre?t={timestamp}获取到gtchallenge后,通过手动验证器项目得到geetest_validategeetest_seccode数据,然后请求接口https://member.bilibili.com/x/web/archive/delete,但是得到的结果是验证码错误。

 let response = client
            .client
            .post("https://member.bilibili.com/x/web/archive/delete")
            .form(&[
                ("aid", "123456"),
                ("geetest_challenge", "9fc975c0a5d025d2fdf5e091e4c62543"),
                ("geetest_validate", "07432f8c536fa50e9f506ad5db2e57d2"),
                ("geetest_seccode", "07432f8c536fa50e9f506ad5db2e57d2|jordan"),
                ("success", "1"),
                ("csrf", csrf["value"].as_str().unwrap()),
            ])
            .send()
            .await?;
        println!("{:?}", response.text().await);

带佬带佬,有个需求

我的主要需求是使用其他工具直接pull直播到vps,想从vps直接投稿,可以提供terminal或者web-ui的版本么?或者linux的elf也行

doc需求

主要是想知道如何加参数选择转载/分区/封面等内容。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.