实现抖音直播自动录制并上传百度云

鉴于抖音直播有时会分享一些很干货的内容,甚至有手把手教学的直播,为了不错过这些直播内容,很有必要对直播进行录播,以便后续随时能观看学习

根据上面的需求,我简单的研究了一下抖音自动录播并上传云盘的功能,下面是所使用的环境和工具:

  • CentOS7系统
  • Python 3.0以上
  • Screen工具
  • bypy工具
  • Global Speed插件

这个方法掌握了不仅可以用来录制抖音直播,也可以用来录制斗鱼、B站等等直播平台的直播,后期拿来学习或者剪辑视频都十分方便

抖音自动录制脚本

首先下载抖音录播脚本,脚本仓库地址:https://github.com/ihmily/DouyinLiveRecorder

仓库文档中介绍了脚本运行方法,下面搬运一下源码运行方法

1.首先拉取或手动下载本仓库项目代码

1
git clone https://github.com/ihmily/DouyinLiveRecorder.git

2.进入项目文件夹,安装依赖

1
2
cd DouyinLiveRecorder
pip3 install -r requirements.txt

3.安装FFmpeg,如果是Windows系统,这一步可跳过。对于Linux系统,执行以下命令安装

CentOS执行

1
2
yum install epel-release
yum install ffmpeg

Ubuntu则执行

1
2
apt update
apt install ffmpeg

4.修改配置文件,配置文件位于/DouyinLiveRecorder/config/目录下

1
cd config

首先修改直播录屏配置文件config.ini,里面有几个参数建议配置

image.png

抖音cookie就是去抖音官网抓个包,提取其中cookie值,这个不多说

然后配置文件URL_config.ini,每行填入一个要录制的直播间地址,地址格式有以下两种

image.png

5.配置完毕后运行脚本,脚本便会自动开始监测直播是否开启

1
python3 main.py

image.png

直播录屏文件默认保存到/root/DouyinLiveRecorder/downloads/抖音直播/路径下

脚本后台运行

为了防止退出云服务器远程后中断脚本运行,并且可以随时查看脚本运行状态,因此考虑使用使用screen工具运行脚本

screen是一个在Unix/Linux系统下常用的终端多重复用工具,可以创建多个虚拟终端会话,并在这些会话之间切换,能有效的实现指令后台运行不中断

没安装过screen的首先进行安装

1
yum -y install screen

然后创建一个新的终端用于运行抖音直播监测录屏脚本

1
Screen -R douyin

进入刚下载的抖音直播录制脚本并运行,开始持续监测直播开启状况

1
2
cd DouyinLiveRecorder
python3 main.py

运行后按住Ctrl+A+D可以退出该终端,让它在后台运行

如果后续需要进入该终端进行操作,输入下面的指令进入指定终端

1
screen -r douyin

自动上传百度云

上面配置完便可以自动录制直播并保存到云服务器,但由于云服务器容量有限,长时间录制很容易会挤满磁盘空间,占据大量存储空间

为了解决这个问题,通过bypy工具可以将直播录屏上传到百度云网盘,还能方便后续随时随地在线浏览

首先安装bypy工具

1
pip3 install bypy

设置一下别名,方便后续便捷使用指令

1
alias bypy='python3 -m bypy'

为了更方便使用,修改配置绑定bypy快捷运行指令别名

1
2
3
4
5
vim ~/.bash_profile
# 在文件最后插入下面别名设置
alias bypy='python -m bypy'
# 刷新配置文件
source ~/.bash_profile

然后授权百度云账号信息,将指令中提供的授权链接复制到浏览器打开,然后复制授权码回到指令栏填入

1
bypy info

image.png

bypy操作指令不少,下面主要介绍要用到的上传指令,上传方式有下面两种

upload:直接上传,不管百度网盘指定目录下是否有重复文件

1
bypy upload <本地文件或目录路径> [远程目标路径]

syncup:同步文件,如果百度网盘已有重复文件则不上传,仅上传网盘不存在文件

1
bypy syncup <本地文件或目录路径> [远程目标路径]

更推荐使用后者,同步文件仅匹配远程目录不存在本地目录某些文件时才会上传该文件

由于bypy仅允许上传到百度云我的应用数据/bypy/目录下,并且远程目录不存在时不会自动新建目录,因此需要提前在bypy指令运行前在百度云上传路径下新建对应的目录名称

例如我们要执行的指令为同步“神州摄影”录播到百度云

1
bypy syncup dowload/抖音直播/神州摄影/ 神州摄影

为了防止找不到上传目录,需要提前在百度云上传路径下新建“神州摄影”的文件夹

image.png

定时任务自动执行

通过bypy我们可以实现使用指令将本地直播录屏文件上传到百度云,但这需要我们手动输入和调整指令,不够智能化

下面我编写了一个shell脚本,运行该脚本便能自动获取所有录播文件目录名称,并分别将其目录下的所有文件上传到百度云的对应目录下

我的DouyinLiveRecorder脚本安装在/root/DouyinLiveRecorder路径,运行脚本前记得将路径修改为你DouyinLiveRecorder脚本的安装路径

云服务器保存下面的脚本后,记得使用chmod +x指令赋予脚本执行权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

# 记录脚本自动运行时间
current_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "======================================="
echo "当前时间: $current_time"

# 指定目录路径,读取目录下的所有子目录名
directory="/root/DouyinLiveRecorder/downloads/抖音直播/"
directories=($(find "$directory" -mindepth 1 -maxdepth 1 -type d -exec basename {} \;))

# 便利数组,将
for dir in "${directories[@]}"
do
echo "$dir"
echo "开始同步[$dir]直播录屏.."
bypy syncup /root/DouyinLiveRecorder/downloads/抖音直播/$dir/ $dir
echo "直播录屏已同步至云盘"
rm -rf /root/DouyinLiveRecorder/downloads/抖音直播/$dir/*
echo "清除[$dir]本地直播录屏文件完成"
done

通过上面脚本实现自动上传百度云,再结合定时任务便可以实现每日定时上传

首先编辑定时任务文件

1
vim /etc/crontab

在最后一行插入下面指令,意思是每天凌晨5点以root身份运行后面的指令,通过名称为bypy的screen终端运行指定路径下的tongbu.sh脚本,也就是我们上面编写的脚本

1
0 5 * * * root screen -r bypy -X stuff '/root/DouyinLiveRecorder/downloads/tongbu.sh\n'

保存定时任务后,为了防止screen找不到对应终端,先使用screen -R bypy创建对应的终端,再按ctrl+A+D退出终端

视频加速播放

通过百度云在线观看我们上传的视频,当想要倍速播放的时候就会看到这个讨厌的家伙

image.png

解决方法也很简单,就是装个浏览器插件,我这里推荐Edge浏览器的【Global Speed: 视频速度控制】插件,可以加速浏览器上所有视频,并且最高支持16倍速播放,甚至可以用来刷课

下载地址:Global Speed: 视频速度控制 - Microsoft Edge Addons

直接1.75倍速播放,享受极致学习体验

image.png




👨‍💻本站由 @鱼龙 使用 Stellar 主题创建

📃本"页面"访问 次 | 👀总访问 次 | 🥷总访客

⏱️本站已运行 小时