如何从youtube-dl中选择视频质量?


255

我已经在14.04中安装了youtube-dl。

我可以按照以下命令下载视频,

$ youtube-dl [youtube-link]

但是我想知道如何选择youtube视频的可用像素质量(即1080p,720p,480p等

他们在软件描述中说这是可能的(如下图所示),但是该怎么做。

ss


1
上面的描述已过时。在man页面上:“ youtube-dl现在默认下载YouTube所报告的最高可用质量,在某些情况下为1080p或720p。”
2014年

1
请注意,YouTube采取了某种保护措施,以防止下载工具下载(甚至看不到)1080p版本,但是您仍然可以下载所有其他分辨率,包括720p以下。
thomasrutter 2014年

我知道我参加聚会有点晚了,但这是我的经验:askubuntu.com/a/1097056/327339。使用该-f best选项。
加布里埃尔·斯台普斯

Answers:


360

要下载视频,请在命令后键入URL,如下所示:

youtube-dl 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

要选择视频质量,请先使用该-F选项列出可用的格式,下面是一个示例,

youtube-dl -F 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

这是输出:

[youtube] Setting language
[youtube] P9pzm5b6FFY: Downloading webpage
[youtube] P9pzm5b6FFY: Downloading video info webpage
[youtube] P9pzm5b6FFY: Extracting video information
[info] Available formats for P9pzm5b6FFY:
format code extension resolution  note 
140         m4a       audio only  DASH audio , audio@128k (worst)
160         mp4       144p        DASH video , video only
133         mp4       240p        DASH video , video only
134         mp4       360p        DASH video , video only
135         mp4       480p        DASH video , video only
136         mp4       720p        DASH video , video only
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)

最好的质量是22,所以-f 22不要-F像这样下载1280x720分辨率的MP4视频:

youtube-dl -f 22 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

或者(可选)使用以下标志来自动下载作为单个文件可用的最佳音频和视频轨道:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

如果在混合过程中遇到任何错误或视频质量选择出现问题,则可以使用以下命令之一:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

或正如Gabriel Staples此处指出的那样,以下命令通常会选择实际的最佳单个文件视频质量分辨率,而不是视频质量比特率:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

这些命令将确保您从视频中下载最高质量的mp4视频和m4a音频作为单个文件,或者将它们合并回单个mp4(ffmpeg在我的情况下使用)。如果ffmpegavconv不可用,youtube-dl应回退到单个文件-f best option而不是默认文件。

单击此处以获取更多详细信息和一些不同的示例。

另外,单击以查看Gabriel Staples的相关答案。


资料来源:www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

资料来源:github.com/rg3/youtube-dl


5
确保您不选择DASH。那将无法玩!
ps95

@ prakharsingh95使用gnac或类似软件只能将DASH音频转换为标准wave或mp3格式。
mchid 2014年

1
我是说DASH Video。我尝试下载4K,但这全都是DASH格式(DASH允许youtube保留带宽)。这是完全不同的,几乎是无法播放的。
ps95

1
@ prakharsingh95是的,如果可以的话,您可以使用VLC查看mp4,因为VLC允许您将视频与单独的音频文件同步。我还没有尝试过。您是否尝试过将DASH下载中的mp4文件转换为avi格式?我认为它们是相似的。
mchid 2014年

2
是。破折号当然是可玩的,但您需要使用来混合流avconv。太慢了4K
ps95

110

您可以使用下载1080p youtube-dl,但您需要做一些额外的工作。通常,即使您在youtube.com上看到1080p,它也只会下​​载720p作为其最大值。

运行-F以查看可用格式:

youtube-dl -F https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

171         webm      audio only  DASH audio  115k , audio@128k (44100Hz), 2.59MiB (worst)
140         m4a       audio only  DASH audio  129k , audio@128k (44100Hz), 3.02MiB
141         m4a       audio only  DASH audio  255k , audio@256k (44100Hz), 5.99MiB
160         mp4       256x144     DASH video  111k , 12fps, video only, 2.56MiB
247         webm      1280x720    DASH video 1807k , 1fps, video only, 23.48MiB
136         mp4       1280x720    DASH video 2236k , 24fps, video only, 27.73MiB
248         webm      1920x1080   DASH video 3993k , 1fps, video only, 42.04MiB
137         mp4       1920x1080   DASH video 4141k , 24fps, video only, 60.28MiB
43          webm      640x360
18          mp4       640x360
22          mp4       1280x720    (best)

