type
status
date
slug
summary
tags
category
icon
password
Sub-item
Parent item
前言
如果你是一个喜欢从YouTube等视频网站下载视频的人,你可能已经知道了
youtube-dl
这个强大的命令行工具。它可以让你轻松地下载各种格式和分辨率的视频,甚至是字幕和评论。但是,最近你可能也发现了,youtube-dl的下载速度变得非常慢,甚至有时候会失败。这是因为YouTube对youtube-dl进行了一些反制措施,导致它无法正常工作。那么,有没有什么替代方案呢?答案是有的,它就是
yt-dlp
。yt-dlp是一个基于youtube-dl的分支项目,它不仅继承了youtube-dl的所有功能,还添加了一些新的特性和修复了一些问题。例如,它可以绕过YouTube的限速,支持SponsorBlock API,可以下载YouTube的剪辑和故事,可以指定格式的排序方式,可以嵌入缩略图,可以下载部分年龄限制的内容,等等。你可以在这里查看yt-dlp的完整介绍和文档。那么,如何使用yt-dlp呢?其实,它的用法和youtube-dl非常相似,如果你已经熟悉youtube-dl的命令,你可以很快地上手yt-dlp。下面,我将给出一些常见的用法示例,希望对你有所帮助。
安装yt-dlp
首先,你需要安装Python和ffmpeg,这两个是yt-dlp的依赖。你可以从
这里
下载Python,从这里
下载ffmpeg。安装Python时,请确保勾选了pip和添加系统环境变量的选项。安装ffmpeg时,请把bin目录添加到系统环境变量中。然后,你可以用pip来安装yt-dlp,只需在命令行中输入:
或者,你也可以直接从
这里
下载yt-dlp的exe文件,然后把它放到系统环境变量的目录中,比如和ffmpeg.exe放在一起。下载视频
![Video preview](https://i.ytimg.com/vi/MPywGQPLJPo/hqdefault.jpg)
我可以直接输入
这样,yt-dlp就会自动选择最佳的视频格式和音频格式,然后下载并合并它们。如果你想指定输出的文件格式,你可以使用--merge-output-format参数,比如:
这样,yt-dlp就会把视频和音频合并成mp4格式的文件。
查看和选择视频格式
如果你想查看视频有哪些可用的格式和分辨率,你可以使用-F参数,比如:
这样,yt-dlp就会列出视频的所有格式,每个格式都有一个ID,一个扩展名,一个分辨率,一个帧率,一个文件大小,一个视频编码,一个音频编码等信息。如果是audio only,表示只有音频,没有视频;如果是video only,表示只有视频,没有音频。你可以根据这些信息,选择你想要的格式,然后使用-f参数来下载,比如:
这样,yt-dlp就会下载ID为22的格式,如果你想下载视频和音频分开的格式,你可以用+号来连接两个ID,比如:
这样,yt-dlp就会下载ID为137的视频格式,也就是mp4格式,1920x1080分辨率的视频,以及ID为140的音频格式,也就是m4a格式的音频,然后合并它们。
如果你不想指定具体的ID,而是想让yt-dlp自动选择最佳的格式,你可以使用一些特殊的符号,比如:
这样,yt-dlp就会选择最佳的mp4视频和m4a音频,然后合并它们。你还可以使用其他的符号,比如
best
,worst
,height
,width
,abr
,vbr
等,来指定你想要的格式条件下载播放列表
如果你想下载一个播放列表中的所有视频,你只需要提供播放列表的URL,就可以下载它。比如,我想下载这个播放列表:
我可以直接输入
这样,yt-dlp就会下载播放列表中的所有视频,按照默认的格式和顺序。如果你想指定输出的文件格式,你可以使用--merge-output-format参数,比如:
这样,yt-dlp就会把所有视频和音频合并成mp4格式的文件。
如果你想指定下载的视频格式,你可以使用-f参数,比如:
这样,yt-dlp就会下载ID为22的格式
如果你想指定下载的视频顺序,你可以使用--playlist-reverse或--playlist-random参数,比如:
这样,yt-dlp就会按照播放列表的倒序来下载视频。
如果你想指定下载的视频范围,你可以使用--playlist-start,--playlist-end或--playlist-items参数,比如:
这样,yt-dlp就会下载播放列表中的第5到第10个视频。
其他用法
除了下载视频和播放列表,yt-dlp还有一些其他的用法,比如:
- 下载字幕:你可以使用
-write-sub
参数来下载视频的字幕,如果你想指定字幕的语言,你可以使用-sub-lang
参数,比如:
这样,yt-dlp就会下载英文和中文的字幕,如果有的话。你还可以使用
--embed-subs
参数来把字幕嵌入到视频文件中,如果支持的话。- 下载评论:你可以使用
-write-comments
参数来下载视频的评论,如果支持的话,比如:
这样,yt-dlp就会下载视频的评论,并保存为JSON格式的文件。
- 下载缩略图:你可以使用
-write-thumbnail
参数来下载视频的缩略图,如果有的话,比如:
这样,yt-dlp就会下载视频的缩略图,并保存为JPG或PNG格式的文件。你还可以使用
--embed-thumbnail
参数来把缩略图嵌入到视频文件中,如果支持的话。- 下载元数据:你可以使用
-write-info-json
参数来下载视频的元数据,比如标题,描述,上传者,时长,标签等,比如:
这样,yt-dlp就会下载视频的元数据,并保存为JSON格式的文件。你还可以使用
--embed-metadata
参数来把元数据嵌入到视频文件中,如果支持的话。- 下载SponsorBlock数据:你可以使用
-write-sponsorblock
参数来下载视频的SponsorBlock数据,比如赞助商,片头,片尾,互动等,比如:
这样,yt-dlp就会下载视频的SponsorBlock数据,并保存为JSON格式的文件。你还可以使用
--remove-sponsor-segments
参数来移除视频中的SponsorBlock部分,如果支持的话。结语
- 作者:Anyaer
- 链接:https://cool.anyae.top/article/f3a11504-985a-4b12-887c-2ae5a670b69f
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。