跳到正文
yt-dlp

在 Windows 上安装 yt-dlp

用 winget、Scoop 或直接下载在 Windows 上安装 yt-dlp 和 ffmpeg,并解决随后出现的 PATH 报错。

1. 安装 yt-dlp

winget 随 Windows 10 和 11 一起提供,并且会替你处理 PATH——手工安装时出错的正是这一步。

winget install yt-dlp.yt-dlp

如果你已经在用 Scoop 或 Chocolatey,两者同样没问题:

scoop install yt-dlp
choco install yt-dlp

手工的做法是从官方发布页面拿一个 yt-dlp.exe。把它放进 PATH 里的某个文件夹——放在桌面上只在终端恰好位于那个文件夹时才管用,而这正是「yt-dlp is not recognized」的常见原因。

2. 安装 ffmpeg

没有 ffmpeg,yt-dlp 也能下载,但所有有意思的功能都要靠它:合并分离的视频和音频、提取 MP3、嵌入字幕或缩略图、剪切片段。现在就装,别等到第一次莫名其妙失败之后。

winget install Gyan.FFmpeg

3. 确认装好了

打开一个新的终端——已经开着的那个还用着旧的 PATH——然后运行:

yt-dlp --version
ffmpeg -version

出现两个版本号就说明搞定了。

Windows 上的引号

PowerShell 和 cmd 的引号规则跟 bash 不一样,从面向 Linux 的教程里复制来的命令,往往正是因为这一点而失败。在 PowerShell 里,单引号是字面量——对格式选择器或输出模板来说这是最安全的选择。在 cmd 里用双引号。在 .bat 文件里,每个 % 都要写两遍。

yt-dlp -o '%(title)s.%(ext)s' URL     # PowerShell
yt-dlp -o "%(title)s.%(ext)s" URL     # cmd
yt-dlp -o "%%(title)s.%%(ext)s" URL   # inside a .bat file

生成器的 shell 切换会为上面每一种情况生成正确的写法,所以你可以直接复制,不用自己改。

更新

独立的 yt-dlp.exeyt-dlp -U 自我更新。如果是用 winget、Scoop 或 Chocolatey 装的,就用同一个工具更新——自我更新会拒绝,因为文件归包管理器所有。

常见问题

Windows 说找不到 yt-dlp,为什么?
可执行文件不在 PATH 里,或者终端是在安装之前就打开的。先开一个新终端;如果还不行,就用 winget 或 Scoop 安装,它们会替你处理 PATH。
Windows 上 yt-dlp 找不到 ffmpeg。
用 winget install Gyan.FFmpeg 安装,打开新终端,再用 ffmpeg -version 检查。把 ffmpeg.exe 放在 yt-dlp.exe 同一目录里也行。