yt-dlp地址

需要安装ffmpeg

常用参数

获取视频信息(ID、扩展名、分辨率、文件大小和音频/视频编解码器等)

1
yt-dlp -F https://www.youtube.com/xxxxxxxxxxxxxxxxx

下载音频

1
yt-dlp -f 140 https://www.youtube.com/xxxxxxxxxxxxxxxxx

下载视频

1
2
3
4
5
6
7
8
9
10
11
yt-dlp -f 137 https://www.youtube.com/xxxxxxxxxxxxxxxxx
-f 137: 下载 1080p 视频 (h264)
-f 140: 下载 1440p 视频 (h264)
-f 22: 下载 720p 视频 (h264)
-f 18: 下载 360p 视频 (h264)
-f 171: 下载 1080p 视频 (vp9)
-f 134: 下载 720p 视频 (vp9)
-f 133: 下载 480p 视频 (vp9)
-f 135: 下载 240p 视频 (vp9)
-f 140: 下载 1440p 视频 (h264)
-f 249: 下载 1080p 视频 (av1)

可以自由组合视频和音频,如:

1
yt-dlp -f 137+140 https://www.youtube.com/xxxxxxxxxxxxxxxxx

下载最好的视频和音频

1
./yt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]' https://youtube.com/xxxxxxxxx

其他选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
设置视频下载的大小限制
--min-filesize 100M
--max-filesize 1000M
-f 'bestvideo[filesize>1000M]'

分辨率选择
-f 'bestvideo[width=1920][height=1080]'

视频编解码器的名称
-f 'bestvideo[vcodec=avc1.640028]'

音频编解码器的名称
-f 'bestaudio[acodec=mp4a.40.2]'

设置下载速度限制
-r 50K

按标题关键词过滤
--match-title "keyword"

yt-dlp 格式选择

默认情况下,如果您不传递任何选项,yt-dlp 会尝试下载最佳可用质量。这通常相当于使用 -f bestvideo*+bestaudio/best。但是,如果启用了多个音频流 (--audio-multistreams),默认格式会更改为 -f bestvideo+bestaudio/best。类似地,如果没有可用的 ffmpeg,或者您使用 yt-dlp 将输出流到 stdout (-o -),默认格式将变为 -f best/bestvideo+bestaudio

弃用警告:最新版本的 yt-dlp 可以同时使用 ffmpeg 将多个格式流式传输到 stdout。因此,在未来的版本中,默认设置将更改为 -f bv*+ba/b,类似于正常下载。如果您想保留 -f b/bv+ba 设置,建议在配置选项中明确指定。

格式选择的一般语法是 -f FORMAT(或 --format FORMAT),其中 FORMAT 是选择器表达式,即描述您希望下载的格式或格式的表达式。

简要说明

最简单的情况是请求特定格式;例如,使用 -f 22 可以下载格式代码等于 22 的格式。您可以使用 --list-formats-F 获取特定视频的可用格式代码列表。请注意,这些格式代码是提取器特定的。

您还可以使用文件扩展名(当前支持 3gp、aac、flv、m4a、mp3、mp4、ogg、wav、webm)来下载特定文件扩展名的最佳质量格式,例如 -f webm 将下载以 webm 扩展名提供的最佳质量格式。

您可以使用 -f - 交互式地为每个视频提供格式选择器。

特殊名称

