使用youtube-dl、ffmpeg、rclone实现分段下载录制并自动上传至网盘
1、使用的工具及实现思路
youtube-dl用来获取直播源地址或者下载地址;ffmpeg用来下载youtube-dl获取的地址并切片;rclone用来将下载录制的资源上传至网盘;screen用来建立多个监控任务;scp用来在两台服务器间传递数据,非必须。
[scode type="blue"]首先用youtube-dl获取资源的下载录制地址,然后用ffmpeg进行分段下载,最后用rclone上传至自己的网盘。[/scode]
2、方案优点
- 对VPS硬盘大小要求较低,可以长时间录制下载;
- 可以根据VPS硬盘大小以及同时下载资源的个数自定义ffmpeg分段的时间;
- 由于可控制资源下载的大小,从而避免上传过大文件至网盘而出错;
- 可以根据VPS的配置及性能,调整方案,多机联动。
3、部署
3.1安装所需工具
安装youtube-dl
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl日后升级可以用youtube-dl -U进行
安装ffmpeg
sudo wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
tar xvf ffmpeg-git-amd64-static.tar.xz
cd ffmpeg*
cp ffmpeg /usr/local/bin/
sudo chmod a+rx /usr/local/bin/ffmpegffmpeg的使用可以参见往期文章
[post cid="18" /]
安装rclone
curl https://rclone.org/install.sh | sudo bash[scode type="blue"]记得定期执行该命令以更新rclone至最新版[/scode]
安装screen
#Debian/Ubuntu
apt-get install screen
#Centos
yum install screen3.2下载脚本
[button color="success" icon="" url="https://www.lanzous.com/b06rggpof" type=""]点此下载脚本[/button]
[scode type="blue"]密码为:sunsea.im[/scode]
4、脚本使用方法
[scode type="yellow"]目前脚本基于双机实现,一台机器用于获取资源下载地址(find_m3u8),另一台机器接收下载地址后进行资源下载并上传至网盘(dl_m3u8+up.sh).[/scode]
[scode type="red"]双机联动下载时一定要,提前设置scp的自动登录,设置方法见往期文章。[/scode]
[post cid="52" /]
[scode type="green"]find_m3u8文件夹、dl_m3u8文件夹以及up.sh文件都要放在/root目录下,并且在/root目录下建立rclone_tmp文件夹,使用mkdir /root/rclone_tmp完成。[/scode]
[scode type="blue"]脚本一共分为3部分[/scode]find_m3u8文件夹用于获取下载地址并将地址传给资源下载机,下载机可以是本机也可是远程主机。dl_m3u8文件夹用于下载获取到的地址。up.sh用于上传下载的资源至网盘,rclone绑定网盘请自行搜索。
find_m3u8文件夹解释
start.sh地址获取脚本启动文件;find.sh查找录制资源地址脚本,并将地址传递给下载机;list.txt你要下载资源的网页地址,每行一条。
[scode type="yellow"]find.sh中要修改远程主机的地址和端口,list.txt文件不能以/结尾[/scode]
dl_m3u8文件夹解释
start_dl.sh下载脚本启动文件;dl_m3u8.sh资源下载脚本文件;check.sh进程检测并视情定时重启。
up.sh脚本解释
[scode type="blue"]该脚本用于将下载的资源上传到网盘,rclone绑定网盘请自行搜索[/scode]