逗比云还是逃不过被墙的命运,既然如此那以后逗比云也就一直用被墙的旧域名 [softs.wtf] 算了。
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

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

逗比软件 Toyo 45评论
广告
本文最后更新于 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上在线观看
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (32)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(45)个小伙伴在吐槽
  1. 还有大大,怎么把视频下载到默认虚拟主机的文件夹里。。。。
    飞扬的旋律2018-11-03 22:14 回复
    • 进入虚拟主机文件夹中执行下载代码。
      Toyo2018-11-03 22:36 回复
  2. 下载的视频放在哪里啊?求帮助
    飞扬的旋律2018-11-03 21:37 回复
    • 默认下载到当前文件夹中。
      Toyo2018-11-03 22:25 回复
  3. youtube-dl+aria2下载时遇到问题,麻烦看一下.我是按照教程装的Aria2,安装youtube-dl后,下载文件到/usr/local/caddy/www/aria2/Download,然后到filemanager下载.
    https://github.com/mayswind/AriaNg/issues/153
    另外我直接在vps上运行aria2c命令也会失败,我防火墙已经打开了6800端口,内容如下
    [ERROR] IPv4 RPC: failed to bind TCP port 6800
    Exception: [SocketCore.cc:312] errorCode=1 Failed to bind a socket, cause: Address already in use
    
     [ERROR] IPv6 RPC: failed to bind TCP port 6800
    Exception: [SocketCore.cc:312] errorCode=1 Failed to bind a socket, cause: Address already in use
    
    [ERROR] Exception caught
    Exception: [DownloadEngineFactory.cc:219] errorCode=1 Failed to setup RPC server.
    
    jiorgjreiogjioreg2018-10-11 11:52 回复
    • [ERROR] IPv4 RPC: failed to bind TCP port 6800
      Exception: [SocketCore.cc:312] errorCode=1 Failed to bind a socket, cause: Address already in use
      
      # 这个提示指的是 6800 端口被占用,无法绑定端口,请用 netstat -lntp 命令查询哪个程序占用了该端口。
      
      Toyo2018-10-11 14:18 回复
      • 占用端口的就是aria2c,AriaNg连接正常.运行aria2c命令出现以上三个提示.youtube-dl下载加入--external-downloader aria2c --external-downloader-args "-x 16"也会出现以上三个提示.贴出的gh是google到的.
        jiorgjreiogjioreg2018-10-11 15:13 回复
        • 那你为什么不先停止Aria2,再去启动它?
          Toyo2018-10-11 16:39 回复
  4. 有没有网页管理面板
    ShadowDumb2018-10-04 13:20 回复
  5. 如果是 Debian/Ubuntu 可以直接 apt install youtube-dl 在 Debian 9 和 Ubuntu 16.04/18.04 上面测试过
    LamH2018-09-24 10:17 回复
    • apt-get install ffmpeg安装后可以自动合并了
      jiorgjreiogjioreg2018-10-11 11:54 回复
  6. 下载视频列表 youtube-dl -f [format code] [palylist_url] //这种方式可以下载制定清晰度的mp4视频 youtube-dl [playlist_url] //下载视频列表,这种方式下载的视频可能是mkv格式或者webm格式 youtube-dl -cit [playlist_url] //下载视频列表,这种方式下载的视频可能是mkv格式或者webm格式 youtube-dl --yes-playlist [url] //当链接为视频列表,则下载该列表视频,跟上面的一样,可能是mkv或者webm格式 这几个命令,怎么着都没法用。博主能试试吗?
    狒狒2017-12-10 23:19 回复
    • 我能用你不能用?姿势问题。
      Toyo2017-12-11 00:02 回复
      • 求博主给个姿势,摆个pose :sad:
        狒狒2017-12-11 00:13 回复
      • 下载整个列表文件的姿势~
        狒狒2017-12-11 00:14 回复
      • [email protected]:/www/wwwroot/kod.droidbeta.com/data/User/admin/home/youtube# youtube-dl --yes-playlist https://www.youtube.com/watch?v=MRtUSOEebno&index=17&list=PLlvxn-svza2eJ_Me_3KPvMQck71xkH2gB[1] 28407 [2] 28408 [email protected]:/www/wwwroot/kod.droidbeta.com/data/User/admin/home/youtube# [youtube] MRtUSOEebno: Downloading webpage [youtube] MRtUSOEebno: Downloading video info webpage [youtube] MRtUSOEebno: Extracting video information [youtube] MRtUSOEebno: Downloading MPD manifest [youtube] MRtUSOEebno: Downloading MPD manifest [download] 灵镜传奇17-MRtUSOEebno.webm has already been downloaded [download] 100% of 242.95MiB 单个文件的命令可以下载,列表命令就不行了
        狒狒2017-12-11 00:18 回复
  7. 有试过可以下整个列表的视频吗?
    狒狒2017-12-06 01:19 回复
  8. 大佬,为什么我按照你的配置好了,打开网址也能看到视频文件,但是只能下载不能播放是为什么呢?
    larryshan2017-11-27 15:16 回复
    • 怕是浏览器不支持 HTML5,或者你的视频文件不是 .mp4 .webm 格式的视频。
      Toyo2017-11-27 16:20 回复
  9. 大佬,我配置以后发现有某些视频下载不了...报错402:Payment Required,视频地址 https://www.youtube.com/watch?v=3k4FOmBhS7A 。查了下说是IP被BAN,下载的时候要解验证码.... 但问题是我装Youtube-dl PC版,然后开代理下一样的视频 却能下...这是怎么回事...
    天使纳瑞斯2017-10-21 01:12 回复
  10. 大佬可以看下这个吗?(https://github.com/avignat/Youtube-dl-WebUI),youtube-dl的一个网页端,因为youtube-dl默认下载的是720P,有什么办法可以默认下载1080P嘛?在LOC论坛上看到的大佬签名(http://youtube-download.xyz),他的直接下载1080P,或者DOUBI大佬指点下方向
    baymin2017-05-10 13:11 回复
    • 1080P甚至更高清晰度的都可以直接下载,但是视频和音频是分离的,所以还需要 ffmpeg 来合并视频和音频,这个玩意安装配置略麻烦。
      Toyo2017-05-10 14:10 回复
  11. 如果安装一个ffmpeg的话,可以分别下载最高质量的视频和音频,并自动整合为一个MP4文件。
    飞飞氘2017-03-29 01:42 回复
  12. 1080P的视频是没有声音的,还要把声音部分下下来。
    秋天不落叶2017-03-15 15:15 回复
  13. 你好。我已经安装了nginx和apche2,并且在apche安装了aria2,现在http://vsp_ip,直接进入aria2。我在/var/www/html/download 通过youtube-dl下载视频,通过http://vps_ip不能看到下载的文件。之前试过你的 『原创』SimpleHTTPServer 快速搭建HTTP Web服务 + 一键脚本。可是都是只能下载一部分后就不能下载了。没有安装aria2前可以通过http://vps_ip下载。现在安装了aira2后,也想通过http://vps_ip这种方式直接下载文件。请问有什么方法?
    lao2017-01-19 11:17 回复
    • 你把我说迷了,看了几遍都没看懂你在说什么。
      你是想下载VPS上面的文件,还是用Aria2下载文件到VPS上面?
      而且Aria2是分前端和后端的,还有你为什么把Apache2和Nginx都安装了?这是会冲突的,会导致其中一个无法启动。
      建议你回复之前先捋清楚。
      Toyo2017-01-19 11:33 回复
      • 不好意思,没有说清楚。我是想把vps上的文件下载到本地。
        lao2017-01-19 12:00 回复
        • 那无论安装Nginx还是Apache2,还是直接SimpleHTTPServer都是可以做到的啊,如果是临时的就SimpleHTTPServer,如果是长期的建议Nginx和Apache2。
          Toyo2017-01-19 12:03 回复
      • 同时安装nginx和apache2是以为apache2是为aria2服务的,nginx是为例如youtube-dl服务的,都是通过http://vps_ip这种方式访问网页下载文件到本地。
        lao2017-01-19 12:05 回复
        • Nginxi和Apache2都是一样的,都是HTTP服务软件,aria2前端只是一个html+css+js的静态网页,所以放哪个里面都一样。
          没有说谁为谁服务的,都一样,我教程中只是把Nginx和Apache2都列举出来想用哪个用哪个。
          你把几个文章都给看混了,而且不理解Nginx和Apache2的区别。
          Toyo2017-01-19 12:13 回复
      • 没有安装aria2之前,我只安装了apache2,然后在/var/www/html用youtube-dl下载的视频可以通过http://vps_ip访问下载。后来我安装了aria2后,通过http://vps_ip访问的就是aira2了。现在我通过youtube-dl现在的视频应该怎么下载到本地?之前试过你的SimpleHTTPServer,可是每次都只能下载一部分后面就不能继续下载了,直接没有速度。我没有安装防火墙之类的软件。
        lao2017-01-19 12:12 回复
        • 没有linux基础,真的是完全照着教程一步步来的,这里感谢站长写的教程,大部分都适合小白。就是现在我在安装了aria2的情况下,怎么把通过youtube-dl下载的视频下载到本地,SimpleHTTPServer不知道为什么老是下载一部分后就不能下载了
          lao2017-01-19 12:37 回复
        • 醉了,那你可以安装Nginx和Apache2,然后把端口分开,默认端口都是80,你可以改成其他的端口,这样你就可以同时启动使用Nginx和Apache2了。
          或者,你在 /var/www/html 目录下新建一个文件夹,比如 mkdir /var/www/html/aria2 ,然后你把你的Aria2所有文件文件放到 /var/www/html/aria2 文件夹里,这样你就可以通过访问 http://ip 来正常下载的文件了,也可以通过 http://ip/aria2 来访问Aria2的界面了。
          Toyo2017-01-19 12:42 回复
          • 感谢。已经解决问题了。又学到点
            lao2017-01-19 13:27 回复
  14. 今天照着弄了。不过站长可以增加更多内容。ffmpeg,还有字幕
    lao2017-01-07 22:06 回复
  15. 谢谢啊!
    五毛2016-09-15 22:02 回复
  16. “如果你不会可以直接去 lnmp.rog 安装lnmp一键包”。。。。老板,请自行发现错误
    Carl2016-08-25 14:49 回复
  17. 我发现我的辣鸡50M网络看我vps上的视频时倒是挺流畅的,居然能达到外网的极限速度6Mbps(#滑稽)。至于50Mbps网速基本上只有从百度云上下东西时才能达到,对了,百度云上传100Mbps
    德意志骨科专家2016-08-11 23:28 回复
  18. 支持, 我来迟了.
    doubicom2016-07-21 14:42 回复
  19. python -mSimpleHTTPServer 搭建简易http服务器
    mdkvo(dJsnckcv2016-07-19 02:06 回复
    • 这个来搭建一个临时的文件共享HTTP服务器还是挺方便的,不过长期使用的话还是建议nginx/apache
      Toyo2016-07-19 11:41 回复
  20. 我就直接用winscp下载视频到本地,也不算慢。
    rockyuan2016-07-14 22:35 回复
  21. webm才是开放的视频格式,mp4是专有的视频格式。
    linuxdashen.com2016-07-14 14:07 回复
  22. 博主的网站标题晃来晃去,实在让人生厌。用stylebot插件添加用户自定义CSS span.shake-constant.shake-constant--hover.shake-slow{ animation:paused; } 立即就不晃了。 :shock:
    linuxdashen.com2016-07-14 14:02 回复