您还可以使用特殊名称选择特定的边缘案例格式:

  • all:单独选择所有格式
  • mergeall:选择并合并所有格式(必须与 --audio-multistreams--video-multistreams 或两者一起使用)
  • b*best*:选择包含视频或音频或两者的最佳质量格式(即;vcodec!=noneacodec!=none
  • bbest:选择同时包含视频和音频的最佳质量格式。等同于 best*[vcodec!=none][acodec!=none]
  • bvbestvideo:选择最佳质量的视频格式。等同于 best*[acodec=none]
  • bv*bestvideo*:选择包含视频的最佳质量格式。也可能包含音频。等同于 best*[vcodec!=none]
  • babestaudio:选择最佳质量的音频格式。等同于 best*[vcodec=none]
  • ba*bestaudio*:选择包含音频的最佳质量格式。也可能包含视频。(请勿使用!)
  • w*worst*:选择包含视频或音频的最差质量格式
  • wworst:选择同时包含视频和音频的最差质量格式。等同于 worst*[vcodec!=none][acodec!=none]
  • wvworstvideo:选择最差质量的视频格式。等同于 worst*[acodec=none]
  • wv*worstvideo*:选择包含视频的最差质量格式。也可能包含音频。等同于 worst*[vcodec!=none]
  • waworstaudio:选择最差质量的音频格式。等同于 worst*[vcodec=none]
  • wa*worstaudio*:选择包含音频的最差质量格式。也可能包含视频。等同于 worst*[acodec!=none]

过滤格式

您还可以通过在括号中放置条件来过滤视频格式,例如 -f "best[height=720]"(或 -f "[filesize>10M]",因为没有选择器的过滤器被解释为最佳)。

可用的数值元字段

可以使用以下数值元字段进行比较:<, <=, >, >=, =(等于),!=(不等于):

  • filesize:已知的字节数(如果已知)
  • filesize_approx:字节数的估计
  • width:视频的宽度(如果已知)
  • height:视频的高度(如果已知)
  • aspect_ratio:视频的宽高比(如果已知)
  • tbr:音频和视频的平均比特率(以 kbps 为单位)
  • abr:平均音频比特率(以 kbps 为单位)
  • vbr:平均视频比特率(以 kbps 为单位)
  • asr:音频采样率(以赫兹为单位)
  • fps:帧率
  • audio_channels:音频通道的数量
  • stretched_ratio:视频像素的宽高比,如果不是正方形

字符串比较

过滤器还支持以下字符串元字段的比较:=(等于),^=(以…开头),$=(以…结尾),*=(包含),~=(匹配正则表达式):

  • url:视频 URL
  • ext:文件扩展名
  • acodec:正在使用的音频编码名称
  • vcodec:正在使用的视频编码名称
  • container:容器格式的名称
  • protocol:用于实际下载的协议(小写,http, https, rtsp, rtmp, rtmpe, mms, f4m, ism, http_dash_segments, m3u8m3u8_native
  • language:语言代码
  • dynamic_range:视频的动态范围
  • format_id:格式的简短描述
  • format:格式的可读描述
  • format_note:关于格式的附加信息
  • resolution:宽度和高度的文本描述

任何字符串比较都可以用否定符号 ! 前缀,以产生相反的比较,例如 !*=(不包含)。如果比较的字符串包含空格或其他特殊字符(除了 ._-),则需要用双引号或单引号将比较对象引起来。

注意事项

请注意,上述元字段没有任何一个是保证存在的,因为这完全取决于特定提取器获得的元数据,即网站提供的元数据。提取器提供的任何其他可用字段也可以用于过滤。

对于未知值的格式将被排除,除非您在操作符后加上问号(?)。您可以组合格式过滤器,因此 -f "bv[height<=?720][tbr>500]" 选择高达 720p 的视频(或高度未知的视频),其比特率至少为 500 kbps。您还可以将过滤器与 all 一起使用,以下载满足过滤条件的所有格式,例如 -f "all[vcodec=none]" 选择所有仅音频格式。

格式选择器也可以使用括号进行分组;例如,-f "(mp4,webm)[height<480]" 将下载高度低于 480 的最佳预合并 mp4 和 webm 格式。

排序格式

您可以通过使用 -S (--format-sort) 来更改被视为最佳格式的标准。其一般格式为 --format-sort field1,field2....

可用字段

  • hasvid:优先选择具有视频流的格式
  • hasaud:优先选择具有音频流的格式
  • ie_pref:格式偏好
  • lang:语言偏好
  • quality:格式的质量
  • source:源的偏好
  • proto:用于下载的协议(https/ftps > http/ftp > m3u8_native/m3u8 > http_dash_segments > websocket_frag > mms/rtsp > f4f/f4m
  • vcodec:视频编码(av01 > vp9.2 > vp9 > h265 > h264 > vp8 > h263 > theora > other
  • acodec:音频编码(flac/alac > wav/aiff > opus > vorbis > aac > mp4a > mp3 > ac4 > eac3 > ac3 > dts > other
  • codec:等同于 vcodecacodec
  • vext:视频扩展名(mp4 > mov > webm > flv > other)。如果使用 --prefer-free-formats,则优先选择 webm
  • aext:音频扩展名(m4a > aac > mp3 > ogg > opus > webm > other)。如果使用 --prefer-free-formats,顺序更改为 ogg > opus > webm > mp3 > m4a > aac
  • ext:等同于 vextaext
  • filesize:已知的确切文件大小(如果已知)
  • fs_approx:近似文件大小
  • size:确切文件大小(如果可用),否则为近似文件大小
  • height:视频高度
  • width:视频宽度
  • res:视频分辨率,计算为最小维度。
  • fps:视频帧率
  • hdr:视频的动态范围(DV > HDR12 > HDR10+ > HDR10 > HLG > SDR
  • channels:音频通道数量
  • tbr:总平均比特率(以 kbps 为单位)
  • vbr:平均视频比特率(以 kbps 为单位)
  • abr:平均音频比特率(以 kbps 为单位)
  • br:平均比特率,tbr/vbr/abr
  • asr:音频采样率(以 Hz 为单位)

下载播放列表

下载播放列表的第20个视频

1
yt-dlp --playlist-items 20 <playlist_url>

下载播放列表中第一到第五的视频

1
yt-dlp --playlist-start 1 --playlist-end 5 <playlist_url>

cookie

chrome扩展程序Cookie-Editor,导出Netscape格式的

1
--cookies cookie.txt

故障排除

”Unable to download video data: HTTP Error 403: Forbidden”错误

1
2
清除缓存
yt-dlp --rm-cache-dir

视频编码

AVC (Advanced Video Coding)

  1. 定义

    • AVC 是一种视频压缩标准,正式名称为 H.264。被广泛应用于视频编码和传输,特别是在数字视频广播、蓝光光盘、视频会议和流媒体服务中。
  2. 标准化

    • AVC 标准由 ITU-T(国际电信联盟电信标准化部门)和 ISO/IEC(国际标准化组织/国际电工委员会)共同开发。H.264 是其在 MPEG-4 标准中的第10部分。
  3. 压缩效率

    • AVC 提供了比其前身(如 MPEG-2)更高的压缩效率,能够在较低的比特率下提供较高的视频质量。这使得 AVC 成为许多视频应用的首选编码标准。
  4. 应用场景

    • AVC 被广泛用于:
      • 高清视频(HD)和超高清(UHD)视频的编码。
      • 在线流媒体服务(如 YouTube、Netflix 等)。
      • 视频会议和网络直播。
      • 蓝光光盘和其他光盘格式。
  5. 技术特点

    • AVC 使用了多种先进的编码技术,包括运动补偿、变换编码、熵编码等,从而提高了编码效率。
    • 支持多种分辨率和帧率,适用于不同的应用场景。
  6. 兼容性

    • AVC 是一种广泛支持的编码标准,几乎所有现代的视频播放器、设备和浏览器都能解码 H.264 编码的视频。

HEVC (High Efficiency Video Coding)

  1. 定义

    • HEVC (H.265) 是一种视频压缩标准,旨在提供比其前身 H.264 更高的压缩效率。能够在相同的视频质量下,减少大约 50% 的比特率,这使得特别适用于高分辨率视频(如 4K 和 8K)。
  2. 标准化

    • HEVC 是由 ITU-T(国际电信联盟电信标准化部门)和 ISO/IEC(国际标准化组织/国际电工委员会)共同开发的,作为 H.264 的继任者。
  3. 压缩效率

    • HEVC 采用了多种先进的编码技术,包括:
      • 块结构:使用更灵活的编码块(CTU,编码树单元)来处理不同的图像区域。
      • 运动补偿:改进了运动估计和补偿算法,以更有效地编码运动场景。
      • 变换和量化:使用更高效的变换和量化方法来减少冗余数据。
  4. 应用场景

    • HEVC 被广泛应用于:
      • 高清(HD)、超高清(UHD)和 4K/8K 视频的流媒体和存储。
      • 蓝光光盘(蓝光 UHD)格式。
      • 视频会议、网络直播和广播等领域。
  5. 兼容性

    • 尽管 HEVC 提供了显著的压缩优势,但由于其复杂性和专利问题,早期的硬件和软件支持较为有限。不过,随着时间的推移,越来越多的设备(如智能电视、流媒体播放器和手机)开始支持 HEVC 解码。
  6. 文件扩展名和标识

    • 在某些文件格式中,HEVC 编码的视频流可能会被标识为 hvc1(在 MP4 文件中)或 hev1
  • HEVC(H.265)是一个高效的视频编码标准,能够在较低的比特率下提供高质量的视频,适用于 4K 和 8K 等高分辨率视频。
  • 尽管 HEVC 在压缩效率上有显著优势,但其复杂性和专利问题曾导致其在某些场合的应用受到限制。

AV1 (AOMedia Video 1)

  1. 背景

    • AV1 是为了解决 AVC(H.264) 和 HEVC(H.265)等现有编码标准在版权和专利方面的限制而开发的。旨在提供更高的压缩效率,同时避免专利费用。
  2. 压缩效率

    • AV1 提供比 H.265 更好的压缩效率,通常可以在相同的视觉质量下减少约 30% 的比特率。这使得 AV1 特别适合于 4K 和更高分辨率的视频流。
  3. 应用场景

    • AV1 被设计用于互联网视频流、在线视频平台(如 YouTube、Netflix 等)和其他需要高效视频传输的场景。被广泛应用于视频流媒体、视频会议和视频存储等领域。
  4. 兼容性

    • AV1 的支持正在逐渐增加,许多现代浏览器(如 Chrome、Firefox 和 Edge)和硬件设备(如电视和流媒体播放器)开始支持 AV1 解码。
  5. 文件扩展名和标识

    • 在某些文件格式中,AV1 的编码可能会被标识为 AV01。例如,在 WebM 或 MP4 文件中,AV1 编码的视频流可能会被标记为 av01

VP9

VP9 是一种由 Google 开发的开放视频编码格式,主要用于高效的视频压缩和传输。是 VP8 的后续版本,旨在提供更好的压缩效率和更高的视频质量,尤其是在较低的比特率下。VP9 被广泛应用于 YouTube、Netflix 和其他流媒体服务中。以下是 VP9 编码的详细介绍:

  1. VP9 的背景和发展
  • 开发者:VP9 是由 Google 开发的,作为 VP8 的继任者,旨在提高视频压缩效率。
  • 发布:VP9 于 2013 年首次发布,并在 2014 年成为 WebM 项目的一个重要组成部分。
  • 目标:VP9 的主要目标是提供与 H.265(HEVC)相似的压缩性能,但不收取专利费用。
  1. VP9 的特点
  • 高效压缩:VP9 能够在相同的视觉质量下,比 VP8 提高约 50% 的压缩效率。这意味着在相同的比特率下,VP9 可以提供更好的视频质量,或者在相同的质量下,使用更低的比特率。
  • 无专利费用:VP9 是开放的,用户可以自由使用,而无需支付专利费用,这使得在某些应用场景中比 H.265 更具吸引力。
  • 支持多种分辨率:VP9 支持从低分辨率到超高分辨率(如 4K 和 8K)的多种视频分辨率。
  1. 编码技术
  • 块编码:VP9 使用可变大小的块(从 64x64 到 8x8 像素)进行编码,这样可以根据视频内容的复杂性选择合适的块大小,从而提高编码效率。
  • 运动补偿:VP9 采用高效的运动补偿技术,能够更好地预测视频帧之间的变化,减少冗余数据。
  • 预测编码:VP9 使用帧间预测和帧内预测来减少数据量。帧间预测利用之前的帧来预测当前帧,帧内预测则在当前帧内进行压缩。
  • 色彩空间:VP9 支持 YUV 4:2:0 和 YUV 4:4:4 色彩空间,可以处理高动态范围(HDR)视频。
  1. 解码支持
  • 硬件解码:许多现代浏览器和设备(如智能手机、智能电视和流媒体播放器)都支持 VP9 的硬件解码,这使得 VP9 的播放更加高效和流畅。
  • 软件解码:VP9 也可以通过软件解码实现,但相较于硬件解码,软件解码的性能会受到设备性能的影响。
  1. 应用场景
  • 流媒体服务:VP9 被广泛用于 YouTube 和 Netflix 等流媒体平台,提供高质量的视频流。
  • 视频会议:由于其高效的压缩性能,VP9 也被用于视频会议应用,以减少带宽消耗。
  • 网页视频:VP9 是 WebM 格式的一部分,广泛用于浏览器中的在线视频播放。
  1. VP9 与其他编码标准的比较
  • 与 H.264 的比较:VP9 在相同的比特率下通常提供更好的视频质量,但 H.264 的解码支持更广泛,尤其是在较老的设备上。
  • 与 H.265(HEVC)的比较:VP9 和 H.265 提供相似的压缩效率,但 VP9 是开放标准,不涉及专利费用,这使得在某些情况下更具吸引力。