配置环境

系统环境: Ubuntu-22.04-amd64
用户: root

(可选)国内主机换清华源

sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

修复libssl.so.1.1: cannot open shared object file

由于Ubuntu 22.04 默认使用openssl3.0.* ,但大多为Ubuntu生成的可执行文件依赖openssl 1.1

wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz && tar xvf openssl-1.1.1q.tar.gz && cd openssl-1.1.1q && apt install -y perl gcc make && ./config && make && make install && echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib" >> /etc/profile && source /etc/profile

更新并获取所需软件包

 apt-get update && apt-get upgrade -y  &&  apt install python3-dev  python3-pip ffmpeg nodejs  -y && pip3 install biliup quickjs certifi

mkdir /root/biliup && cd /root/biliup

wget -O biliupR.tar.xz https://github.com/biliup/biliup-rs/releases/download/$(curl -Ls "https://api.github.com/repos/biliup/biliup-rs/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')/biliupR-$(curl -Ls "https://api.github.com/repos/biliup/biliup-rs/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')-x86_64-linux.tar.xz && tar -xvf biliupR.tar.xz && mv -fb ./biliupR*/* ./ && rm -rf ./biliupR*

vim config.toml #粘贴下面配置文件 自行修改
```

```bash
# 选择全局默认上传插件,Noop为不上传,但会执行后处理,可选bili_web,biliup-rs
#uploader = "Noop"
# 选择全局默认的下载插件,默认为stream-gears。可选ffmpeg与stream-gears。
#downloader= "ffmpeg"
# b站上传线路选择,默认为自动模式,目前可手动切换为bda2, kodo, ws, qn, cos, cos-internal(支持腾讯云内网免流+提速)
lines = "AUTO"
# 单文件并发上传数,未达到带宽上限时增大此值可提高上传速度
threads = 3
# 录像单文件大小限制,单位Byte,超过此大小分段下载
file_size = 2621440000
# 录像单文件时间限制,格式'00:00:00'(时分秒),超过此大小分段下载,如需使用大小分段请注释此字段
#segment_time = '00:50:00'
filtering_threshold = 20 # 小于此大小的视频文件将会被过滤删除,单位MB
# 如遇到斗鱼录制卡顿可以尝试切换线路,tct-h5(备用线路5),ali-h5(备用线路6),akm-h5(主线路1)
#douyucdn = "tct-h5"
# 如遇到虎牙录制卡顿可以尝试切换线路,AL, HW, TX, WS
#huyacdn = "AL"
# 自定义录播文件名模板, 支持变量 {streamer}:你在配置里设置的直播间名 %Y-%m-%d %H_%M_%S:创建文件的时间, {room_title}:当场直播间标题
# 如果上传文件,文件名必须包含设定的模板名。其次,如果没有定义时间,文件分片可能会互相覆盖,所以推荐设置时间来避免分段文件名重复。
#filename_prefix = '{streamer}%Y-%m-%d %H_%M_%S{room_title}'
# 哔哩哔哩直播流协议.可选 stream(Flv)、hls
#bili_protocol = "stream"
# 哔哩哔哩直播优选CDN
#bili_perfCDN = "cn-gotcha01"
# 哔哩哔哩直播强制原画(仅限HLS流的 cn-gotcha01 CDN)
#bili_forceScoure = false
# 自定义哔哩哔哩直播api
#bili_liveapi = "https://api.live.bilibili.com"
# CDN自动Fallback开关,默认为开启
#bili_cdn_fallback = true
# 检测到主播下播后延迟再次检测,单位:秒,避免特殊情况提早启动上传导致漏录
delay = 10
# 检测间隔时间,单位:秒
event_loop_interval = 40
# 相同平台检测间隔,单位:秒。不同平台的链接是并发的,不受此参数影响
checker_sleep = 15
# 线程池1大小,负责download事件
pool1_size = 3
# 线程池2大小,处理除download事件外所有其他事件
pool2_size = 3
# 检测源码文件变化间隔,单位:秒,检测源码到变化后,程序会在空闲时自动重启
check_sourcecode = 15
#------YouTube------#
### 设置偏好的YouTube下载封装格式
### 请务必记得安装ffmpeg
### 支持同时添加多个编码,自动优选指定编码格式里最好的画质/音质版本。
### 视频:其中avc编码最高可以下载到1080p的内容,vp9最高可以下载到4k以及很少部分8k内容,av01画质不是所有视频都有,但是大部分8k视频的8k画质只有av01编码。
### 音频:其中opus编码最高48KHz采样,mp4a(AAC)最高44.1KHz采样,理论上来说opus音质会更好一些。
### 如需指定封装格式,请按以下推荐设置。mp4:avc+mp4a;av01+mp4a. mkv:vp9+mp4a,avc+opus. webm:av01+opus;vp9+opus.
#youtube_prefer_vcodec = "av01|vp9|avc" ### 可用av01,vp9,avc
#youtube_prefer_acodec = "opus|mp4a" ### 可用opus,mp4a
### 设置偏好的YouTube下载最高纵向分辨率
### 最高纵向分辨率,也就是xxxxP.如果youtube_prefer_format指定为mp4,将最高只能下载1080p的视频。
#youtube_max_resolution = "440"
### 限制单个视频的最大大小。
### 注意:此参数优先级高于分辨率设置,并且不包括音频部分的大小,仅仅只是视频部分的大小。
### 如果某个视频实在没有低于此大小的分辨率版本,将会选择最低画质的版本下载。
#youtube_max_videosize = "5G" ###参考格式,例如100M,5G,10G。

