配置环境

系统环境: 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   #粘贴下面配置文件 自行修改
# 选择全局默认上传插件,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>                                       视频标题

标签: none

添加新评论