请注意,youtube-dl该选项将最后一个选项1280x720标记为“最佳”质量,并且默认情况下会下载该选项,但是以137开头的行实际上是更高质量的1920x1080。YouTube已将标有DASH的行的视频和音频流分离开,因此我们还需要选择质量最高的音频,在这种情况下,该行是从141开始的行。然后我们youtube-dl再次运行,指定音频和视频:

youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

它将下载1080p视频并自动将其与最高质量的音频合并。它还应自动删除单独的下载部分。这种方法需要一些额外的工作,但是会获得最佳效果。


11
非常感谢,不知道137 + 141
whitesiroi 2015年

3
您的示例和其他示例为音频提供了简单的选择-即,为获得高质量,请选择具有最高比特率值的音频。但是,最近我发现自己面临着DASH audio , opus @160kor DASH audio 126k , audio@128k (44100Hz), 1.79MiB或or 之间的选择DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB。我必须选择,但对质量或兼容性不确定。
user643722 2015年

1
关于youtube-dl的最好的事情是它是多平台的。该解决方案不仅适用于Linux,而且适用于Mac和Windows。谢谢!
2016年

2
如今,这是默认设置,但前提是您安装了avconv(libav)或ffmpeg进行文件转换。对于Windows,你要设置--ffmpeg-location%APPDATA%\youtube-dl\config.txt为安装avconv / ffmpeg的目录。如果您有一个低端系统-f bestvideo[fps<=30]+bestaudio,则最好也要避免使用60fps视频。
GreenReaper

29

要选择特定的分辨率,您可以指定大小和音频质量,以便自动选择它们-因此对于480p而言

-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

bestvideo[height<=720]+bestaudio/best[height<=720]支持720p等,这可以添加到配置文件在~/.config/youtube-dl/config(甚至/etc/youtube-dl.conf),所以你没有得到超大下载:

mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config

--ignore-config如果要为特定的youtube-dl运行禁用配置文件,可以使用。

请注意,经常需要下载单独的视频和音频流并将其合并。

有关更多示例,请参见youtube-dl文档


1
我遇到一个问题,即同一视频的不同段具有相同分辨率的不同格式代码(例如,视频1 of 2的hls-1476和视频2 of 2的hls-1665,两者均为540p),所以我不能只使用“ -f hls-1476”或“ -f hls-1665”或我得到“错误:请求的格式不可用”您的命令示例帮助我检索了想要的内容。
ssnobody

1
+1代表~/.config/youtube-dl/config
Marinos

10

下面提供了一些其他选项,根据您的方便程度,下载此处未提及的最佳质量的视频:

下载可用的最佳mp4格式;如果没有可用的mp4,则下载其他最佳格式

$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'

下载可用的最佳格式,但不超过480p

$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

下载最佳视频格式,但大小不得超过50 MB

$ youtube-dl -f 'best[filesize<50M]'

通过HTTP / HTTPS协议上的直接链接下载可用的最佳格式

$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'

参考:

直接来自youtube-dl github页面


如何结合ext=mp4 && height<=480 && filesize<50M
mrgloom

6

bash包装器脚本,提示输入该格式,其中包括所有可用的演绎形式,包括纯音频,纯视频,然后使用来流式传输视频/音频mpv

接受绝对YouTube网址和视频ID。

#!/ usr/bin/env bash
# Download youtube video with desired quality

# youtube-dl accepts both fully qualified URLs and video id's such as AQcQgfvfF1M

url="$*"

echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT

echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")

