我已经在14.04中安装了youtube-dl。
我可以按照以下命令下载视频,
$ youtube-dl [youtube-link]
但是我想知道如何选择youtube视频的可用像素质量(即1080p,720p,480p等)。
他们在软件描述中说这是可能的(如下图所示),但是该怎么做。
-f best
选项。
我已经在14.04中安装了youtube-dl。
我可以按照以下命令下载视频,
$ youtube-dl [youtube-link]
但是我想知道如何选择youtube视频的可用像素质量(即1080p,720p,480p等)。
他们在软件描述中说这是可能的(如下图所示),但是该怎么做。
-f best
选项。
Answers:
要下载视频,请在命令后键入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'
或正如Gabriel Staples在此处指出的那样,以下命令通常会选择实际的最佳单个文件视频质量分辨率,而不是视频质量比特率:
youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
这些命令将确保您从视频中下载最高质量的mp4视频和m4a音频作为单个文件,或者将它们合并回单个mp4(ffmpeg
在我的情况下使用)。如果ffmpeg
或avconv
不可用,youtube-dl
应回退到单个文件-f best option
而不是默认文件。
资料来源:www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html
DASH
。那将无法玩!
DASH Video
。我尝试下载4K
,但这全都是DASH
格式(DASH
允许youtube保留带宽)。这是完全不同的,几乎是无法播放的。
avconv
。太慢了4K
。
您可以使用下载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)
请注意,youtube-dl
该选项将最后一个选项1280x720标记为“最佳”质量,并且默认情况下会下载该选项,但是以137开头的行实际上是更高质量的1920x1080。YouTube已将标有DASH的行的视频和音频流分离开,因此我们还需要选择质量最高的音频,在这种情况下,该行是从141开始的行。然后我们youtube-dl
再次运行,指定音频和视频:
youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ
它将下载1080p视频并自动将其与最高质量的音频合并。它还应自动删除单独的下载部分。这种方法需要一些额外的工作,但是会获得最佳效果。
DASH audio , opus @160k
or DASH audio 126k , audio@128k (44100Hz), 1.79MiB
或or 之间的选择DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB
。我必须选择,但对质量或兼容性不确定。
--ffmpeg-location
在%APPDATA%\youtube-dl\config.txt
为安装avconv / ffmpeg的目录。如果您有一个低端系统-f bestvideo[fps<=30]+bestaudio
,则最好也要避免使用60fps视频。
要选择特定的分辨率,您可以指定大小和音频质量,以便自动选择它们-因此对于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
文档。
~/.config/youtube-dl/config
下面提供了一些其他选项,根据您的方便程度,下载此处未提及的最佳质量的视频:
$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'
$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'
$ youtube-dl -f 'best[filesize<50M]'
$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'
参考:
直接来自youtube-dl github页面
ext=mp4 && height<=480 && filesize<50M
?
bash包装器脚本,提示输入该格式,其中包括所有可用的演绎形式,包括纯音频,纯视频,然后使用来流式传输视频/音频mpv
。
接受绝对YouTube网址和视频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 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 #
如果要下载视频而不是流式传输视频,只需删除
mpv --cache=1024
带有括号的部分和美元符号。
这个投票得票最多的答案 应该是可以为您提供最佳视频质量的正确选择,但是...不是。bestvideo+bestaudio
似乎只选择的是选项最佳的视频,最好的音频只有视频和音频只,然后将其合并两个在一起。请注意,这似乎也与youtube-dl的默认行为相同。但是,在我正在观看的视频上,最好的质量是单个预先合并的文件,该文件已经采用了合并的视频和音频格式。该bestvideo+bestaudio
选项未选择此质量最好的720p文件,因为它仅在寻找单独的视频和音频文件。详细信息如下。
解?让它抓取最好的同时包含视频和音频的单个文件,方法是:
youtube-dl -f best https://youtu.be/FWGC9SqA3J0
简而言之:使用-f best
选项,而不是-f bestvideo+bestaudio
选项!
更具体地说,请参见下面的运行结果
youtube-dl -F https://youtu.be/FWGC9SqA3J0
为了查看可以下载哪些视频'F'ormats:
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
:
我建议使用更高质量的 -f best
选项:
有关man youtube-dl
详细信息,请参见。
我是磁盘保护程序,因此我下载格式的视频1280 x 720
,
因为4k
视频占用的硬盘空间更大。
所以我加youtube-dl
〜/。如下所示的bashrc文件
设置工作-
打开终端并输入
nano ~/.bashrc
alias yt='youtube-dl -if best'
source ~/.bashrc
终端中的最后一个运行命令实验-
打开终端,然后键入yt https://www.youtube.com/watch?v=puPUJlV1-W4
它将开始以最佳质量下载视频。
说明-
巴什允许我们定义它当作捷径bash的命令别名
在我们的例子中,我们定义别名-
别名YT =“的YouTube-DL -i ˚F最好的”
,其中YT是“YouTube的-DL”快捷命令,这给救援
我们的手指键入长命令。
您可以在yt处写任何东西。
我设置一个标志-i中,这意味着youtube-dl -if best
下载错误时它将继续,例如,跳过播放列表中不可用的视频
默认情况下,youtube-dl将选择最佳质量。
man
页面上:“ youtube-dl现在默认下载YouTube所报告的最高可用质量,在某些情况下为1080p或720p。”