[user]
# 如需要录制抖音请在此填入cookie需要__ac_nonce与__ac_signature的值
douyin_cookie = '__ac_nonce=123456; __ac_signature=123456;'
# 如录制Twitch时遇见视频流中广告过多的情况,可尝试在此填入cookie,可以大幅减少视频流中的twitch广告(经测试需要在该Cookie所属账号开了TwitchTurbo会员才有用),该cookie有过期风险,cookie过期后会导致无法获取到直播流
# twitch_cookie获取方式:在浏览器中打开Twitch.tv,F12调出控制台,在控制台中执行:document.cookie.split("; ").find(item=>item.startsWith("auth-token="))?.split("=")[1]
# twitch_cookie需要在downloader= "ffmpeg"时候才会生效
#twitch_cookie = 'asdiouo2h987r23hf2893fh923y7'
# Netscape 格式的 Cookies 文本路径
#youtube_cookie = 'cookiejar.txt'

# 最小配置示例
[streamers."星际2Stats拔本神族天梯第一视角"]
url = ["https://www.twitch.tv/kimdaeyeob3"]

# 完整可选配置示例
[streamers."星际2INnoVation吕布卫星人族天梯第一视角"]
url = [
"https://www.twitch.tv/innovation_s2",
"https://www.panda.tv/1160340"
]
title = "{title}第一视角%Y-%m-%d{streamers}" # 自定义标题的时间格式, {title}代表当场直播间标题 {streamers}代表在本config里面设置的主播名称
tid = 171 # 投稿分区码,171为电子竞技分区
copyright = 2 # 1为自制
# cover_path = "/cover/up.jpg"
# 支持strftime, {title},{streamers}占位符。
description = """
视频简介: {title} %Y-%m-%d %H:%M:%S{streamers}
---
Powered By biliup - Github: https://github.com/ForgQi/biliup"""
dynamic = "#空间动态#"
# dtime = 14_400 # 设置延时发布时间,距离提交大于2小时,格式为时间戳
uploader = "biliup-rs" # 覆盖全局默认上传插件,Noop为不上传,但会执行后处理
#filename_prefix = '{streamer}%Y-%m-%d %H_%M_%S{room_title}' # 覆盖全局自定义录播文件命名规则
user_cookie = "cookies.json" # 使用指定的账号上传
tags = [ "biliup", "视频标签" ]
# 上传完成后,将按自定义顺序执行自定义操作
#postprocessor = [
# {run = "echo hello!"}, # 执行任意命令,等同于在shell中运行,视频文件路径作为标准输入传入
# {mv = "backup/"}, # 移动文件到backup目录下
# {run = "python3 path/to/mail.py"}, # 执行一个 Python 脚本,可以用来发送邮件等。自动发信通知脚本示例 https://biliup.github.io/biliup/Guide.html#%E4%B8%8A%E4%BC%A0%E5%AE%8C%E6%88%90%E5%90%8E%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E9%80%9A%E7%9F%A5
# {run = "sh ./run.sh"} # 执行一个shell脚本,用途多样,主要调用系统内的cli工具。自动上传网盘脚本示例 https://gist.github.com/UVJkiNTQ/ae4282e8f9fe4e45b3144b57605b4178
## 'rm', # 删除文件,为默认操作
#]

