如何从youtube-dl中选择video质量?
我在14.04中安装了youtube-dl。
我可以通过以下命令下载video,
$ youtube-dl [youtube-link]
但我想知道如何选择youtubevideo的可用像素质量( 即1080p,720p,480p等 ) 。
在软件描述中,他们说它是可能的(如下图所示),但是如何做…
要下载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将选择最佳质量。