youtube-dl從零安裝

. .
#文章竟然被鎖了、

{【备份】youtube-dl使用介绍 - 简书}
{使用youtube-dl下载国外视频}
{windows使用youtube-dl下载国外视频python}
youtube-dl是一个使用Python编写的脚本,在视频下载方面极其强悍,比在线解析网站的下载速度更稳定更快,并且对于YouTube的1080p及以上的视频可以自动合并音视频(需要ffmpeg);由于这是一个命令脚本工具,没有UI界面,因此它强大的功能就要靠参数来实现,借用不同的参数可以实现不同的下载方式,比如指定格式,下载视频字幕,批量下载,代理下载等等

▲这里使用Python版举例

✿ windows可以到官网http://rg3.github.io/youtube-dl/download.html 下载非python版本

✿ Linux下使用下面命令安装
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 


▲Step1 下载与安装Python
1.访问Python官网下载最新版本的Python

2.安装Python 3.5.2,注意勾选下面的 Add Python 3.5 to PATH

3.按 Win+R键打开运行,输入 cmd,再输入 python并回车执行,如果出现如下界面,则代表安装成功

▲Step2 安装youtube-dl

✿ 方式一 下载Windows exe程序使用
        从官网下载youtube-dl.exe然后放在电脑的任意目录下(比如我这里的C:\Users\LOLO)即可使用;可以通过下面的命令来更新youtube-dl
 youtube-dl -U 

✿ 方式二 直接使用命令行来安装
        在安装了Python之后,按 Win+R键打开运行,输入 cmd,再输入下面的代码即可自动下载安装youtube-dl
  
pip install youtube-dl //直接安装youtube-dl
pip install --upgrade youtube-dl //安装youtube-dl并更新 

安装完之后,输入 youtube-dl,如果出现下面的提示,则表明youtube-dl已经安装好啦

▲Step3 安装ffmpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec

1.进入FFmpeg官网,进入下载页面,根据自己的操作系统选择下载最新的32位或64位静态程序版本

2.下载之后解压出来,将会看到这么一堆文件夹

不用管它,直接把这个文件夹改个名字改成"ffmpeg"然后移到C盘根目录

3.打开系统属性>高级系统设置>环境变量

4.在环境变量>系统变量 里找到Path,点击编辑>新建,然后把刚才那个文件夹里的bin路径(C:\ffmpeg\bin)复制到这里

5.打开Win+R,输入cmd,回车,输入以下命令:
 ffmpeg -version 
如果出现如下图所示的版本号信息,则表明FFmpeg安装成功了,你可以在命令提示行中任意文件夹下运行FFmpeg

▲通过D理方式下载
由于网络的不稳定性,通过D理下载
建议使用$-$的童鞋可以在下载国外视频之前将系统改成"全局模式",这样使用youtube-dl下载视频就不需要其他设置了;

$-$全局代理模式
        注意 如果你不想用全局模式,那么后文提到的命令都需要加上这样的代理设置
 --proxy "https://127.0.0.1:1080" 

▲下载YouTube视频

      ➤ 查看视频所有类型,只看不下载
 youtube-dl -F 視頻網址 
或者
 youtube-dl --list-formats 視頻網址 
这是一个列清单参数,执行后并不会下载视频,但能知道这个目标视频都有哪些格式存在,这样就可以有选择的下载啦!

      ➤ 下载指定质量的视频和音频并自动合并
 youtube-dl -f 格式編號 視頻網址 
通过上一步获取到了所有视频格式的清单,最左边一列就是编号对应着不同的格式.
由于YouTube的1080p及以上的分辨率都是音视频分离的,所以我们需要分别下载视频和音频,可以使用137+140这样的组合.
如果系统中安装了ffmpeg的话, youtube-dl 会自动合并下下好的视频和音频, 然后自动删除单独的音视频文件

      ➤ 下载字幕
 youtubd-dl --write-sub [url] //这样会下载一个vtt格式的英文字幕和mkv格式的1080p视频下来
 
youtube-dl --write-sub --skip-download [url] //下载单独的vtt字幕文件,而不会下载视频
 
youtube-dl --write-sub --all-subs [url] //下载所有语言的字幕(如果有的话)
 
youtube-dl --write-auto-sub [url] //下载自动生成的字幕(YouTube only) 


      ➤ 下载视频列表
 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格式 

▲下载Vimeo视频
Vimeo的视频下载起来比较方便,因为没有分离,可以直接下载1080p带音频的视频。命令与下载YouTube的基本一致;下面贴几张图
↓查看Vimeo视频所有类型
↓直接下载Vimeo最高质量视频

