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

我可以通过以下命令下载视频,

$ youtube-dl [youtube-link]


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

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



评论

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

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

我知道我参加聚会有点晚了,但是这是我的经验:askubuntu.com/a/1097056/327339。使用-f best选项。

#1 楼

要下载视频,请在命令后键入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

评论


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

– xyz
2014年9月13日下午4:21

我的意思是DASH Video。我尝试下载4K,但这全都是DASH格式(DASH允许youtube保留带宽)。这是根本不同的,大多数情况下将无法播放。

– xyz
2014-09-24 19:41

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

– mchid
2014-09-25 5:05



是。 Dash当然是可播放的,但是您需要使用avconv之类的东西来混合流。 4K太慢了。

– xyz
2014-09-29 8:39



@AjayKumarBasuthkar哇,这是youtube-dl的古老版本。令我惊讶的是,它实际上甚至可以工作!我通常建议坚持使用Ubunttu软件仓库,但对于youtube-dl,拥有最新的最新版本几乎是必不可少的。 (请参阅下一条评论)

– mchid
16年1月26日在23:48

#2 楼

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

-F一起运行以查看可用格式: br />请注意,youtube-dl已将最后一个选项1280x720标记为“最佳”质量,这是默认情况下将下载的内容,但是以137开头的行实际上是更高质量的1920x1080。 YouTube已将标有DASH的行的视频和音频流分离开,因此我们还需要选择质量最高的音频,在这种情况下,该行是以141开始。 >
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)


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

评论


非常感谢,不知道137 + 141

–whitesiroi
2015年5月5日14:48

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

–user643722
2015年6月10日12:13



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

– Antony
16年2月2日在23:19

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

–GreenReaper
18-4-6在22:16



警告:您请求了多种格式,但未安装ffmpeg或avconv。格式不会合并。

– ACV
20 Dec 10'在14:14

#3 楼

要选择特定的分辨率,您可以指定大小和音频质量,以便自动选择它们-因此对于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)上的配置文件,这样您就不会下载过多文件: youtube-dl运行。

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

有关更多示例,请参阅--ignore-config的文档。

评论


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

–ssnobody
17年1月22日在21:37

为〜/ .config / youtube-dl / config +1

– Marinos An
17年5月22日在18:15

#4 楼

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

下载可用的最佳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
19年6月21日在12:14



我使用的是youtube-dl -f'best [ext = mp4] + best [height <= 480] + best [filesize <100M]'youtube.com/watch?v=oInZYvMAjyw

– ejabu
20-2-12在0:53

#5 楼

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

接受绝对的YouTube URL和视频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部分和带括号的美元符号。


评论


这是一个非常不错的脚本,可以和twitch一起使用!

–伊凡
20-4-25在13:22

#6 楼

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

这里的答案得票最多,应该是可以为您提供最佳视频质量的正确方法,但不是。在仅视频和仅音频的选项中,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上的网络浏览器中观看此视频时可获得的最好画质。它是最清晰的,具有最佳的定义。当我使用最高答案推荐的命令之一时:

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

这是我正在观看的教程视频中的一些屏幕截图,其中显示了视频中的电子电路图。请注意,后者质量更高,更清晰(单击每个图像并在放大视图中比较细字体):



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



注意顶部的图标有多模糊,以及如何困难读取的是打开的窗口和其中的小词!
比我在浏览器中直接在YouTube上在线观看时获得的质量明显差。
由于某些原因,此选项还占用更多内存: video是18.0 MB,与下面的-f best选项相比,我的系统下载和重新组合(音频+视频)所花的时间更长,该选项仅需执行一次下载即可,而无需重新组合,因为它已经是一个文件了。



使用我建议的更高质量的-f best选项:



注意顶部和底部的小图标有多清晰短信窗口中的所有字体都是!
这与我在YouTube浏览器中直接以最高分辨率观看时获得的分辨率相同。
由于某些原因,此选项占用的内存也更少:视频为14.8 MB。



其他阅读:

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

评论


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

–nmz787
19年1月21日,18:07



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

–本地主机
19年6月16日在6:36

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

–加百利·斯台普斯
19年6月16日在8:21

@GabrielStaples Aah。是的,这很有道理。对于那个很抱歉。

–本地主机
19年6月16日在23:23

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

–本
19-09-24在7:21

#7 楼

默认情况下,youtube-dl将选择最佳质量。

评论


是的,根据自述文件,您还可以选择所需的格式,请参见此处:github.com/rg3/youtube-dl/blob/master/…

– AjayKumarBasuthkar
16 Jan 26 '17:18



