月下博客

使用Youtube-dl离线下载YouTube视频并且VPS上在线观看

本文最后更新于 2018年9月20日 20:11 可能会因为没有更新而失效。如已失效或需要修正,请留言!

在一些特殊的条件需求下,一些人可能需要vps离线下载视频,或者在不科学上网的情况下在线观看。

有人给我推荐了Youtube-dl,的确很强大,这篇文章只是简单介绍一下Youtube-dl的基础功能和如何在自己的VPS上面在线观看。


如果你只是想要简单的下载youtube视频到本地,请看这个:教你如何从YouTube上下载视频

安装步骤

安装很简单,Youtube-dl支持Windows,Linux,OS X,etc等系统,这次主要介绍Linux系统。

以下代码不一定是最新的,最新的请去 官方下载中心 查看。

Linux系统安装:

以下三种下载安装方式选择一个就行了。

curl -L https://yt-dl.org/downloads/2016.07.13/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

如果你的vps没有安装 curl ,可以使用 wget 来下载。

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

当然你也可以用pip来安装,如果你没有pip就先安装pip, apt-get install python-pip -y

pip install --upgrade youtube_dl

OS X系统安装:

wget https://yt-dl.org/downloads/2016.07.13/youtube-dl.sig -O youtube-dl.sig
gpg --verify youtube-dl.sig /usr/local/bin/youtube-dl
rm youtube-dl.sig

Windows系统安装:

直接官方下载一个exe文件就行了。

Windows exe

但是,要运行这个程序还需要安装微软的运行库。

Microsoft Visual C++ 2010 Redistributable Package (x86)

基础功能介绍

Youtube-dl的官网是:http://rg3.github.io/youtube-dl/

Github项目地址是:https://github.com/rg3/youtube-dl

在这里都能看到最新最全的youtube-dl信息。

Youtube-dl支持八百多家视频网站,具体列表可以看这里:http://rg3.github.io/youtube-dl/supportedsites.html ,优酷、爱奇艺等国内视频网站也是支持的。

下载视频

以下教程均以 这个youtube视频链接为例 https://www.youtube.com/watch?v=jK5coaM2X9g

最基础的下载视频的方法很简单,直接 youtube-dl URL

youtube-dl https://www.youtube.com/watch?v=jK5coaM2X9g

这样就会自动选择一个最好的视频格式和清晰度下载到 当前的文件夹 了。

如果想把这个视频的所有格式都下载下来怎么办?

下载全部格式

youtube-dl  --all-formats https://www.youtube.com/watch?v=jK5coaM2X9g

–all-formats :添加这个参数之后,所有存在的格式全部下载;

但是你又不想全部下载,想挑选指定视频的格式和清晰度怎么办?

列出视频的所有格式/清晰度

–list-formats/-F:这是一个列清单参数,执行后并不会下载视频,但能知道这个目标视频都有哪些格式存在,这样就可以有选择的下载啦!

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

然后就会看到一大片的视频格式,如果你要下载其中一个,请看前面第一列的编号ID。

下载指定格式视频

-f + 编号:通过上一步获取到了所有视频格式的列表,第一列就是编号对应着不同的格式,例如我想下载22号那个mp4格式分辨率为1280*720的视频,则按下面的命令就可以轻松指定下载视频哦;

youtube-dl -f 22 https://www.youtube.com/watch?v=jK5coaM2X9g

离线下载/后台下载

我发现Youtube-dl不带有后台下载的功能,或者说我没找到命令,不过没事,可以使用 screen 来实现。

首先如果你没有安装 screen 的话请先安装。

Debian/Ubuntu系统安装:

apt-get update
apt-get install screen

Centos系统安装:

yum update
yum install screen

然后用 -S 创建一个活动,这时候你就进入了这个活动中,你就可以去下载视频了,这时候即使关闭ssh也不会断开下载。

screen -S video

如果你不小心关闭ssh或者想要重新查看 video活动,可以用 -r 来重新进入这个活动

screen -r video

VPS中在线播放

这个其实很简单,HTML5本身就可以去播放指定格式的视频,所以我们只需要搭建一个nginx或者apache,把视频下载到默认虚拟主机的文件夹里,就可以在线观看了。

示例:逗比云

还有你也可以试一下:『原创』SimpleHTTPServer 快速搭建HTTP Web服务 + 一键脚本

这个工具,可以方便的开放一个HTTP服务(可能不够稳定),可以让你在线观看或者下载开放文件夹里面的文件。

需要注意的是,HTML5支持在线播放的格式有限,建议下载 mp4 和 Webm 格式的,免得HTML5无法在线播放。

为了方便长期使用,这里安装 Caddy,挺简单的一个HTTP Server。

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

安装Caddy成功后,继续新建一个虚拟主机文件夹,

mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/youtube

写入配置到 Caddy 配置文件,注意下面这五行要一起复制粘贴,不是一行一行复制!如果要绑定域名,可以把 :80 { 改成域名比如 http://tooyo.ml{

# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo ":80 {
 root /usr/local/caddy/www/youtube
 timeouts none
 gzip
 browse
}" > /usr/local/caddy/Caddyfile

然后启动 Caddy即可

service caddy start

以后去 /usr/local/caddy/www/youtube 目录下载视频就行了。

cd /usr/local/caddy/www/youtube

然后打开网页: http://VPS_IP 就可以看到当前文件夹下面的文件,点击任意一个 mp4文件就可以在线观看了。

Caddy 使用方法

启动:service caddy start

停止:service caddy stop

重启:service caddy restart

查看状态:service caddy status

其他说明

实现网盘式操作

Caddy自带的目录列表功能很简陋,不能 新建/重命名/移动/删除 文件/文件夹等操作,所以可以使用 Caddy的 FileManager 扩展。

参考使用方法看这里

注意:2017/03/23 17:50 之前通过本教程安装的Caddy,皆没有这个扩展,需要卸载重装!

启动显示成功,但是实际未运行

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。

你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。

所以这种情况下,你应该去查看启动日志:

tail -f /tmp/caddy.log

就暂时先介绍这么多,稍后慢慢补充。

转载请超链接注明:月下博客 » 使用Youtube-dl离线下载YouTube视频并且VPS上在线观看
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!