使用到的所有环境版本:
系统:腾讯云ubuntu server 22.04 LTS、系统应用:python 3.10.6(系统自带的版本)、python3-dev、pip 22.0.2、biliup-rs 0.1.15

距离上次的biliup 0.1.9版本已经过去很久了,本次教程讲解安装最新的biliup 0.3.8,服务器的系统也是采用最新的ubuntu 22.04,正常来说也适用于ubuntu20.04,不过我比较懒没试过。本次仅针对录制bilibili的直播间,因为比较简单。

使用pip快速安装,推荐新手或不熟悉Linux的使用pip快速安装。

第一步:安装biliup
sudo pip3 install biliup
第二步:在保存文件的目录下创建配置文件,比如我这里是将文件保持到 /data/biliup 这个目录下
sudo touch /data/biliup/config.yaml
使用vi命令编辑文件
sudo vi /data/biliup/config.yaml
将文章末尾的配置文件示例粘贴进并修改即可
如果出现如下提示则表示你的目录不存在,需要先创建对应的目录,使用mkdir命令进行创建。
touch: cannot touch '/data/biliup/config.yaml': No such file or directory
第三步:安装biliup-rs依赖
cd ~
sudo wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
第四步:使用biliup-rs获取登录cookies.json
下载地址:https://github.com/ForgQi/biliup-rs/releases
cd ~
sudo wget https://github.com/ForgQi/biliup-rs/releases/download/v0.1.15/biliupR-v0.1.15-x86_64-linux.tar.xz
sudo tar -xvf biliupR-v0.1.15-x86_64-linux.tar.xz
cd biliupR-v0.1.15-x86_64-linux
sudo ./biliup login 
选择你要的登录方式,建议使用扫码登陆
登录后会在目录下自动生成一个cookies.json文件,将这个文件复制到biliup配置文件一个目录下,否则将无法上传文件到b站
第五步:运行biliup
运行biliup需要进入到有配置文件的目录下执行否则会报错找不到配置文件
cd /data/biliup
sudo biliup start #以后台模式运行
sudo biliup stop #结束biliup进程
sudo biliup restart #重启biliup进程

常见问题

常见问题可参考本站常见问题汇总,或者参考github wiki

# 选择全局默认上传插件,Noop为不上传,但会执行后处理,可选bili_web,biliup-rs
#uploader: Noop
#downloader: ffmpeg # 可选stream-gears

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


streamers:
    星际2Stats拔本神族天梯第一视角: # 最小配置示例
        url:
            - https://www.twitch.tv/kimdaeyeob3
    星际2INnoVation吕布卫星人族天梯第一视角: # 完整可选配置示例
        url:
            - https://www.twitch.tv/innovation_s2
            - https://www.panda.tv/1160340
        title: "{title}第一视角%Y-%m-%d" # 自定义标题的时间格式, {title}代表直播间标题
        tid: 171 # 投稿分区码,171为电子竞技分区 
        copyright: 2 # 1为自制
        cover_path: /cover/up.jpg
        description: |- # 支持strftime, {title}占位符。 希望你可以保留软件出处
         视频简介: {title} %Y-%m-%d %H:%M:%S
         ---
         Powered By biliup - Github: https://github.com/ForgQi/biliup
        dynamic: '#空间动态#'
        dtime: 14400 # 设置延时发布时间,距离提交大于2小时,格式为时间戳
        # 覆盖全局默认上传插件,Noop为不上传,但会执行后处理
        uploader: biliup-rs
        # 使用指定的账号上传
        user_cookie: cookies.json
        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 # 删除文件,为默认操作
        tags:
            - biliup # 希望你可以保留软件出处
            - 视频标签
        format: mp4 # 视频保存格式
        opt_args: # ffmpeg参数
            - '-ss' # 跳过开始的16秒
            - '00:00:16'

# 如遇到斗鱼录制卡顿可以尝试切换线路,tct-h5(备用线路5),ali-h5(备用线路6),akm-h5(主线路1)
#douyucdn: tct-h5
# 如遇到虎牙录制卡顿可以尝试切换线路,AL, HW, TX, WS
#huyacdn: AL
# 如遇到哔哩哔哩录制跳帧可以尝试修改platform值,web(flv),h5(m3u8)
#biliplatform: web
# 如需要录制抖音请在此填入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: 'aisjdoiuasdoihansdoh3ooi209'
# Netscape 格式的 Cookies 文本路径
#youtube_cookie: 'cookiejar.txt'
# b站提交接口,默认自动选择,可选web,client
#submit_api: client
# 检测到主播下播后延迟再次检测,单位:秒,避免特殊情况提早启动上传导致漏录
delay: 10
# 检测间隔时间,单位:秒
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
#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
#    app_key: bca7e84c2d947ac6 # 若账号密码方式无法登录可尝试更改此值
#    appsec: 60698ba2f68e01ce44738920a0ffe768