Shell youtube dl DASH视频和音频质量最高,无需人工干预

Shell youtube dl DASH视频和音频质量最高,无需人工干预,shell,video,youtube,youtube-api,osx-yosemite,Shell,Video,Youtube,Youtube Api,Osx Yosemite,使用youtube dl,我首先查看可用的视频质量,然后在第二步中下载最高质量的视频(在本例中为-f 137+140)。Youtube dl将自动合并音频和视频流(破折号格式) 如何使用shell脚本自动执行该操作?对于每个URL,选择最高的音频和视频质量 > youtube-dl -F 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'

使用youtube dl,我首先查看可用的视频质量,然后在第二步中下载最高质量的视频(在本例中为
-f 137+140
)。Youtube dl将自动合并音频和视频流(破折号格式)

如何使用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最佳视频[ext!=webm]‌​+最佳音频[ext!=webm]‌​/最好的[ext!=webm]

或者您可以使用

youtube-dl https://www.youtube.com/watch?v=blabla

这将下载最高质量的视频和音频,并自动合并它们。我想我在某个地方听说你需要安装ffmpeg来实现这种自动行为。但我敢打赌大多数系统已经有了它。

我发现了一些奇怪的情况,默认情况下(请参阅)
bestvideo+bestaudio/best
即使在1080p可用时也会下载720p视频。720p上的比特率稍高的原因是,因此youtube dl的质量似乎更好。我更喜欢更高的分辨率,其他所有的youtube下载应用程序都下载了1080p(作为控件)

因此,我提议并使用:

-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best
它将寻找最好的,至少1920宽的视频。如果这不可用,它将求助于它通常会选择的方法。末尾的/best部分是默认配置的一部分


另一方面,我建议将
%(format_id)s
放在文件名的某个位置,这样您就知道该文件在使用什么了。如果您以后想在不使用存档的情况下重新下载一组视频,使用
--无覆盖
,质量更好/不同的文件名将在旧文件名旁边形成一个新文件名(以便您可以进行比较或其他任何操作)。

由于格式数量有限,我做了:

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就不会下载,如果没有下载,那么最好从22开始。唯一的问题是,你将有最好的webm作为一个副本,但你可以使用ext=webm可以避免这种情况

当然,您可以从313+140或任何您想要的更高格式开始

youtube dl-f最佳“youtube\u URL” 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“最佳视频+最佳音频/最佳视频+最佳音频”-合并输出格式mp4“youtube\u 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'bestvideo[ext=webm]+bestaudio[ext=m4a]/bestvideo+bestaudio'-合并输出格式mp4'youtube\u URL'
希望有帮助

如何只获得MP4?没有WebM?
-f bestvideo[ext!=WebM]+bestaudio[ext!=WebM]/best[ext!=WebM]
。由于版本
2015.04.26
这是默认设置(请参阅),因此无需手动指定。它不一定会下载最佳音频。自2015年以来,youtube dl使用
-f bestvideo+bestaudio/best
作为默认格式。这意味着当可用时,它将尝试下载作为单个文件(DASH)的
bestaudio
流,但如果不存在,它将下载
best
音频视频流并从中提取音频。问题是,对于某些YT视频,最高质量的DASH音频流的比特率低于
最佳
音频视频流中的音频。目前正在讨论是否应在以下位置解决此问题,如屏幕截图所示:“最佳”在本示例中(通常)为1280x720。这就是你通过这种方式得到的。我不能对这个答案投反对票,因为这是它应得的…@TNT实际上不是。括号中最好的意味着最好的完整视频。但是如果你不提供一个质量,它实际上会继续,并分别下载最好的视频和最好的音频。并将它们合并形成最终输出,然后删除原始视频和音频文件。这些步骤实际上显示在终端中。我亲身体验了输出结果。在本例中,OP将获得1080p视频。@Lilytakshi对不起,你说得对!幸运的是我没有否决你的答案。我真丢脸!我现在投票了。正如建议的那样,我必须安装
ffmpeg
,以便它单独获取最好的文件并合并它们。它不一定会下载最好的音频。自2015年以来,youtube dl使用
-f bestvideo+bestaudio/best
作为默认格式。这意味着当可用时,它将尝试下载作为单个文件(DASH)的
bestaudio
流,但如果不存在,它将下载
best
音频视频流并从中提取音频。问题是,对于某些YT视频,(短横线)音频流质量低于
最佳
音频视频流中的音频。目前正在讨论是否应在高分辨率视频教程或音乐-“视频”中解决这一问题,对于前者
bestvideo+worstaudio
和后者
worstvideo+bestaudio
,将最佳和最差选项结合起来有时是有意义的。只是为了完整。