使用youtube-dl和yt-dlp下载视频!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用youtube-dl和yt-dlp下载视频!相关的知识,希望对你有一定的参考价值。

我们在某网站上观看视频时, 经常会碰到以下的尴尬情况. 本文将介绍如何使用youtube-dl和yt-dlp下载Youxxbe上的视频.

导语

我们在某网站上观看视频时, 经常会碰到以下的尴尬情况, 不是被删了就是被设为私有了, 十分烦人.

其实我们可以通过youtube-dl和yt-dlp将Youxxbe上的视频下载到自己电脑上, 以防万一. 本文将介绍如何使用这两款工具下载视频.

youtube-dl

由于版权问题, youtube-dl的下载速度非常慢, 大概只有几十KB/s, 推荐使用youtube-dl的分叉产品yt-dlp(YouTube DownLoad Plus).

如果在读这篇文章的读者还在使用youtube-dl, 强烈建议体验下yt-dlp.

yt-dlp

安装yt-dlp

安装yt-dlp十分简单, 下载文件后放到PATH指定的路径中, 再添加执行权限即可. 本文将其放置在/usr/local/bin/下.

笔者使用的是Linux系统, 执行以下两条简单命令即可安装完成. 如果是使用Windows/MAC的读者, 安装方法请移步到最后的参考, 参考官方文档.

$ sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
$ sudo chmod a+rx /usr/local/bin/yt-dlp 

更新yt-dlp

$ yt-dlp -U

下载视频

使用下面的命令下载视频, 会自动选择最好的画质进行下载.

但是请注意: 在命令行下使用时, 部分的URL中都包含&, 而&在shell中表示后台运行的意思, 会导致运行出错, 所以URL要使用引号\'\'包裹起来

$ yt-dlp <URL>

指定格式

下载视频时指定格式, 此处为mp4格式, 当然也可以指定其他的格式

$ yt-dlp --merge-output-format mp4 <URL>

查看可用的分辨率

查看视频的分辨率

$ yt-dlp -F <URL>


下载指定的音视频, 可单独下载音频或视频. 如果要同时下载音频和视频, 可使用id1+id2, 下载后会自动合并, 例如yt-dlp -f 600+598 <URL>

$ yt-dlp -f <ID> <URL>

使用cookies

对于部分视频, 需要登录才能下载到1080p画质. 比较简单的做法是在浏览器登录视频网站, 然后直接使用浏览器的cookies, 在--cookies-from-browser选项后指定浏览器即可.

$ yt-dlp -F --cookies-from-browser firefox <URL>

参考

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

【中文标题】youtube-dl 最高质量的 DASH 视频和音频,无需人工干预【英文标题】:youtube-dl DASH video and audio in highest quality without human intervention 【发布时间】:2015-10-16 08:47:16 【问题描述】:

使用 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                                                                                   
(...)

【问题讨论】:

例如对于高分辨率视频教程或音乐“视频”,有时将最佳和最差选项结合起来是有意义的,例如前者bestvideo+worstaudio 和后者worstvideo+bestaudio。只是为了完整性。 【参考方案1】:

只需使用-f bestvideo+bestaudio/best 即可获得最高质量。

如果您想更喜欢 MP4 格式的容器而不是 WebM,请使用:

-f bestvideo[ext!=webm]‌​+bestaudio[ext!=webm]‌​/best[ext!=webm].

【讨论】:

如何只获取 MP4?没有 WebM? -f bestvideo[ext!=webm]+bestaudio[ext!=webm]/best[ext!=webm]. 因为版本2015.04.26这是默认的(见here)所以不需要手动指定。 它不一定会下载最好的音频。自 2015 年起,youtube-dl 使用 -f bestvideo+bestaudio/best 作为默认格式。这意味着它将尝试下载作为单个文件 (DASH) 的bestaudio 流,但如果它不存在,它将下载best 音频-视频流并从中提取音频。问题是,对于某些 YT vid,最高质量的 DASH 音频流的比特率低于 best 音频-视频流中的音频。关于是否应通过github.com/rg3/youtube-dl/issues/9302 解决此问题的讨论正在进行中【参考方案2】:

或者你可以直接使用,

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

这将下载最高质量的视频和音频并自动合并它们。而且我想我在某处听说您需要安装 ffmpeg 才能具有这种自动行为。但我敢打赌,大多数系统已经有了它。

【讨论】:

如屏幕截图所示,“最佳”在此示例案例中(通常)为 1280x720。这就是你通过这种方式得到的。我不能拒绝这个答案,因为它应得的...... @TNT 实际上没有。括号中的最好表示最好的完整视频。但是,如果您不提供质量,它实际上会继续下载最好的视频和最好的音频。并将它们组合起来形成最终的输出,然后删除原始的视频和音频文件。这些步骤实际上显示在终端中。我亲身体验了输出。在此示例中,OP 将获得 1080p 视频。 @Lilytakshi 对不起,你是对的!幸运的是,我没有否决您的回答。真丢人!我现在投了赞成票。 按照建议,我必须安装 ffmpeg 才能分别获取最佳文件并合并它们 它不一定会下载最好的音频。自 2015 年以来,youtube-dl 使用 -f bestvideo+bestaudio/best 作为默认格式。这意味着它将尝试下载作为单个文件 (DASH) 的bestaudio 流,但如果它不存在,它将下载best 音频-视频流并从中提取音频。问题是,对于某些 YT vid,(DASH)音频流质量低于best 音频视频流中的音频。关于是否应通过github.com/rg3/youtube-dl/issues/9302 解决此问题的讨论正在进行中【参考方案3】:

我发现了一些奇怪的情况,即默认(参见#5447、#5456)bestvideo+bestaudio/best 会下载 720p 视频,即使 1080p 可用。原因是 720p 的比特率略高,因此 youtube-dl 的质量似乎更好。我更喜欢更高的分辨率,所有其他花哨的 youtube 下载器应用程序都下载了 1080p(作为控制)。

因此我提出并使用这个:

-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best

它将寻找最好的、至少 1920 宽的视频。如果那不可用,它将诉诸它通常会选择的东西。最后的 /best 部分是默认配置的一部分。

在旁注中,我建议将%(format_id)s 放在文件名中的某个位置,这样您就知道该文件正在使用什么。如果您以后想在不使用存档的情况下重新下载一堆视频,使用--no-overwrites,更好/不同的质量将在旧文件旁边形成一个新文件名(以便您可以比较或其他)。

【讨论】:

【参考方案4】:

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

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 或任何您想要的更高格式开始。

【讨论】:

【参考方案5】:
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和yt-dlp下载视频!的主要内容,如果未能解决你的问题,请参考以下文章

命令行视频下载工具you-get和youtube-dl

youtube-dl 下载在播放列表上停止,视频丢失

youtube-dl:将视频下载为没有音频的最佳质量 mp4?

如何通过 youtube-dl 接收的数据在客户端创建视频文件?

如何使用youtube-dl刻录/硬编码已下载的youtube视频的字幕

youtube-dl 不下载自动生成的字幕