我可以通过以下命令下载视频,
$ youtube-dl [youtube-link]
但是我想知道如何选择youtube视频的可用像素质量(例如1080p) ,720p,480p等)。
在软件描述中,他们说这是可能的(如下图所示),但是该怎么做。.
#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
)。如果ffmpeg
或avconv
不可用,则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
评论
上面的描述已过时。在手册页中:“ youtube-dl现在默认下载YouTube所报告的最高可用质量,在某些情况下为1080p或720p。”请注意,YouTube采取了某种保护措施,以防止下载工具下载(甚至看不到)1080p版本,但是您仍然可以下载所有其他分辨率,包括720p(包括720p)。
我知道我参加聚会有点晚了,但是这是我的经验:askubuntu.com/a/1097056/327339。使用-f best选项。