youtube-dl DASH 视频和音频,无需人工干预即可获得最高质量
youtube-dl DASH video and audio in highest quality without human intervention
使用 youtube-dl,我首先查看可用的视频质量,然后在第二步中我下载尽可能高的质量(在本例中 -f 137+140
)。 Youtube-dl会自动合并音视频流(DASH格式)
如何使用 shell 脚本实现自动化?每 URL,选择最高的音频和视频质量?
> youtube-dl -F 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'
[youtube] Downloading login page
[youtube] Logging in
[youtube] VAdRBLyjLRQ: Downloading webpage
[youtube] VAdRBLyjLRQ: Downloading video info webpage
[youtube] VAdRBLyjLRQ: Extracting video information
[youtube] VAdRBLyjLRQ: Downloading DASH manifest
[youtube] VAdRBLyjLRQ: Downloading DASH manifest
[info] Available formats for VAdRBLyjLRQ:
format code extension resolution note
249 webm audio only DASH audio , opus @ 50k
250 webm audio only DASH audio , opus @ 70k
251 webm audio only DASH audio , opus @160k
171 webm audio only DASH audio 117k , vorbis@128k (44100Hz), 7.68MiB
140 m4a audio only DASH audio 128k , m4a_dash container, aac @128k (44100Hz), 11.58MiB
160 mp4 256x144 DASH video 112k , avc1.4d400c, 15fps, video only, 9.94MiB
278 webm 256x144 DASH video 136k , webm container, VP9, 15fps, video only, 9.10MiB
133 mp4 426x240 DASH video 248k , avc1.4d4015, 30fps, video only, 22.27MiB
242 webm 426x240 DASH video 316k , vp9, 30fps, video only, 22.20MiB
243 webm 640x360 DASH video 557k , vp9, 30fps, video only, 41.05MiB
134 mp4 640x360 DASH video 609k , avc1.4d401e, 30fps, video only, 52.94MiB
244 webm 854x480 DASH video 1021k , vp9, 30fps, video only, 74.05MiB
135 mp4 854x480 DASH video 1115k , avc1.4d401f, 30fps, video only, 97.02MiB
247 webm 1280x720 DASH video 2011k , vp9, 30fps, video only, 150.61MiB
136 mp4 1280x720 DASH video 2282k , avc1.4d401f, 30fps, video only, 189.40MiB
248 webm 1920x1080 DASH video 3838k , vp9, 30fps, video only, 286.61MiB
137 mp4 1920x1080 DASH video 4209k , avc1.640028, 30fps, video only, 354.19MiB
17 3gp 176x144
36 3gp 320x240
5 flv 400x240
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
> youtube-dl -f 137+140 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'
[youtube] Downloading login page
[youtube] Logging in
[youtube] VAdRBLyjLRQ: Downloading webpage
[youtube] VAdRBLyjLRQ: Downloading video info webpage
[youtube] VAdRBLyjLRQ: Extracting video information
(...)
只需使用 -f bestvideo+bestaudio/best
即可获得最高质量。
如果您想使用 MP4 格式容器而不是 WebM,请使用:
-f bestvideo[ext!=webm]+bestaudio[ext!=webm]/best[ext!=webm]
.
或者你可以直接使用,
youtube-dl https://www.youtube.com/watch?v=blabla
这将下载最高质量的视频和音频并自动合并它们。而且我想我在某个地方听说您需要安装 ffmpeg 才能实现这种自动行为。但我敢打赌大多数系统已经有了它。
我发现了一些奇怪的情况,默认情况下(请参阅 #5447, #5456)bestvideo+bestaudio/best
即使在 1080p 可用时也会下载 720p 视频。 720p 的比特率略高 的原因,因此 youtube-dl 的质量似乎更好。我更喜欢更高的分辨率,所有其他花哨的 youtube 下载器应用程序都下载了 1080p(作为对照)。
因此我提出并使用这个:
-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best
它将寻找最好的,至少 1920 宽的视频。如果那不可用,它将求助于它通常会选择的内容。最后的 /best 部分是默认配置的一部分。
附带说明一下,我建议将 %(format_id)s
放在文件名的某处,这样您就知道该文件正在使用什么。如果您稍后想在不使用存档的情况下重新下载一堆视频,--no-overwrites
,better/different 质量将在旧文件旁边形成一个新文件名(因此您可以进行比较或其他)。
由于格式数量有限我做了:
youtube-dl -f 299+140 "http://www.youtube.com/watch?v=P9pzm5b6FFY"
youtube-dl -f 137+140 "http://www.youtube.com/watch?v=P9pzm5b6FFY"
youtube-dl -f best "http://www.youtube.com/watch?v=P9pzm5b6FFY"
如果 299+140 已下载,则 137+140 不会下载,如果其中 none 个已下载,则最好从 22 开始。唯一的问题是您将拥有webm 中最好的作为副本,但您可以使用 ext!=webm 来避免这种情况。
当然,您可以从 313+140 或任何您想要的更高格式开始。
youtube-dl -f best 'youtube_URL'
或者,
youtube-dl -f 'bestvideo+bestaudio/bestvideo+bestaudio' --merge-output-format mp4 'youtube_URL'
或者,
youtube-dl -f 'bestvideo[ext=webm]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'youtube_URL'
希望对您有所帮助!
使用 youtube-dl,我首先查看可用的视频质量,然后在第二步中我下载尽可能高的质量(在本例中 -f 137+140
)。 Youtube-dl会自动合并音视频流(DASH格式)
如何使用 shell 脚本实现自动化?每 URL,选择最高的音频和视频质量?
> youtube-dl -F 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'
[youtube] Downloading login page
[youtube] Logging in
[youtube] VAdRBLyjLRQ: Downloading webpage
[youtube] VAdRBLyjLRQ: Downloading video info webpage
[youtube] VAdRBLyjLRQ: Extracting video information
[youtube] VAdRBLyjLRQ: Downloading DASH manifest
[youtube] VAdRBLyjLRQ: Downloading DASH manifest
[info] Available formats for VAdRBLyjLRQ:
format code extension resolution note
249 webm audio only DASH audio , opus @ 50k
250 webm audio only DASH audio , opus @ 70k
251 webm audio only DASH audio , opus @160k
171 webm audio only DASH audio 117k , vorbis@128k (44100Hz), 7.68MiB
140 m4a audio only DASH audio 128k , m4a_dash container, aac @128k (44100Hz), 11.58MiB
160 mp4 256x144 DASH video 112k , avc1.4d400c, 15fps, video only, 9.94MiB
278 webm 256x144 DASH video 136k , webm container, VP9, 15fps, video only, 9.10MiB
133 mp4 426x240 DASH video 248k , avc1.4d4015, 30fps, video only, 22.27MiB
242 webm 426x240 DASH video 316k , vp9, 30fps, video only, 22.20MiB
243 webm 640x360 DASH video 557k , vp9, 30fps, video only, 41.05MiB
134 mp4 640x360 DASH video 609k , avc1.4d401e, 30fps, video only, 52.94MiB
244 webm 854x480 DASH video 1021k , vp9, 30fps, video only, 74.05MiB
135 mp4 854x480 DASH video 1115k , avc1.4d401f, 30fps, video only, 97.02MiB
247 webm 1280x720 DASH video 2011k , vp9, 30fps, video only, 150.61MiB
136 mp4 1280x720 DASH video 2282k , avc1.4d401f, 30fps, video only, 189.40MiB
248 webm 1920x1080 DASH video 3838k , vp9, 30fps, video only, 286.61MiB
137 mp4 1920x1080 DASH video 4209k , avc1.640028, 30fps, video only, 354.19MiB
17 3gp 176x144
36 3gp 320x240
5 flv 400x240
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
> youtube-dl -f 137+140 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'
[youtube] Downloading login page
[youtube] Logging in
[youtube] VAdRBLyjLRQ: Downloading webpage
[youtube] VAdRBLyjLRQ: Downloading video info webpage
[youtube] VAdRBLyjLRQ: Extracting video information
(...)
只需使用 -f bestvideo+bestaudio/best
即可获得最高质量。
如果您想使用 MP4 格式容器而不是 WebM,请使用:
-f bestvideo[ext!=webm]+bestaudio[ext!=webm]/best[ext!=webm]
.
或者你可以直接使用,
youtube-dl https://www.youtube.com/watch?v=blabla
这将下载最高质量的视频和音频并自动合并它们。而且我想我在某个地方听说您需要安装 ffmpeg 才能实现这种自动行为。但我敢打赌大多数系统已经有了它。
我发现了一些奇怪的情况,默认情况下(请参阅 #5447, #5456)bestvideo+bestaudio/best
即使在 1080p 可用时也会下载 720p 视频。 720p 的比特率略高 的原因,因此 youtube-dl 的质量似乎更好。我更喜欢更高的分辨率,所有其他花哨的 youtube 下载器应用程序都下载了 1080p(作为对照)。
因此我提出并使用这个:
-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best
它将寻找最好的,至少 1920 宽的视频。如果那不可用,它将求助于它通常会选择的内容。最后的 /best 部分是默认配置的一部分。
附带说明一下,我建议将 %(format_id)s
放在文件名的某处,这样您就知道该文件正在使用什么。如果您稍后想在不使用存档的情况下重新下载一堆视频,--no-overwrites
,better/different 质量将在旧文件旁边形成一个新文件名(因此您可以进行比较或其他)。
由于格式数量有限我做了:
youtube-dl -f 299+140 "http://www.youtube.com/watch?v=P9pzm5b6FFY"
youtube-dl -f 137+140 "http://www.youtube.com/watch?v=P9pzm5b6FFY"
youtube-dl -f best "http://www.youtube.com/watch?v=P9pzm5b6FFY"
如果 299+140 已下载,则 137+140 不会下载,如果其中 none 个已下载,则最好从 22 开始。唯一的问题是您将拥有webm 中最好的作为副本,但您可以使用 ext!=webm 来避免这种情况。
当然,您可以从 313+140 或任何您想要的更高格式开始。
youtube-dl -f best 'youtube_URL'
或者,
youtube-dl -f 'bestvideo+bestaudio/bestvideo+bestaudio' --merge-output-format mp4 'youtube_URL'
或者,
youtube-dl -f 'bestvideo[ext=webm]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'youtube_URL'
希望对您有所帮助!