# 日志输出配置
[LOGGING.formatters.verbose]
format = "%(asctime)s %(filename)s[line:%(lineno)d](Pid:%(process)d Tname:%(threadName)s) %(levelname)s %(message)s"
datefmt = "%Y-%m-%d %H:%M:%S"

[LOGGING.formatters.simple]
format = "%(filename)s%(lineno)d[%(levelname)s]Tname:%(threadName)s %(message)s"

[LOGGING.handlers.console]
level = "DEBUG"
class = "logging.StreamHandler"
formatter = "simple"
stream = "ext://sys.stdout"

[LOGGING.handlers.file]
level = "DEBUG"
class = "biliup.common.log.SafeRotatingFileHandler"
when = "W0"
interval = 1
backupCount = 1
filename = "ds_update.log"
formatter = "verbose"

[LOGGING.root]
handlers = [ "console" ]
level = "INFO"

[LOGGING.loggers.biliup]
handlers = [ "file" ]
level = "INFO"

biliup开启边录边传

echo n | pip3 uninstall biliup #查找biliup所在位置

cd path to biliup

vim handler.py
输入 / def modify(self, url): 回车 定位到modify模块
if self.url_status[url] == 2:
return logger.debug('正在上传稍后下载')
注释(在句首加#)

使用biliup-rs配置cookies.json 并启动biliup

./biliup login                                                      #选择扫码登录
biliup start

一些命令

ps -A | grep biliup                                           #查看进程是否启动成功

biliup start #启动

biliup stop #退出

biliup restart #重启

biliup --version #查看版本

biliup -h #显示帮助以查看更多选项

biliup --http start #启动 web ui, 默认 0.0.0.0:19159。 可使用-H及-P选项配置。考虑到安全性,建议指定本地地址配合web server或者添加验证。

biliup --config ./config.yaml start #指定配置文件路径

pip3 install --upgrade biliup #升级biliup

#biliup-rs:
biliup help upload
USAGE:
biliup.exe upload [OPTIONS] [VIDEO_PATH]...

ARGS:
<VIDEO_PATH>... 需要上传的视频路径,若指定配置文件投稿不需要此参数

OPTIONS:
-c, --config <FILE> Sets a custom config file
--copyright <COPYRIGHT> 是否转载 1 原创 2 转载 [default: 1]
--cover <COVER> 视频封面
--desc <DESC> 视频简介
--dtime <DTIME> 延时发布时间,距离提交大于4小时,格式为10位时间戳
--dynamic <DYNAMIC> 空间动态
-h, --help Print help information
-l, --line <LINE> 上传线路,支持kodo, bda2, qn, ws
--limit <LIMIT> 单视频文件最大并发数 [default: 3]
--source <SOURCE> 是转载来源
--tag <TAG> 视频标签
--tid <TID> 投稿分区 [default: 171]
--title <TITLE> 视频标题