样本输出

    yt.sh https://m.youtube.com/watch?v=Dax_tnZRExc
    [youtube] Dax_tnZRExc: Downloading webpage
    [youtube] Dax_tnZRExc: Downloading video info webpage
    [youtube] Dax_tnZRExc: Extracting video information
    [youtube] Dax_tnZRExc: Downloading MPD manifest
    [info] Available formats for Dax_tnZRExc:
    format code  extension  resolution note
    139          m4a        audio only DASH audio   49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 308.75KiB
    249          webm       audio only DASH audio   50k , opus @ 50k, 271.91KiB
    250          webm       audio only DASH audio   70k , opus @ 70k, 366.63KiB
    171          webm       audio only DASH audio  118k , vorbis@128k, 652.50KiB
    140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 820.00KiB
    251          webm       audio only DASH audio  130k , opus @160k, 705.84KiB
    160          mp4        256x144    DASH video  109k , avc1.4d400c, 13fps, video only, 703.64KiB
    278          webm       256x144    144p  111k , webm container, vp9, 25fps, video only, 439.72KiB
    242          webm       426x240    240p  243k , vp9, 25fps, video only, 623.95KiB
    133          mp4        426x240    DASH video  252k , avc1.4d4015, 25fps, video only, 1.54MiB
    134          mp4        640x360    DASH video  388k , avc1.4d401e, 25fps, video only, 1.24MiB
    243          webm       640x360    360p  458k , vp9, 25fps, video only, 1.19MiB
    135          mp4        854x480    DASH video  761k , avc1.4d401e, 25fps, video only, 2.40MiB
    244          webm       854x480    480p  893k , vp9, 25fps, video only, 2.00MiB
    136          mp4        1280x720   DASH video 1382k , avc1.4d401f, 25fps, video only, 4.56MiB
    247          webm       1280x720   720p 1754k , vp9, 25fps, video only, 3.94MiB
    137          mp4        1920x1080  DASH video 2350k , avc1.640028, 25fps, video only, 8.48MiB
    248          webm       1920x1080  1080p 2792k , vp9, 25fps, video only, 8.09MiB
    17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
    36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
    43           webm       640x360    medium , vp8.0, vorbis@128k
    18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
    22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)
    Please enter the desired format #

如果要下载视频而不是流式传输视频,只需删除mpv --cache=1024带有括号的部分和美元符号。


2

如何获得最佳的视频质量。

这个投票得票最多的答案 应该是可以为您提供最佳视频质量的正确选择,但是...不是。bestvideo+bestaudio似乎只选择的是选项最佳的视频,最好的音频只有视频音频只,然后将其合并两个在一起。请注意,这似乎也与youtube-dl的默认行为相同。但是,在我正在观看的视频上,最好的质量是单个预先合并的文件,该文件已经采用了合并的视频和音频格式。该bestvideo+bestaudio选项未选择此质量最好的720p文件,因为它仅在寻找单独的视频和音频文件。详细信息如下。

解?让它抓取最好的同时包含视频和音频的单个文件,方法是:

youtube-dl -f best https://youtu.be/FWGC9SqA3J0

简而言之:使用-f best选项,而不是-f bestvideo+bestaudio选项!

证明:

在此处输入图片说明

更具体地说,请参见下面的运行结果

youtube-dl -F https://youtu.be/FWGC9SqA3J0

为了查看可以下载哪些视频'F'ormats:

gabriel ~ $ youtube-dl -F https://youtu.be/FWGC9SqA3J0
[youtube] FWGC9SqA3J0: Downloading webpage
[youtube] FWGC9SqA3J0: Downloading video info webpage
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[info] Available formats for FWGC9SqA3J0:
format code  extension  resolution note
139          m4a        audio only DASH audio   50k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 2.30MiB
249          webm       audio only DASH audio   51k , opus @ 50k, 2.34MiB
250          webm       audio only DASH audio   62k , opus @ 70k, 2.85MiB
171          webm       audio only DASH audio  103k , vorbis@128k, 4.68MiB
251          webm       audio only DASH audio  109k , opus @160k, 5.10MiB
140          m4a        audio only DASH audio  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 6.13MiB
160          mp4        256x138    DASH video  108k , mp4_dash container, avc1.4d400b, 24fps, video only
134          mp4        640x348    DASH video  142k , mp4_dash container, avc1.4d401e, 24fps, video only, 3.42MiB
133          mp4        426x232    DASH video  242k , mp4_dash container, avc1.4d400c, 24fps, video only
136          mp4        1280x694   DASH video  473k , mp4_dash container, avc1.4d401f, 24fps, video only, 8.01MiB
135          mp4        854x464    DASH video 1155k , mp4_dash container, avc1.4d4014, 24fps, video only
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 1.63MiB
36           3gp        320x174    small , mp4v.20.3, mp4a.40.2, 2.98MiB
43           webm       640x360    medium , vp8.0, vorbis@128k, 7.44MiB
18           mp4        640x348    medium , avc1.42001E, mp4a.40.2@ 96k, 8.54MiB
22           mp4        1280x694   hd720 , avc1.64001F, mp4a.40.2@192k (best) 

