如何从youtube-dl中选择video质量?

我在14.04中安装了youtube-dl。

我可以通过以下命令下载video,

$ youtube-dl [youtube-link] 

但我想知道如何选择youtubevideo的可用像素质量( 即1080p,720p,480p等

在软件描述中,他们说它是可能的(如下图所示),但是如何做…

SS

要下载video,请在命令后键入URL,如下所示:

 youtube-dl "http://www.youtube.com/watch?v=P9pzm5b6FFY" 

要选择video质量 ,首先使用-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来下载1280×720分辨率的MP4video,如下所示:

 youtube-dl -f 22 "http://www.youtube.com/watch?v=P9pzm5b6FFY" 

或者可选择使用以下标志自动下载可用的最佳音频和video曲目:

 youtube-dl -f bestvideo+bestaudio "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" 

该命令将确保您从video中下载最高质量的mp4video和m4a音频,并将它们合并为一个mp4(在我的情况下使用ffmpeg)。

资料来源: http : //www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

你可以使用youtube-dl下载1080p,但你需要做一些额外的工作。 通常它只会下载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已将最后一个选项1280×720标记为“最佳”质量,默认情况下它将下载,但以137开头的行实际上是更高质量的1920×1080。 Youtube为标有DASH的行分离了video和音频流,因此我们还需要选择最高质量的音频,在这种情况下是从141开始的行。然后我们再次运行youtube-dl ,指定音频和video:

 youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ 

它将下载1080pvideo,并将其与最高质量的音频自动合并。 它还应该自动删除单独下载的部分。 这种方法有点额外的工作,但会给你最好的结果。

要选择特定分辨率,您可以指定大小和音频质量,以便自动选择它们 – 因此对于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 

如果要禁用特定youtube-dl运行的配置文件,可以使用--ignore-config

请注意,通常它必须下载单独的video和音频流并合并它们。

有关更多示例,请参阅youtube-dl的doucmentation 。

一个bash包装器脚本,提示输入格式,其中包括所有可用的再现,包括仅音频,仅限video。

接受绝对的YouTubeurl和videoID。

 #!/ 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 # 

如果你想下载video而不是流式传输,只需删除mpv --cache=1024部分和带括号的美元符号。

根据您的方便,下载除了此处提到的最佳质量video之外的其他一些选项如下:

如果没有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]' 

下载最佳video格式但不超过50 MB

 $ youtube-dl -f 'best[filesize<50M]' 

通过HTTP / HTTPS协议直接链接下载最佳格式

 $ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]' 

参考:

直接来自youtube-dl github页面

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