1、使用的工具及实现思路
youtube-dl
用来获取直播源地址或者下载地址;ffmpeg
用来下载youtube-dl
获取的地址并切片;rclone
用来将下载录制的资源上传至网盘;screen
用来建立多个监控任务;scp
用来在两台服务器间传递数据,非必须。
首先用
youtube-dl
获取资源的下载录制地址,然后用ffmpeg
进行分段下载,最后用rclone
上传至自己的网盘。
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/ffmpeg
ffmpeg
的使用可以参见往期文章
安装rclone
curl https://rclone.org/install.sh | sudo bash
记得定期执行该命令以更新rclone至最新版
安装screen
#Debian/Ubuntu
apt-get install screen
#Centos
yum install screen
3.2下载脚本
密码为:sunsea.im
4、脚本使用方法
目前脚本基于双机实现,一台机器用于获取资源下载地址(find_m3u8),另一台机器接收下载地址后进行资源下载并上传至网盘(dl_m3u8+up.sh).
双机联动下载时一定要,提前设置
scp
的自动登录,设置方法见往期文章。
find_m3u8
文件夹、dl_m3u8
文件夹以及up.sh
文件都要放在/root
目录下,并且在/root
目录下建立rclone_tmp
文件夹,使用mkdir /root/rclone_tmp
完成。
脚本一共分为3部分
find_m3u8
文件夹用于获取下载地址并将地址传给资源下载机,下载机可以是本机也可是远程主机。dl_m3u8
文件夹用于下载获取到的地址。up.sh
用于上传下载的资源至网盘,rclone
绑定网盘请自行搜索。find_m3u8
文件夹解释
start.sh
地址获取脚本启动文件;find.sh
查找录制资源地址脚本,并将地址传递给下载机;list.txt
你要下载资源的网页地址,每行一条。
find.sh
中要修改远程主机的地址和端口,list.txt
文件不能以/
结尾
dl_m3u8
文件夹解释
start_dl.sh
下载脚本启动文件;dl_m3u8.sh
资源下载脚本文件;check.sh
进程检测并视情定时重启。
up.sh
脚本解释
该脚本用于将下载的资源上传到网盘,
rclone
绑定网盘请自行搜索
2 comments
大佬 要是指定时间断录 怎么搞 比如 开始 8点录 到9点就关闭 每天都这样
建一个计划任务,9点的时候kill掉所有的screen和check.sh,8点的时候再执行check.sh,就行了