请注意,第22行在其最右边显示“(最佳)”。这是唯一提供hd720画质的选项,这是在YouTube的网络浏览器中观看此视频时可以获得的最好画质。它是最清晰的,具有最佳的定义。当我使用最佳答案推荐的任何命令时:

youtube-dl -f bestvideo+bestaudio https://youtu.be/FWGC9SqA3J0

要么:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://youtu.be/FWGC9SqA3J0

我最终得到的视频质量较低/分辨率较低,并且文件大小较大。我不太清楚,但是该-f best选项绝对是唯一能够真正为我提供最佳分辨率的选项。

这是一些屏幕截图:

  1. 使用此处接受的较低质量 -f bestvideo+bestaudio选项作为正确答案(或仅使用默认选项:)youtube-dl https://youtu.be/FWGC9SqA3J0

    • 在此处输入图片说明
    • 注意顶部的图标有多模糊,打开的窗口和其中的小单词很难阅读!
    • 这远比我直接在浏览器中在YouTube上在线观看时获得的质量
    • 由于某些原因,该选项还占用了更多内存:视频为18.0 MB,-f best以下选项相比,我的系统下载和重新组合(音频+视频)所花的时间比下面的选项要长,该选项仅需进行一次下载即可,而无需重新组合因为它已经是一个文件了。
  2. 我建议使用更高质量的 -f best选项:

    • 在此处输入图片说明
    • 请注意,窗口顶部的小图标和窗口中的小字体更加清晰!
    • 我直接在YouTube浏览器中以最高分辨率观看时获得的分辨率相同
    • 由于某些原因,此选项还占用较少的内存:视频为14.8 MB。

补充阅读:

有关man youtube-dl详细信息,请参见。


1
奇怪的是,我看到1920x1080选项的列表,但是1280x720(hd720)选项仍然显示“最佳”
nmz787

您所有的屏幕截图都显示了一些电子设备。
本地主机

@localhost,是的。这些都是来自您在整个帖子的所有代码段中看到的视频whos URL的屏幕截图:youtu.be/FWGC9SqA3J0
加布里埃尔·斯台普斯

@GabrielStaples Aah。是的,那很有道理。对于那个很抱歉。
本地主机

是不是很奇怪,在可用格式的代码示例中,左侧的最高数字与屏幕上的最高像素数量不对应?

0

我是磁盘保护程序,因此我下载格式的视频1280 x 720
因为4k视频占用的硬盘空间更大。
所以我加youtube-dl〜/。如下所示的bashrc文件

设置工作-

打开终端并输入

  • nano ~/.bashrc
    现在转到文件的最底部,并添加以下命令
  • alias yt='youtube-dl -if best'
  • 通过按保存文件,Ctrl o然后按Enter
  • 通过退出文件 Ctrl x
  • source ~/.bashrc终端中的最后一个运行命令

实验-

打开终端,然后键入
yt https://www.youtube.com/watch?v=puPUJlV1-W4
它将开始以最佳质量下载视频。

说明-
巴什允许我们定义它当作捷径bash的命令别名
在我们的例子中,我们定义别名-
别名YT =“的YouTube-DL -i ˚F最好的”
,其中YT是“YouTube的-DL”快捷命令,这给救援
我们的手指键入长命令。
您可以在yt处写任何东西。
我设置一个标志-i中,这意味着youtube-dl -if best

下载错误时它将继续,例如,跳过播放列表中不可用的视频


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.