#8 楼

我是磁盘保护程序,所以我下载了1280 x 720格式的视频,因为4k视频占用了更大的硬盘空间。 >设置工作-
打开终端并键入



youtube-dl
现在转到文件的最底部,并在下面的命令中添加以下内容
nano ~/.bashrc
通过按Ctrl o保存文件,然后按Enter

通过按Ctrl x

退出文件,最后在终端中运行命令alias yt='youtube-dl -if best' />实验-
打开终端并输入source ~/.bashrc
,它将开始下载最优质的视频。
在本例中,我们将别名定义为-
alias yt ='youtube-dl -if best'
其中yt是'youtube-dl'的快捷命令,可以减轻手指输入的负担长命令。您可以在yt处编写任何内容。
我在yt https://www.youtube.com/watch?v=puPUJlV1-W4中设置了-i标志,表示


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


#9 楼

youtube-dl的最佳想法并不完美。以下面的示例为例:
pi@rpi-lounge:~ $ youtube-dl -F https://youtu.be/Xj3gU3jACe8
[youtube] Xj3gU3jACe8: Downloading webpage
[info] Available formats for Xj3gU3jACe8:
format code  extension  resolution note
249          webm       audio only tiny   55k , opus @ 50k (48000Hz), 1.11MiB
250          webm       audio only tiny   74k , opus @ 70k (48000Hz), 1.47MiB
140          m4a        audio only tiny  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 2.92MiB
251          webm       audio only tiny  143k , opus @160k (48000Hz), 2.89MiB
394          mp4        256x144    144p   81k , av01.0.00M.08, 25fps, video only, 1.54MiB
278          webm       256x144    144p   99k , webm container, vp9, 25fps, video only, 2.14MiB
160          mp4        256x144    144p  110k , avc1.4d400c, 25fps, video only, 2.38MiB
395          mp4        426x240    240p  184k , av01.0.00M.08, 25fps, video only, 3.39MiB
242          webm       426x240    240p  230k , vp9, 25fps, video only, 4.90MiB
133          mp4        426x240    240p  245k , avc1.4d4015, 25fps, video only, 5.19MiB
396          mp4        640x360    360p  395k , av01.0.01M.08, 25fps, video only, 7.20MiB
243          webm       640x360    360p  418k , vp9, 25fps, video only, 9.03MiB
134          mp4        640x360    360p  633k , avc1.4d401e, 25fps, video only, 13.61MiB
397          mp4        854x480    480p  712k , av01.0.04M.08, 25fps, video only, 13.13MiB
244          webm       854x480    480p  774k , vp9, 25fps, video only, 16.75MiB
135          mp4        854x480    480p 1160k , avc1.4d401e, 25fps, video only, 25.45MiB
398          mp4        1280x720   720p 1456k , av01.0.05M.08, 25fps, video only, 26.20MiB
247          webm       1280x720   720p 1539k , vp9, 25fps, video only, 33.49MiB
136          mp4        1280x720   720p 2316k , avc1.4d401f, 25fps, video only, 50.46MiB
399          mp4        1920x1080  1080p 2492k , av01.0.08M.08, 25fps, video only, 45.96MiB
248          webm       1920x1080  1080p 2700k , vp9, 25fps, video only, 58.80MiB
137          mp4        1920x1080  1080p 4337k , avc1.640028, 25fps, video only, 91.16MiB
400          mp4        2560x1440  1440p 7468k , av01.0.12M.08, 25fps, video only, 143.60MiB
271          webm       2560x1440  1440p 8993k , vp9, 25fps, video only, 189.90MiB
401          mp4        3840x2160  2160p 14110k , av01.0.12M.08, 25fps, video only, 278.39MiB
313          webm       3840x2160  2160p 18006k , vp9, 25fps, video only, 387.17MiB
18           mp4        640x360    360p  734k , avc1.42001E, 25fps, mp4a.40.2@ 96k (44100Hz), 16.55MiB (best)

以下命令:
youtube-dl -f 137+251  https://youtu.be/Xj3gU3jACe8

产生的结果比这种用法要好得多:
youtube-dl -f 18  https://youtu.be/Xj3gU3jACe8 (marked as best)

似乎还有更多尝试指定高度滤镜以限制为1080p的错误不起作用。它还会下载4k变体(值得注意的是,该变体也未标记为最佳)。
youtube-dl -f "bestvideo[height<=1080,ext=mp4]+bestaudio[ext=m4a]" https://youtu.be/Xj3gU3jACe8

pi@rpi-lounge:~ $ youtube-dl --version
2020.06.16.1