About-简介

通常用于下载网站视频的工具有youtube-dl和You-Get;经过测试发现,下载国外视频用youtube-dl比较方便,下载国内视频用You-Get;

不过,由于youtube-dl支持的是Python 2.6, 2.7, or 3.2+,相对来说会方便很多;

这篇文章主要介绍youtube-dl 命令行工具的使用,以及如何在python代码中调用外部 youtube-dl 命令,执行下载操作;

youtube-dl官网
youtube-dlGithub

Download and Install-下载安装

  • 方式一 下载Windows exe程序使用
    从官网下载youtube-dl.exe
    然后放在电脑的任意目录下即可使用;可以通过下面的命令来更新youtube-dl

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

    1
    2
    pip install youtube-dl //直接安装youtube-dl
    pip install --upgrade youtube-dl //安装youtube-dl并更新

Usage-使用

命令格式为:

1
youtube-dl [OPTIONS] URL [URL...]

常用的选项有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-h, --help 打印帮助
--version 显示版本
-U, --update 升级
-i, --ignore-errors 忽略错误继续执行下载操作
--abort-on-error 出现错误中断下载
--dump-user-agent 显示当前的用户代理信息
--list-extractors 显示所有的支持解析
--extractor-descriptions 显示所有的支持解析的描述
--force-generic-extractor 使用通用的解析器强制下载
--default-search PREFIX 对未校验的链接使用默认的前缀
--ignore-config 忽略配置文件
--config-location PATH 使用本地的配置文件
--flat-playlist 不解析播放列表,仅仅显示
--mark-watched 标记视频已看过
--no-mark-watched 不标记已观看
--no-color 忽略颜色输出

网络 选项

1
2
3
4
5
--proxy URL 使用指定的代理
--socket-timeout SECONDS 设置超时时间
--source-address IP 绑定客户端IP地址
-4, --force-ipv4 设置所有链接为 IPv4
-6, --force-ipv6 设置所有链接为 IPv6

视频选择

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
--playlist-start NUMBER 播放列表起始位置(默认为 1)
--playlist-end NUMBER 播放列表结束位置(默认为 最后)
--playlist-items ITEM_SPEC 播放列表特定选项进行下载
--match-title REGEX 只下载匹配相应标题的视频
--reject-title REGEX 跳过已经看过的视频
--max-downloads NUMBER 设置最大下载数量
--min-filesize SIZE 不下载视频大小小于设定值的视频
--max-filesize SIZE 不下载视频大小大于设定值的视频
--date DATE 只下载更新日期为DATE的视频
--datebefore DATE 只下载更新日期早于DATE的视频
--dateafter DATE 只下载更新日期晚于DATE的视频
--min-views COUNT 不下载视频数量小于设定值的视频
--max-views COUNT 不下载视频数量大于设定值的视频
--match-filter FILTER 设置通用的视频过滤器
--no-playlist 如果连接指向视频和播放列表,只下载视频
--yes-playlist 如果连接指向视频和播放列表,只下载播放列表
--age-limit YEARS 只下载指定年份的视频
--download-archive FILE 只下载archive文件中没有的视频
--include-ads 广告视频也一起下载

下载选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-r, --limit-rate RATE 设置下载最大sulv
-R, --retries RETRIES 最大的尝试次数
--fragment-retries RETRIES fragment窗口最大的尝试次数
--skip-unavailable-fragments 跳过无效的fragment窗口
--abort-on-unavailable-fragment 当某些窗口失效时,停止下载
--buffer-size SIZE 设置下载缓存
--no-resize-buffer 不要进行下载缓存的自适应
--playlist-reverse 反向下载播放列表视频
--playlist-random 随机下载播放列表视频
--xattr-set-filesize 设置文件xattr属性大小
--hls-prefer-native 使用HLS下载器替代 ffmpeg
--hls-prefer-ffmpeg 使用ffmpeg下载器替代HLS
--external-downloader COMMAND 使用外部下载器,目前支持:
aria2c,avconv,axel,curl,ffmpeg,httpie,wget
--external-downloader-args ARGS 设置外部下载器参数

文件系统选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-a, --batch-file FILE 下载指定文件包含的url链接视频
--id 文件名使用视频ID值
-o, --output TEMPLATE 设置输出临时文件名
--autonumber-start NUMBER 指定开始数值for %(autonumber)s(默认为1)
--restrict-filenames 限制文件名使用ASCII编码
-w, --no-overwrites 不要覆盖文件
-c, --continue 强制恢复下载文件
--no-continue 不要恢复下载文件
--no-part 不要使用.part 文件 - 直接写入到输出文件
--no-mtime 不要使用最后的修改时间
--write-description 输出视频描述到指定文件
--write-info-json 输出视频元数据metadata 到.info.json 文件
--write-annotations 输出视频标记信息到.annotations.xml 文件
--load-info-json FILE 载入视频信息文件
--cookies FILE 缓存文件
--cache-dir DIR 指定缓存文件目录
--no-cache-dir 关闭文件系统缓存
--rm-cache-dir 删除所有文件系统缓存文件

缩略图选项

1
2
3
--write-thumbnail 下载缩略图
--write-all-thumbnails 下载所有格式的缩略图
--list-thumbnails 仅仅显示缩略图列表