打造全自动B站录播机

前言

随着B站虚拟主播越来越多,很多主播/粉丝都有录播的需求。当然不是粉丝也可以做录播。现在录播基本上都是在服务器上实时监测,监测到主播开播之后就会自动开始录播。就我个人而言,录播可能是防止错过关注的主播直播,或者是没时间看,就看看录播。还有就是看看有没有好玩的地方可以做成切片素材,这样可以做成切片上传到B站,也可以获得一定的收益(聊胜于无,但可以用来支付服务器开销)。

这种全自动的录播机也可以帮你赚到钱,前提是你自己能去主动找主播推荐自己的切片服务。你可以收取技术指导费,然后教主播怎么弄。也可以直接提供全自动录播上传一条龙服务,然后主播按月付费这种形式。推荐找几万粉的小虚拟主播谈这个,因为粉丝多了自然会有人自发去做这个。几万粉的小主播有一定的直播收入来源,忠实粉丝相对较少,不一定有能且愿意的人。商业化的方向请自行探索。这里提到的只供参考。

工具选择

我这里介绍两个工具,他们各自都有各自的特点。看你自己喜欢哪一个

1、BililiveRecorder 又名B站录播姬

源码:BililiveRecorder

特点:

  • 使用简单
  • 主播开播后自动开始录制
  • 同时录制多个直播间
  • 自动修复B站直播服务器导致的各种问题
  • 工具箱模式,用于修复旧版录播姬或其他软件录的视频文件
  • 纯 C# 实现,无 ffmpeg 等 native 依赖

拥有图形化界面,操作简单。可以快速添加房号,可以在线播放,存储弹幕信息。支持webhook

缺点:无法进行投稿。可以使用其他B站投稿程序进行投稿。如**auto-bilibili-recorder**

界面:

webui

房间列表

文件管理器

设置

日志

file/文件浏览器

播放页:

2、biliup

  • 支持自动录制各大主流直播平台实时直播流,包括但不限于acfun,afreecaTV,哔哩哔哩,斗鱼,抖音,虎牙,网易CC,猫耳FM,Twitch,YY直播等,并于录制结束后上传到哔哩哔哩视频网站。
  • 支持YouTube,twitch直播回放列表自动搬运至b站,如链接https://www.twitch.tv/xxxx/videos?filter=archives&sort=time
  • 自动选择上传线路,保证国内外vps上传质量和速度
  • 可分别控制下载与上传并发量
  • 支持 cos-internal,腾讯云上海内网上传,免流 + 大幅提速
  • 实验性功能:
    • 防止录制花屏
    • 启动时加入--http选项并访问localhost:19159可使用webUI (建议使用toml配置文件)

缺点就是配置较为繁琐,其他都还行。

请根据自己的需求选择上面的程序。

教程

1、服务器选择与购买

服务器我选择的是腾讯云的轻量云,地域是上海。主要是B站上传投稿有一条线路是COS内网。选择上海的轻量服务器,可以直接走内网上传到COS,速度肯定是拉满的。其次是B站的直播分发主要还是国内,所以能选国内服务器尽量还是选择国内服务器。

轻量服务器应用专场:活动地址

最低配置:2C2G4M 50GB SSD

推荐配置:4C8G12M 180GB SSD

推荐选择4C8G12M的服务器。主要是硬盘不能太小,不然录制原画画质的情况下15分钟左右文件大小就有1GB了,遇上高强度直播的主播,硬盘太小可能撑不到一场直播结束就塞满了。

正常主播推流的画质大约在3-8000的码率,可以根据你需要录播的主播平常时长和推流码率来选择服务器硬盘大小。如果你有在线播放的需求,还得看服务器带宽,最好不低于6M,推荐8M及以上。

另外就是如果有长时间存储的需求,可以考虑购买COS存储资源包,和额外的云硬盘。

你可以挂载额外的云硬盘来同时录播多位主播,根据你自己的业务需求来就行。然后设置个定时脚本每天白天或者凌晨上传前一天的录播文件到COS桶里。(不推荐直接设置挂载COS桶的路径为录播文件存储路径。会造成大量的读写操作还容易损坏文件。)

地域一定要选择上海,镜像选择宝塔面板即可,后面也可以在控制台进行更换。

云硬盘设置:直接轻量服务器控制台——云硬盘——地域(上海)——更多——挂载到服务器即可

初始化云硬盘可以参照腾讯云官方文档进行操作。

服务器防火墙:可以直接开放全部端口,也可以开放指定端口如2356.

如果用的宝塔面板,后续也需要在面板的安全选项里进行开发端口

2、软件安装及使用

2.1 B站录播姬安装及使用

项目地址:https://github.com/BililiveRecorder/BililiveRecorder

2.1.1 安装
  1. mkdir brec

  2. cd brec

  3. # wget 下载链接

  4. unzip BililiveRecorder-CLI-linux-x64.zip

