基于轻量应用服务器使用yt-dl保存并取回油管/Twitch直播视频

直接拿obs录屏对于保存直播视频应该算是下下策了,能够直接拼接m3u8引导的ts流当然是最好的,研究了下You-get和Youtube-dl的文档简单分享下~

6.6那天有位朋友参加小学同学的聚会去了,这天刚好是MIKU EXPO 2021线上LIVE的直播,他就委托我给他录个屏以便他回来后欣赏。

基于轻量应用服务器使用yt-dl保存并取回油管/Twitch直播视频

直播的平台是Youtube和Twitch,事实上油管那边就是引个流,以至于下了半天没卵用的东西。

直接拿obs录屏对于保存直播视频应该算是下下策了,能够直接拼接m3u8引导的ts流当然是最好的,于是研究了下You-get和Youtube-dl的文档,在这简单分享下~


一、准备工作

首先肯定是一台访问Twitch和YouTube都很流畅的服务器,而且还要方便拖回本地处理。我在这推荐腾讯云的轻量应用服务器,价格便宜而且一来香港地区是30M的GIA网络,二来我可以通过内网copy到COS,然后拉满服务器带宽快速取回~

至于You-get和Youtube-dl的取舍,前者环境要求是py3,后者是py2.6+,因为笔者手里这台轻量还没有配置py3的环境自然优先考虑后者了。

(1)安装youtube-dl,用来下载直播切片

wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

(2)安装ffmpeg,用来拼接直播流切片

Debian/Ubuntu下安装非常方便:

apt install ffmpeg

CentOS7下下稍微麻烦一些(8需要对应的nux源):

#安装epel源
yum install epel-release -y
#导入Nux Dextop第三方源
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.rosudo 
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
#更新
yum update
#安装ffmpeg
yum install ffmpeg ffmpeg-devel -y

(3)安装screen

直接yum或者apt安装就是了,这个是为了防止录制过程中console断开导致程序结束。


二、下载视频

首先打开个screen窗口:

#创建名为live的screen窗口
screen -S live
#中断后返回screen窗口
screen -r live

然后直接用you-get下载即可,注意“[]”是要一起替换掉的,最后输出的文件名也不要重复~

youtube-dl -o - [油管/Twitch地址] | ffmpeg -i - -vcodec copy -acodec copy "live01.mp4"

录制的内容结束之后,直接结束即可,不会影响到录制的视频内嵌信息

ctrl+c

三、效果

传到COS的话之前测试过,基本上70m/s+的速度,注意下要想和COS内网通信只能使用腾讯云提供的默认DNS。

测试的时候直接在电信网络下取回来的速度基本跑满了30M,几个分段很快就取回来了。

然后直接拿视频裁剪工具掐头去尾,完美避免了转码导致的画质损失和不必要的转码时间花费。

本文来自开发者投稿,不代表腾讯云立场,转载请注明出处:https://computeinit.com/archives/3839

发表评论

登录后才能评论
交流群