Centos部署biliup自动录播程序

2022-02-04   


什么是Biliup?
Biliup是支持自动录制各大直播平台实时流,自动上传到bilibili。也支持twitch直播回放列表自动搬运至b站。

使用到的所有环境版本:
系统:Cento 7.6、系统应用:python 3.9.10、ffmpeg 4.4.1、nodejs、python-pip应用:streamlink 3.0.3、selenium 4.1.0、urllib3 1.26.7、requests 2.26.0

第一步:安装python

安装步骤参考:https://blog.waitsaber.org/archives/162

第二步:安装ffmpeg

安装步骤参考:https://blog.waitsaber.org/archives/161

第三步:nodejs

sudo yum install nodejs

第四步:安装biliup

pip快速安装

pip3 install biliup

源码安装

1、获取源码包
github下载 演示版本0.1.9:https://github.com/ForgQi/biliup/archive/refs/tags/v0.1.9.tar.gz

wget https://github.com/ForgQi/biliup/archive/refs/tags/v0.1.9.tar.gz

2、解压并安装

tar -xvf v0.1.9.tar.gz
cd biliup-0.1.9
pip3 install -e .

第五步:运行biliup

pip快速安装运行命令

biliup start	#启动
biliup stop	#停止
biliup restart	#重启
biliup --version   #查看版本号
biliup -h 	#查看帮助信息

注意:pip安装后需要手动创建配置文件config.yaml,需要在有配置文件的目录下执行命令才能正常运行

源码安装运行命令

python3 -m biliup start		#启动
python3 -m biliup stop		#停止
python3 -m biliup restart 	#重启
python3 -m biliup --version 	#查看版本号
python3 -m biliup -h 		#查看帮助信息

常见问题

常见问题可参考本站常见问题汇总,或者参考github wiki
注意:源码安装要运行需要将源码目录下config(demo).yaml重命名为config.yaml配置内容按需修改

user: # 在填了cookies的情况下优先使用cookies上传,如需使用用户名密码上传请注释掉cookies
#    cookies:
#        SESSDATA: your SESSDATA
#        bili_jct: your bili_jct
#        DedeUserID__ckMd5: your ckMd5
#        DedeUserID: your DedeUserID
#    access_token: your access_key
    account:
        username: your usrname
        password: your password

# b站上传线路选择,默认为自动模式,目前可手动切换为bda2, kodo, ws, qn
lines: AUTO
# b站提交接口,默认自动选择,可选web,client
#submit_api: client
# 单文件并发上传数,未达到带宽上限时增大此值可提高上传速度
threads: 3
# 录像单文件大小限制,单位Byte,超过此大小分段下载
file_size: 2621440000
# 录像单文件时间限制,格式'00:00:00'(时分秒),超过此大小分段下载,如需使用大小分段请注释此字段
#segment_time: '00:50:00'

streamers:
    星际2Stats拔本神族天梯第一视角: # 最小配置示例
        url:
            - https://www.twitch.tv/kimdaeyeob3
    星际2INnoVation吕布卫星人族天梯第一视角: # 完整可选配置示例
        url:
            - https://www.twitch.tv/innovation_s2
            - https://www.panda.tv/1160340
        title: "星际2INnoVation吕布卫星人族天梯第一视角%Y-%m-%d" # 自定义标题的时间格式
        tid: 171 # 投稿分区码,174为生活,其他分区
        copyright: 2 # 1为自制
        cover_path: /cover/up.jpg #设置视频封面
        description: 视频简介
        postprocessor: # 上传完成后,将按自定义顺序执行自定义操作
            - run: echo hello! # 执行任意命令,等同于在shell中运行,视频文件路径作为标准输入传入
            - mv: backup/ # 移动文件到backup目录下
#            - rm # 删除文件,为默认操作
        tags:
            - 星际争霸2
            - 电子竞技
        format: mp4 # 视频保存格式
        opt_args: # ffmpeg参数
            - '-ss' # 跳过开始的16秒
            - '00:00:16'

# 检测间隔时间,单位:秒
event_loop_interval: 40
# 相同平台检测间隔,单位:秒。不同平台的链接是并发的,不受此参数影响
checker_sleep: 15
# 线程池1大小,负责download事件
pool1_size: 3
# 线程池2大小,处理除download事件外所有其他事件
pool2_size: 3
# 检测源码文件变化间隔,单位:秒,检测源码到变化后,程序会在空闲时自动重启
check_sourcecode: 15
# 日志输出配置
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'
        simple:
            format: '%(filename)s%(lineno)d[%(levelname)s]Tname:%(threadName)s %(message)s'
    handlers:
        console:
            level: DEBUG
            class: logging.StreamHandler
            formatter: simple
            stream: ext://sys.stdout
        file:
            level: DEBUG
            class: biliup.common.log.SafeRotatingFileHandler
            when: W0
            interval: 1
            backupCount: 1
            filename: ds_update.log
            formatter: verbose
    root:
        handlers: [ console ]
        level: INFO
    loggers:
        biliup:
            handlers: [ file ]
            level: INFO
# 默认通过网页接口上传,可选通过操作chrome上传,此时需要填写chromedriver路径
#chromedriver_path: /usr/local/bin/chromedriver

Q.E.D.