![如何从 youtube-dl 选择视频质量?](https://linux22.com/image/1046994/%E5%A6%82%E4%BD%95%E4%BB%8E%20youtube-dl%20%E9%80%89%E6%8B%A9%E8%A7%86%E9%A2%91%E8%B4%A8%E9%87%8F%EF%BC%9F.png)
我已经在我的 14.04 中安装了 youtube-dl。
我可以通过以下命令下载视频,
$ 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'
或加布里埃尔·斯台普斯指出这里,以下命令通常会选择实际最佳的单个文件视频质量分辨率而不是视频质量比特率:
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
答案2
您可以使用 下载 1080p youtube-dl
,但您需要做一些额外的工作。通常它只能下载 720p 作为最大值,即使您可以在 youtube.com 上看到 1080p。
运行以-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 视频并自动将其与最高质量的音频合并。它还会自动删除单独下载的部分。这种方法需要一点额外的工作,但会给你带来最好的效果。
答案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
),这样您就不会获得过大的下载:
mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config
--ignore-config
如果您想禁用特定 youtube-dl 运行的配置文件,则可以使用。
请注意,通常需要下载单独的视频和音频流并将它们合并。
有关更多示例,请参阅youtube-dl
的文档。
答案4
更新:使用yt-dlp
代替youtube-dl
!这是一个分支youtube-dl
,维护得更好,工作得更好!查看更多yt-dlp
在我的回答中。
首先,确保您拥有最新版本已youtube-dl
安装。
如何安装最新的版本的youtube-dl
看:
- https://github.com/ytdl-org/youtube-dl/#installation
- https://github.com/ytdl-org/youtube-dl/#how-do-i-update-youtube-dl
运行以下命令:
# On Linux Ubuntu:
# 1. Check your current version
youtube-dl --version
# 2.Uninstall your current version, if necessary
sudo apt remove -y youtube-dl
# 3. Now, install the latest version
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
# 4. Check your current version to ensure it updated
youtube-dl --version
如何获得最好的可用的视频质量。
这个答案得票最多, 应该可以为您提供最佳的视频质量,但是......它不是总是.bestvideo+bestaudio
似乎只选择最佳视频和最佳音频的选项仅限视频和仅音频,然后它将两者合并在一起。请注意,这似乎也与的默认行为相同youtube-dl
。但是,在我查看的视频中,最佳质量是一个预先合并的文件,该文件已经是视频和音频组合的格式。该bestvideo+bestaudio
选项没有选择这个最佳质量的 720p 文件,因为它只查找分离视频和音频文件。详情如下。
解决方案?让它抓住最好的单个文件它同时包含视频和音频,如下所示:
youtube-dl -f best 'https://youtu.be/FWGC9SqA3J0'
简而言之:为了获得最佳质量,您可能需要使用-f best
选项,而不是-f bestvideo+bestaudio
选项!请尝试两者以查看。它可能因视频而异。
youtube-dl
一般情况下各种示例的快速参考
我需要一个可以快速查找常用命令的地方。以下是一些命令:
# View the help menu (then press `/` to do a regular expression search`)
youtube-dl --help | less
# List all available format you can download for this video with
# `-F` or `--list-formats`
youtube-dl -F 'https://www.youtube.com/watch?v=-FzqOdRpCGw'
youtube-dl --list-formats 'https://www.youtube.com/watch?v=-FzqOdRpCGw'
# Download the best **single file** containing both audio and video already
# merged into one file
youtube-dl -f best \
'https://www.youtube.com/watch?v=-FzqOdRpCGw'
# Download the best **stand-alone video file** and the best **stand-alone audio
# file** and then **combine** them into one file
youtube-dl -f 'bestvideo+bestaudio' \
'https://www.youtube.com/watch?v=-FzqOdRpCGw'
# Use `-o` or `--output` to specify the name of the output file.
# - See the "OUTPUT TEMPLATE" section here for all of the metadata tags you can
# use to auto-generate parts of the filename:
# https://github.com/ytdl-org/youtube-dl/#output-template
youtube-dl -f 'bestvideo+bestaudio' \
'https://www.youtube.com/watch?v=-FzqOdRpCGw' --merge-output-format mkv \
-o 'best_merged.mkv'
# [includes auto-generated subtitles]
# `time` the whole download, saving **YouTube's autogenerated subtitles** into
# the video too, AND choosing a custom name for the output file, with the
# extension specified using the meta-data template format `$(ext)s`. See link
# below for more metadata format examples.
time youtube-dl -f best --write-auto-sub \
'https://www.youtube.com/watch?v=2WoDQBhJCVQ' -o 'greatest_shot.%(ext)s'
也可以看看:
- https://github.com/ytdl-org/youtube-dl/#output-template
- 文件名的更多元数据格式示例:https://github.com/ytdl-org/youtube-dl/#output-template-examples
- 超级用户:如何使用 youtube-dl 仅下载视频字幕
至少在某些情况下,证明效果-f best
更好:-f bestvideo+bestaudio
(注:以下所有电路原理图均为实物截图来自这个电气工程相关的视频教程:视频一 - LTspice 入门)。
更具体地说,请参阅下面的运行结果
youtube-dl -F 'https://youtu.be/FWGC9SqA3J0'
要查看哪些视频格式可供下载:
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
选项绝对是唯一真正能给我带来最佳分辨率的选项。
以下是一些截图我正在观看的教程视频视频中显示了电子电路图。请注意后者质量更高,更清晰(单击每个图像并在放大视图中比较小字体):
- 使用质量较低
-f bestvideo+bestaudio
这里接受的选项作为正确答案(或者仅使用默认选项:)youtube-dl 'https://youtu.be/FWGC9SqA3J0'
:
- 请注意顶部的图标有多模糊,以及打开的窗口和其中的小文字有多难阅读!
- 这是明显更糟比我直接在浏览器中在线观看 YouTube 时获得的质量更高。
- 由于某些原因,此选项还会占用更多内存:视频为 18.0 MB,和我的系统下载和重新组合(音频+视频)所花的时间比
-f best
下面的选项要长,因为下面的选项只需要下载一次,不需要重新组合,因为它已经是一个文件了。
- 使用更高质量
-f best
我推荐的选项:
补充阅读:
- 请
man youtube-dl
参阅详情。 - 我的答案如下:我如何更新 youtube-dl?。这也解决了问题:
警告:无法下载视频信息网页:HTTP 错误 410:已消失