全自动录播、投稿工具,支持twitch、YouTube频道搬运,提供Python分p上传b站接口
本文使用的环境如下:windows server 2016、python 3.9.10、quickjs 1.17、ffmpeg version git-2020-08-31-4a11a6f、biliup 0.2.2、notepad++ 8.3.3

第一步:安装python

前往官网下载推荐使用3.8.10或3.9.10的版本,不太建议使用最新的3.10版本。
图片.png
直接点击windows installer即可进行下载,根据对应系统位数选择对应的版本(64或32)。
图片.png
安装时一定要勾选上 Add Python 3.9 to PATH 勾选后python会自动添加系统环境变量无需手动添加。
如不想使用默认的安装路径可以选择 Customize installation 进行自定义安装更改安装路径,完全保持默认直接选择 Install Now即可进行安装。
图片.png
安装完后建议先选择 Disable path length limit 避免因为路径过长报错,后点击 Close 关闭窗口。
验证安装是否正常
Windows+R键 输入cmd 回车后输入python -V 有返回版本号说明安装成功,如没有返回版本号请卸载从新按照步骤进行安装。

### 第二步:安装js处理程序,quickjs或者nodejs均可
本文使用python安装quickjs
Windows+R键 输入cmd 回车后输入pip install quickjs
验证安装是否正常
Windows+R键 输入cmd 回车后输入pip list 有看见quickjs 即已安装成功

第三步:安装ffmpeg

安装ffmpeg过程可以参考:https://blog.waitsaber.org/archives/97

第四步:安装biliup

使用pip快速获取并安装biliup
打开cmd 输入pip install biliup 即可进行安装
验证安装是否正常
Windows+R键 输入cmd 回车后输入 biliup --version
有返回版本号说明安装成功

第五步:安装notepad++或者editpule编辑配置文件

notepad++官网 Editpule官网
在文件保存目录下右键新建文本文档,重命名为config.yaml 使用notepad++进行编辑,左键双击右下角的windwos(CR LF) 选择 Unix 将文本转换为Unix编码格式 否则程序无法识别。
将文末的 配置文件示例粘贴进config.yaml 参照注释进行修改。
图片.png

第六步:运行biliup

Windows+R键 输入cmd 回车后输入 cd -d 配置文件所在目录(例:C:\Program Files\biliup)
输入 biliup 回车 即可运行注意不要关闭窗口,关闭窗口就关闭了程序,直接最小化窗口即可。
在windows环境下并没有像linux那样方便可以使用后台模式运行,windows环境下运行命令只有一个即 biliup
linux下的biliup stop、biliup restart均无法使用。
如需关闭直接关闭窗口即可,重启需要关闭窗口后再执行开始命令。

常见问题

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

配置文件示例

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 

# 选择上传插件
uploader: bili_web
# 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'
filtering_threshold: 20 # 小于此大小的视频文件将会被过滤删除,单位MB
# 如遇到斗鱼录制卡顿可以尝试切换线路,tct-h5(备用线路5),ali-h5(备用线路6),akm-h5(主线路1)
#douyucdn: tct-h5
# 如遇到虎牙录制卡顿可以尝试切换线路,AL(阿里),BD(百度),TX(腾讯)
#huyacdn: AL
# 如遇到哔哩哔哩录制跳帧可以尝试修改platform值,web(flv),h5(m3u8)
#biliplatform: web

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 # 投稿分区码,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