youtube-dl支持的网站很多,大家可以从作者整理的这个列表里查看支持的网站(不过由于有的网站接口改变,可能当初支持的网站现在不能很好的支持了),如果您要下载的视频网站现在不能用youtube-dl下载的,不妨试试另外一个同样基于Python开发的下载工具You-Get,我将在下一篇文章中介绍,希望大家喜欢~
    youtube-dl官网:https://yt-dl.org/
    GitHub项目:https://github.com/rg3/youtube-dl/


{Youtube-dl安装和使用方法 - 简书}
 

Usage: youtube-dl [OPTIONS] URL [URL...]

Options:
  通用选项:
    -h, --help                       打印帮助文档
    --version                        打印版本信息
    -U, --update                     更新到最新版(需要权限)
    -i, --ignore-errors              遇到下载错误时跳过
    --abort-on-error                 遇到下载错误时终止
    --dump-user-agent                显示当前使用的浏览器(User-agent)
    --list-extractors                列出所有的提取器(支持的网站)
    --extractor-descriptions         同上
    --force-generic-extractor        强制使用通用提取器下载
    --default-search PREFIX          使用此前缀补充不完整的URLs,例如:"ytsearch2 yt-dl" 从youtube搜索并下载两个关于yt-dl视频. 使用"auto"youtube-dl就会猜一个,一般效果等价于"ytsearch"("auto_warning"猜测时加入警告).我已知支持的PREFIX:ytsearch (youtube), ytsearchdate (youtube), yvsearch (yahoo videos), gvsearch (google videos) 
    --ignore-config                  不读取配置文件,当时用了全局配置文件/etc/youtube-dl.conf:不再读取 ~/.config/youtube-dl/config (%APPDATA%/youtube-dl/config.txt on Windows)
    --config-location PATH           使用指定路径下的配置文件
    --flat-playlist                  列出列表视频但不下载
    --mark-watched                   标记看过此视频 (YouTube only)
    --no-mark-watched                不标记看过此视频 (YouTube only)
    --no-color                       打印到屏幕上的代码不带色

  网络选项:
    --proxy URL                      使用HTTP/HTTPS/SOCKS协议的代理.如:socks5://127.0.0.1:1080/.
    --socket-timeout SECONDS         放弃连接前等待时间
    --source-address IP              绑定的客户端IP地址
    -4, --force-ipv4                 所有连接通过IPv4
    -6, --force-ipv6                 所有连接通过IPv6

  地理限制:
    --geo-verification-proxy URL     使用此代理地址测试一些有地理限制的地址
    --geo-bypass                     绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip (实验)
    --no-geo-bypass                  不 绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip (实验)
    --geo-bypass-country CODE        强制绕过地理限制通过提供准确的ISO 3166-2标准的国别代码(实验)

  视频选择:
    --playlist-start NUMBER          指定列表中开始下载的视频(默认为1)
    --playlist-end NUMBER            指定列表中结束的视频(默认为last)
    --playlist-items ITEM_SPEC       指定列表中要下载的视频项目编号.如:"--playlist-items 1,2,5,8"或"--playlist-items 1-3,7,10-13"
    --match-title REGEX              下载标题匹配的视频(正则表达式或区分大小写的字符串)
    --reject-title REGEX             跳过下载标题匹配的视频(正则表达式或区分大小写的字符串)
    --max-downloads NUMBER           下载NUMBER个视频后停止
    --min-filesize SIZE              不下载小于SIZE的视频(e.g. 50k or 44.6m)
    --max-filesize SIZE              不下载大于SIZE的视频(e.g. 50k or 44.6m)
    --date DATE                      仅下载上传日期在指定日期的视频
    --datebefore DATE                仅下载上传日期在指定日期或之前的视频 (i.e. inclusive)
    --dateafter DATE                 仅下载上传日期在指定日期或之后的视频 (i.e. inclusive)
    --min-views COUNT                不下载观影数小于指定值的视频
    --max-views COUNT                不下载观影数大于指定值的视频
    --match-filter FILTER            通用视频过滤器. 
    --xattrs                         将元数据写入视频文件的xattrs(使用dublin core 和 xdg标准)
    --fixup POLICY                   自动更正文件的已知故障。never(不做警告), warn(只发出警告), detect_or_warn (默认;如果可以的话修复文件,否则警告)
    --prefer-avconv                  后处理时相较ffmpeg偏向于avconv
    --prefer-ffmpeg                  后处理优先使用ffmpeg
    --ffmpeg-location PATH           ffmpeg/avconv程序位置;PATH为二进制所在文件夹或者目录.
    --exec CMD                       在下载后对文件执行命令,类似于find -exec语法.示例:--exec‘adb push {} /sdcard/Music/ && rm {}‘
    --convert-subs FORMAT            转换字幕格式(当前支持: srt|ass|vtt)

{Get cookies.txt - Chrome Web Store}
若有age restriction影片,先下載cookies到user資料夾,指令為 
youtube-dl --cookies youtube.com_cookies.txt -指令 youtube網址