A J*_*A J 403 command-line video downloaders youtube-dl
我已经在 14.04 中安装了 youtube-dl。
我可以通过以下命令下载视频,
$ youtube-dl [youtube-link]
Run Code Online (Sandbox Code Playgroud)
但我想知道如何选择 youtube 视频的可用像素质量(即 1080p、720p、480p 等)。
在软件描述中,他们说这是可能的(如下图所示),但是怎么做..

mch*_*hid 543
要下载视频,请在命令后键入 URL,如下所示:
youtube-dl 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Run Code Online (Sandbox Code Playgroud)
要选择视频质量,首先使用该-F选项列出可用格式,这是一个示例,
youtube-dl -F 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Run Code Online (Sandbox Code Playgroud)
这是输出:
[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)
Run Code Online (Sandbox Code Playgroud)
最好的质量是 22所以使用-f 22而不是-F像这样下载分辨率为 1280x720 的 MP4 视频:
youtube-dl -f 22 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Run Code Online (Sandbox Code Playgroud)
或者可以选择使用以下标志来自动下载作为单个文件可用的最佳音频和视频轨道:
youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Run Code Online (Sandbox Code Playgroud)
如果您在复用过程中遇到任何错误或视频质量选择问题,您可以使用以下命令之一:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Run Code Online (Sandbox Code Playgroud)
或者正如Gabriel Staples在这里指出的那样,以下命令通常会选择实际最佳的单文件视频质量分辨率而不是视频质量比特率:
youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Run Code Online (Sandbox Code Playgroud)
这些命令将确保您从视频中下载最高质量的 mp4 视频和 m4a 音频作为单个文件,或者将它们合并回单个 mp4(ffmpeg在我的情况下使用)。如果ffmpeg或avconv不可用,youtube-dl应回退到单个文件-f best option而不是默认值。
另外,单击以查看 Gabriel Staples 的相关回答。
来源:www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html
小智 178
您可以使用 下载 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)
Run Code Online (Sandbox Code Playgroud)
请注意,youtube-dl将最后一个选项 1280x720 标记为“最佳”质量,这就是它默认下载的内容,但以 137 开头的行实际上是更高质量的 1920x1080。Youtube 已将标有 DASH 的行的视频和音频流分开,因此我们还需要选择最高质量的音频,在本例中是以 141 开头的行。然后我们youtube-dl这次再次运行,指定音频和视频:
youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ
Run Code Online (Sandbox Code Playgroud)
它将下载 1080p 视频并将其与最高质量的音频自动合并。它还应该自动删除单独下载的部分。这种方法有点额外的工作,但会给你带来最好的结果。
Wil*_*ilf 65
要选择特定的分辨率,您可以指定大小和音频质量,以便自动选择它们 - 所以对于 480p:
-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'
Run Code Online (Sandbox Code Playgroud)
与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
Run Code Online (Sandbox Code Playgroud)
--ignore-config如果要禁用特定 youtube-dl 运行的配置文件,则可以使用。
请注意,它经常需要下载单独的视频和音频流并将它们合并。
有关更多示例,请参阅youtube-dl文档。
小智 30
下面给出了一些其他选项来下载除此处提到的以外的最佳质量视频,具体取决于您的方便:
$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'
Run Code Online (Sandbox Code Playgroud)
$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'
Run Code Online (Sandbox Code Playgroud)
$ youtube-dl -f 'best[filesize<50M]'
Run Code Online (Sandbox Code Playgroud)
$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'
Run Code Online (Sandbox Code Playgroud)
参考:
直接来自 youtube-dl github 页面
Gab*_*les 14
此处获得最多选票的答案 应该是正确的,可以为您提供最佳的视频质量,但是......事实并非如此。bestvideo+bestaudio似乎只选择最佳的视频,那是最好的选择音频视频只和仅音频,然后将其合并两个在一起。请注意,这似乎也与 youtube-dl 的默认行为相同。但是,在我正在查看的视频中,最好的质量是一个单独的、预先合并的文件,该文件已经采用了视频和音频组合的格式。该bestvideo+bestaudio选项没有选择这个质量最好的 720p 文件,因为它只寻找单独的视频和音频文件。详情如下。
解决方案?让它抓取包含视频和音频的最佳单个文件,而不是:
youtube-dl -f best https://youtu.be/FWGC9SqA3J0
Run Code Online (Sandbox Code Playgroud)
简而言之:使用-f best选项,而不是-f bestvideo+bestaudio选项!
(注意:下面的所有电路原理图实际上是来自这个电气工程相关视频教程的截图:视频一-LTspice 入门)。
更具体地说,请参见下面的运行结果
youtube-dl -F https://youtu.be/FWGC9SqA3J0
Run Code Online (Sandbox Code Playgroud)
为了查看哪些视频“格式”可供下载:
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)
Run Code Online (Sandbox Code Playgroud)
请注意,第 22 行在其最右侧显示“(最佳)”。这是提供 hd720 质量的唯一选项,这是我在 YouTube 上的网络浏览器中观看此视频时所能获得的最佳质量。它是最清晰的,具有最好的定义。当我使用最佳答案推荐的任一命令时:
youtube-dl -f bestvideo+bestaudio https://youtu.be/FWGC9SqA3J0
Run Code Online (Sandbox Code Playgroud)
或者:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://youtu.be/FWGC9SqA3J0
Run Code Online (Sandbox Code Playgroud)
我最终得到的视频质量较低/分辨率较低,并且文件较大。我不完全理解它,但该-f best选项绝对是唯一真正为我提供最佳分辨率的选项。
这是我正在观看的教程视频中的一些屏幕截图,其中显示了视频中的电子电路图。请注意后一个质量如何更高且更清晰(单击每个图像并在放大视图中比较小字体):
-f bestvideo+bestaudio选项作为正确答案(或仅使用默认选项:)youtube-dl https://youtu.be/FWGC9SqA3J0:
-f best下面的选项,其中只有做一个下载和没有重组因为它已经是一个文件了。-f best选项:详情请参阅man youtube-dl。
提示输入格式的 bash 包装器脚本,其中包括所有可用的格式,包括纯音频、纯视频。
接受绝对 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 format id: " FORMAT
## download the video
youtube-dl -f $FORMAT -g "$url"
## stream the video with mpv (no local file created)
# mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")
Run Code Online (Sandbox Code Playgroud)
示例输出:
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 #
Run Code Online (Sandbox Code Playgroud)
以下是对 youtube-dl 新手的流/格式的解释。
一些视频网站(例如 youtube)不仅提供不同分辨率的视频下载,而且在 youtube-dl 中提供称为格式的选项来分别下载视频和音频。对于 YouTube 来说,它只会分别提供最高质量的视频和最高质量的音频。-F以下是使用标志显示所有可用格式的示例输出:
$ youtube-dl -F https://youtube.com/watch?v=iYWzMvlj2RQ
[youtube] iYWzMvlj2RQ: Downloading webpage
[youtube] iYWzMvlj2RQ: Downloading embed webpage
[youtube] iYWzMvlj2RQ: Refetching age-gated info webpage
[info] Available formats for iYWzMvlj2RQ:
format code extension resolution note
249 webm audio only tiny 50k , opus @ 50k (48000Hz), 238.14KiB
250 webm audio only tiny 59k , opus @ 70k (48000Hz), 284.22KiB
251 webm audio only tiny 118k , opus @160k (48000Hz), 553.74KiB
140 m4a audio only tiny 157k , m4a_dash container, mp4a.40.2@128k (44100Hz), 628.52KiB
394 mp4 192x144 144p 51k , av01.0.00M.08, 30fps, video only, 241.57KiB
278 webm 192x144 144p 72k , webm container, vp9, 30fps, video only, 309.32KiB
395 mp4 320x240 240p 97k , av01.0.00M.08, 30fps, video only, 283.55KiB
160 mp4 192x144 144p 111k , avc1.4d400c, 15fps, video only, 524.55KiB
242 webm 320x240 240p 135k , vp9, 30fps, video only, 328.15KiB
396 mp4 480x360 360p 184k , av01.0.01M.08, 30fps, video only, 472.21KiB
243 webm 480x360 360p 221k , vp9, 30fps, video only, 560.40KiB
134 mp4 480x360 360p 240k , avc1.4d401e, 30fps, video only, 826.64KiB
133 mp4 320x240 240p 247k , avc1.4d400d, 30fps, video only, 1.16MiB
397 mp4 640x480 480p 302k , av01.0.04M.08, 30fps, video only, 801.75KiB
244 webm 640x480 480p 338k , vp9, 30fps, video only, 912.64KiB
135 mp4 640x480 480p 517k , avc1.4d401e, 30fps, video only, 1.71MiB
398 mp4 960x720 720p 541k , av01.0.05M.08, 30fps, video only, 1.48MiB
247 webm 960x720 720p 604k , vp9, 30fps, video only, 1.72MiB
399 mp4 1440x1080 1080p 893k , av01.0.08M.08, 30fps, video only, 2.55MiB
248 webm 1440x1080 1080p 981k , vp9, 30fps, video only, 2.99MiB
136 mp4 960x720 720p 1046k , avc1.4d401f, 30fps, video only, 3.47MiB
137 mp4 1440x1080 1080p 1923k , avc1.640028, 30fps, video only, 7.30MiB
18 mp4 480x360 360p 316k , avc1.42001E, 30fps, mp4a.40.2@ 96k (44100Hz), 1.50MiB
22 mp4 960x720 720p 858k , avc1.64001F, 30fps, mp4a.40.2@192k (44100Hz) (best)
Run Code Online (Sandbox Code Playgroud)
因此有很多不同的格式,但有些格式被标记为“仅音频”或“仅视频”。如果我选择使用指定的格式代码(例如 with )下载其中一种格式-f 137,我实际上会得到一个音频文件或一个没有音频的视频文件,这通常不是您想要的。如果我安装了 ffmpeg 并使用 指定了视频和音频格式-f 137+140,那么 youtube-dl 会下载视频和音频,然后将它们组合成一个视频文件。
如果您没有安装 ffmpeg,youtube-dl 将默认选择具有音频和视频的最高质量格式。最大分辨率为 720p(通常由格式代码 22 指定,因此您可以使用 进行下载-f 22)。如果您确实安装了 ffmpeg,youtube-dl 将能够下载真正的最佳质量视频(1080p 或更高,如果可用)和最佳质量音频,并在下载 mux(合并)后将它们合并到一个视频文件中,所以这是我推荐的。
摘要:安装 ffmpeg,然后您将能够简单地在youtube-dl [youtube url]没有任何标志的情况下在一个输出视频文件中自动获得最佳质量的视频和音频。
| 归档时间: |
|
| 查看次数: |
793124 次 |
| 最近记录: |