进入GitHub release页面下载最新的linux x64命令行版本获取下载链接,国内服务器可能与github连通性不好,可以使用加速连接进行下载

  1. Github:

  2. https://github.com/BililiveRecorder/BililiveRecorder/releases/latest/download/BililiveRecorder-CLI-linux-x64.zip

  3. 加速连接:

  4. https://ghproxy.com/https://github.com/BililiveRecorder/BililiveRecorder/releases/latest/download/BililiveRecorder-CLI-linux-x64.zip

添加执行权限

  1. chmod +x BililiveRecorder.Cli

检查版本号

  1. ./BililiveRecorder.Cli --version

为了后续方便可以修改BililiveRecorder.Clibrec

  1. mv BililiveRecorder.Cli brec

2.1.2 使用

可以先创建一个工作目录,第一运行程序会自动生成一个配置文件。然后重新启动程序即可这里以file为工作目录。Ctrl+C退出

  1. mkdir file

  2. ./brec run file

**录播姬命令行版提供了 HTTP API 和管理网页,可以通过 **--bind 参数启用。需要防火墙和宝塔都开放2356端口

  1. # 侦听本机地址,只有本地可以访问

  2. ./brec run --bind "http://localhost:2356" "工作目录"

  3. # 或者所有设备都可访问,开放至公网推荐开启登陆认证

  4. ./brec run --bind "http://*:2356" "工作目录"

登录认证

  1. ./brec run --bind "http://*:2356" --http-basic-user "用户名" --http-basic-pass "密码" "工作目录"

由于录播无所谓其他用户,基本上只有自己在用,所以基本不需要用域名或者https。如果你需要的话可以直接通过宝塔自带的反向代理功能实现。

2.1.3 持久化运行

创建服务:

新建一个文件:

  1. nano /etc/systemd/system/brec.service

写入以下内容:注意根据你自己的实际情况调整ExecStart=后的文件路径和参数 nano编辑器Ctrl+O为保存,Ctrl+X为退出

  1. [Unit]

  2. Description=BililiveRecorder

  3. After=network.target

  4. [Service]

  5. ExecStart=录播姬所在位置/BililiveRecorder.Cli run --bind "http://*:2356" --http-basic-user "用户名" --http-basic-pass "密码" "录播工作目录"

  6. [Install]

  7. WantedBy=multi-user.target

然后重启服务:

  1. systemctl daemon-reload

每次修改配置都要重启一次。

启动录播姬

  1. systemctl start brec

设置开机启动

  1. systemctl enable brec

  2. systemctl disable brec #禁用开机启动

其他命令

  1. #查看运行状态

  2. systemctl status brec

  3. #运行、停止、重启

  4. systemctl start brec

  5. systemctl stop brec

  6. systemctl restart brec

  7. #查看日志

  8. journalctl -u brec.service

2.1.4 软件设置

进入webUI页面,使用方法也很简单

房间号可以直接填数字,也可以直接复制链接

比如https://live.bilibili.com/6 是LPL的赛事直播间,可以填6也可以全部填上去。

针对单一主播可以单独设置

全局设置:

如果需要上传投稿,可以搭配biliup-rs。这是下面我们要介绍的biliup的命令行版投稿工具。可以参考下面的教程。

2.2 biliup的安装及使用

项目地址:https://github.com/biliup/biliup

2.2.1 安装

不推荐使用centos,如果搭建这个项目建议还是更换系统为Debian或者Ubuntu

Debian、Ubuntu

  1. 第一步:安装python3-dev

  2. apt install python3-dev

  3. apt install python3-pip

  4. 第二步:安装ffmpeg

  5. apt install ffmpeg

  6. 第三步:安装nodejs

  7. apt install nodejs

  8. 第四步:安装biliup

  9. pip3 install biliup

2.2.2 使用

首先要创建配置文件

  1. mkdir biliup

  2. cd biliup

  3. nano config.yaml

配置文件内容根据自己情况进行修改

