前言

在read by key 里我介绍了apache2网页服务器的搭建,可能大家会发现直接用ftp工具下载无法完全发挥服务器的带宽速度,这时我们其实可以利用Youtube-dl来配合我们快速的下载媒体文件,从而实现媒体文件的快速的保存,同时可以实时用手机或者其他电脑在线播放

youtube-dl项目地址:https://ytdl-org.github.io/youtube-dl/index.html


工具准备:youtube-dl、ffmpeg、python3+
演示环境:debian10

Step1 工具安装

首先用Xshell连接你的服务器,连接好后输入以下命令安装相应的工具

#安装Youtube-dl
#方式一
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/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

然后再安装ffmpeg

apt-get install ffmpeg-y

安装好后我们就可以开始去油管下视频了,当然youtube-dl还支持其他的网站
更多支持的网站:https://ytdl-org.github.io/youtube-dl/supportedsites.html

step2 下载视频到服务器上

youtube-dl的几个常用命令

#获取视频各种清晰度的format code
youtube-dl --list-formats [url]
#下载视频或音频
youtube-dl -f [format code] [url]
#更新youtube-dl工具
youtube-dl -U

下面以这个地址为例:https://www.youtube.com/watch?v=RqS_PxMHqV8
tips:使用前可以先cd 进入到你想将视频下载到的目录下
第一步获取清晰度对应的format code

youtube-dl --list-formats https://www.youtube.com/watch?v=RqS_PxMHqV8

example1
由于youtube高画质的视频是采用视频和音频分离的
因此我们如果要下载高质量的视频,需要同时记录下音频(audio)和视频(video)的format code
同时记住要这样组合:
* m4a+mp4
* webm(audio)+webm(video)

下面我选择140(audio)和137(video)的组合

#视频在前音频在后
youtube-dl -f 137+140 https://www.youtube.com/watch?v=RqS_PxMHqV8


下载好后可以打开web服务器检验以下

display

是不是很简单啊,快去体验下吧😜!


F&Q
1.上述apache页面是怎么实现的?
a:请参考read by key文章中的apache2网页服务器的搭建
2.其他系统的ffmpeg怎么装?
a:
Centos7安装方法

#首先安装EPEL Release
yum install epel-release -y
yum repolist
#导入code和nux源
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
#然后安装ffmpeg
yum install ffmpeg ffmpeg-devel -y

Debian9安装方法

#直接更新package list
apt-get update
#然后安装ffmpeg
apt-get install ffmpeg

参考文章:
1.
https://www.vultr.com/docs/how-to-install-ffmpeg-on-debian-8-or-9
2.http://www.novicepq.com/2018/06/04/vps%e4%b8%ad%e5%ae%89%e8%a3%85ffmpeg%e8%a7%86%e9%a2%91%e8%a7%a3%e7%a0%81%e8%bd%af%e4%bb%b6/


一花一世界,亘古任我行。