最小配置示例:

  1. user:

  2.   cookies:

  3.       SESSDATA: your SESSDATA

  4.       bili_jct: your bili_jct

  5.       DedeUserID__ckMd5: your ckMd5

  6.       DedeUserID: your DedeUserID

  7.   access_token: your access_key

  8. streamers:

  9.   xxx直播录像:

  10.       url:

  11.           - https://www.twitch.tv/xxx

  12.       tags: biliup

  1. #config.yaml配置文件示例

  2. user: # 在填了cookies的情况下优先使用cookies上传,如需使用用户名密码上传请注释掉cookies

  3. #   cookies:

  4. #       SESSDATA: your SESSDATA

  5. #       bili_jct: your bili_jct

  6. #       DedeUserID__ckMd5: your ckMd5

  7. #       DedeUserID: your DedeUserID

  8. #   access_token: your access_key

  9.   account:

  10.       username: your usrname

  11.       password: your password

  12. #   app_key: bca7e84c2d947ac6 # 若账号密码方式无法登录可尝试更改此值

  13. #   appsec: 60698ba2f68e01ce44738920a0ffe768 # 值可以参考 https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/other/API_auth.md

  14. # b站上传线路选择,默认为自动模式,目前可手动切换为bda2, kodo, ws, qn

  15. lines: AUTO

  16. # b站提交接口,默认自动选择,可选web,client

  17. #submit_api: client

  18. # 单文件并发上传数,未达到带宽上限时增大此值可提高上传速度

  19. threads: 3

  20. # 录像单文件大小限制,单位Byte,超过此大小分段下载

  21. file_size: 2621440000

  22. # 录像单文件时间限制,格式'00:00:00'(时分秒),超过此大小分段下载,如需使用大小分段请注释此字段

  23. #segment_time: '00:50:00'

  24. #douyucdn: tct-h5

  25. # 如遇到斗鱼录制卡顿可以尝试切换线路,tct-h5(备用线路5),ali-h5(备用线路6),akm-h5(主线路1)

  26. #huyacdn: AL

  27. # 如遇到虎牙录制卡顿可以尝试切换线路,AL(阿里),BD(百度),TX(腾讯)

  28. streamers:

  29.   星际2Stats拔本神族天梯第一视角: # 最小配置示例

  30.       url:

  31.           - https://www.twitch.tv/kimdaeyeob3

  32.   星际2INnoVation吕布卫星人族天梯第一视角: # 完整可选配置示例

  33.       url:

  34.           - https://www.twitch.tv/innovation_s2

  35.           - https://www.panda.tv/1160340

  36.       title: "星际2INnoVation吕布卫星人族天梯第一视角%Y-%m-%d" # 自定义标题的时间格式

  37.       tid: 171 # 投稿分区码,174为生活,其他分区

  38.       copyright: 2 # 1为自制

  39.       cover_path: /cover/up.jpg #设置视频封面

  40.       description: 视频简介

  41.       postprocessor: # 上传完成后,将按自定义顺序执行自定义操作

  42.           - run: echo hello! # 执行任意命令,等同于在shell中运行,视频文件路径作为标准输入传入

  43.           - mv: backup/ # 移动文件到backup目录下

  44.           #- rm # 删除文件,为默认操作

  45.       tags:

  46.           - 星际争霸2

  47.           - 电子竞技

  48.       format: mp4 # 视频保存格式

  49.       opt_args: # ffmpeg参数

  50.           - '-ss' # 跳过开始的16秒

  51.           - '00:00:16'

如果需要获取cookie,推荐Chrome商店搜索EditThisCookie插件来获取。

常用命令:

  1. #biliup常用命令

  2. # 启动

  3. python3 -m biliup start

  4. # 退出

  5. python3 -m biliup stop

  6. # 重启

  7. python3 -m biliup restart

  8. # 查看版本

  9. python3 -m biliup --version

  10. # 显示帮助以查看更多选项

  11. python3 -m biliup -h

然后我们启动它就会全自动托管了。

这个非常适合作为接单工具。毕竟商业化不讲究那些乱七八糟的,只要能投入产出比高就行。只要一开始设置好后面就基本上不用管了。

2.2.3 API调用

我们可以只把biliup当做一个库来调用。

上传

  1. from biliup.plugins.bili_webup import BiliBili, Data

  2. video = Data()

  3. video.title = '视频标题'

  4. video.desc = '视频简介'

  5. video.source = '添加转载地址说明'

  6. # 设置视频分区,默认为160 生活分区

  7. video.tid = 171

  8. video.set_tag(['星际争霸2', '电子竞技'])

  9. with BiliBili(video) as bili:

  10.   bili.login_by_password("username", "password")

  11.   for file in file_list:

  12.       video_part = bili.upload_file(file) # 上传视频

  13.       video.append(video_part) # 添加已经上传的视频

  14.   video.cover = bili.cover_up('/cover_path').replace('http:', '')

  15.   ret = bili.submit() # 提交视频

下载

  1. from biliup.downloader import download

  2. download('文件名', 'https://www.panda.tv/1150595', suffix='flv')

3、注意事项

1、项目运行初期建议大家多去腾讯云的控制台多看看服务器资源占用情况。避免服务出现中断。也方便我们根据服务器状态来开拓业务。

2、上传投稿建议用小号,不推荐使用自己的大号。

3、注意保护你的服务器及B站账号安全,避免被入侵泄露。

总结

直播录像虽然看的人不多,但是基本上有一定数量的忠实粉丝的主播都不可或缺。同时也是在记录着主播的成长。如果是转载其他平台的视频、录播到B站获取收益也是有一定的受众的。

工具其实大家都会玩,怎么用这些工具获取更多的收益(无论是金钱还是流量还是粉丝)其实都是看个人怎么运作。

之前B站出现的卧龙寺、大霓奈靠工具搬运海量搞笑视频的账号个个都是几十万粉,本质上也都是一种应用罢了。甚至是把B站当做备份的索尼音乐(17.5万个投稿)也是。

不过我还是希望大家不要滥用,合理的规划,认真的对待自己的账号才是最好的。

参考:

https://github.com/biliup/biliup

https://github.com/BililiveRecorder/BililiveRecorder

https://blog.waitsaber.org/archives/129