复制代码

Windows 零基础使用 yt-dlp:从双击 exe 报错到下载第一个视频

适用人群:

1、第一次使用 yt-dlp 的 Windows 用户

2、双击 yt-dlp.exe 后提示 Do not double-click the executable

3、不知道 CMD 如何运行命令

4、不理解 Windows CMD 中 ^ 的作用

5、希望获得一份可直接复制运行的 yt-dlp 命令模板

 

  如果你双击 yt-dlp.exe 后看到这样的报错,说明你的操作方式是对的,只是打开方式不对:

**yt-dlp.exe: error: Do not double-click the executable, instead call it from a command line.**

这不是程序坏了,也不是文件损坏——继续往下看,一定让你能解决。谢谢你的耐心阅读! 

 

 

⚠️ 注意:请不要直接复制接下来本文中讲解的命令行模板。因为为了方便讲解,我在每行命令后面加入了大量中文说明,例如:--write-info-json ^ (下载视频信息 JSON 文件),这些中文说明只是文章注释,并不是 CMD 命令的一部分。如果直接复制,CMD 会把中文一起当作参数解析,导致命令报错。建议手动输入命令,或删除所有括号和括号内的中文说明后再复制。即除了最后一行,【必须】以 ^ 为结尾,下文会具体阐述原因。文末附有无中文注释、可直接复制运行的命令行 CMD 模板。

 

  本文默认读者为 Windows 新手,几乎没有命令行基础。如果你已经熟悉 CMD 、CMD 如何调用 yt-dlp 、 PowerShell 、 FFmpeg 、路径 PATH 等概念,可以直接跳到最后命令行参数模板部分。 

 

  

  你也许不知道 yt-dlp 是什么?鄙人浅薄介绍下。 yt-dlp 为【命令行】 YouTube 、B站等视频网站下载工具,为视频下载的“多功能瑞士军刀”;为【大部分】 YouTube下载软件的必备核心;为下载 YouTube 视频最直接、失败率最低、 GitHub 社区更新最活跃和复刻( Fork )最多的 YouTube 下载工具。可以下载视频、短视频( shorts )甚至整个频道【所有】视频!

 

 

  我是因为用户图形界面实在自定义程度低于 yt-dlp 、更新 yt-dlp 不够频繁和直观,直接选择了直达核心的命令行工具。顺便说一句,本人目前用的用户图形界面为免费开源的 Stacher ,但是缺点如上文所说。

 

 

  那怎么使用呢?大家也许看到命令行就望而却步,因为不如用户图形界面直观。大家直接双击点开 yt-dlp.exe 直接报错“Usage: yt-dlp.exe [OPTIONS] URL [URL...]

yt-dlp.exe: error: Do not double-click the executable, instead call it from a command line.
Please read the README for further information on how to use yt-dlp: https://github.com/yt-dlp/yt-dlp#readme”,这更是令人捉摸不透,难道 exe 可执行文件不是直接点开嘛?很正常。其实,第一次使用 yt-dlp 的我,直接双击 yt-dlp.exe,看到一串英文报错,以为程序坏了,直接删除了。后来才知道,yt-dlp 根本不是图形界面软件,而是命令行工具。 接下来一一为大家详细讲解。

 

 

  下载和解压 yt-dlp 后,【不要】直接双击 yt-dlp.exe ,而是在文件系统地址栏输入 cmd ,然后回车键输入,即直接在此包含 yt-dlp.exe 的文件夹打开 CMD 命令行工具(文末有图片讲述具体位置);因为 yt-dlp 为命令行工具,所以必须结合系统自带命令行调用。接下来就是输入你想下载的内容,我在这里和最后提供我的模板和讲解,大家可自行更改。另:本文不会介绍 yt-dlp 的全部参数,大家有任何需要可检索官方 GitHub 讲解( Wiki ), yt-dlp 非常强大和功能多样、社区活跃。而是希望帮助第一次接触命令行的 Windows 用户,顺利完成第一次下载。后续参数可以在实践中慢慢学习。

 

yt-dlp ^
-o "E:\2026\%(uploader)s\%(upload_date>%Y)s\%(title)s [%(id)s]\%(title)s [%(id)s] %(upload_date>%Y-%m-%d)s.%(ext)s" ^ (在E盘,创建 2026 文件夹, 2026 文件夹下以博主频道名分类;博主频道名下以发布年份分类;发布年份下以视频名和视频 ID 创建文件夹容纳该视频相关内容)
--download-archive "E:\2026\archive.txt" ^ (在E盘2026文件夹下用 archive.txt 文件记录已下载什么视频)
--merge-output-format mkv ^ (以当需要合并音视频时,以 MKV 作为合并后的容器格式。MKV 对视频、音频、字幕、章节、附件等数据的封装能力较强,适合本文这种偏向完整保存数据的归档场景)
--embed-info-json ^ (将 info.json 作为附件嵌入 MKV ,哪怕以后外部 JSON 文件丢失,视频内部仍保留完整元数据。该功能适用于 MKV/MKA 容器)
--embed-metadata ^ (嵌入视频元数据到如上所说 MKV 视频文件。此项和下两项其实有重叠,--embed-metadata 默认已包含后两者,这里显式写出是为了让新手看清楚每个部分的作用)
--embed-chapters ^ (嵌入视频描述区的章节划分到如上所说 MKV 视频文件,如果没有将不会嵌入)
--embed-thumbnail ^ (嵌入缩略图、封面到如上所说 MKV 视频文件)
--write-info-json ^ (下载视频信息 JSON 文件)
--write-description ^  (下载视频描述区到 .description 文件)
--write-thumbnail ^ (下载缩略图、封面为 .webp 格式)
--write-subs ^ (下载字幕文件,下有选项可规定什么语言,不规定则为默认全部语言)
--write-auto-subs ^ (下载 YouTube 自动生成的字幕)
--embed-subs ^ (嵌入字幕到如上所说 MKV 视频文件)
--sub-langs "zh-Hans,zh-CN,zh,en" ^ (字幕语言为简体中文和英文)
--sub-format "best" ^ (字幕格式优先级设为默认最佳可用格式,是否加入通常效果一样,这里是显式声明兜底)
--sleep-subtitles 60 ^(下载字幕时休眠60秒,因2026年最近如果频繁下载字幕,可能反而比视频更容易触发请求过多,即 429 Too Many Requests 限制)
--sleep-requests 5 ^ (请求之间休眠5秒)
--cookies-from-browser firefox ^ (使用Firefox浏览器 Cookies 用于访问需要登录才能获取的内容(如年龄限制、私人播放列表、会员视频等,前提是你的浏览器登录的账号本身拥有访问权限)。但建议下载时退出浏览器,因如果遇到 Cookies 无法正常读取,可尝试关闭浏览器后再次运行,或导出 Cookies 文件再使用。不同浏览器的实现略有差异。 官方推荐直接使用 --cookies-from-browser,也介绍了导出 Cookies 文件的方法。 )
--ignore-errors ^ (忽略下载错误,即遇到错误也不会停下来,继续下个任务)
-N 4 ^ (4个并发)
"你要下载的视频网址或者频道网址等" 

 

附:--proxy http://127.0.0.1:端口号 ^ (代理地址和端口) 

--skip-download (是不下载视频,只写如上所说相关文件,即 元数据 、视频描述 、 视频封面 、字幕等)

 

  如果你第一次接触命令行,不需要一次看懂全部参数。

  先复制整条命令运行成功,再慢慢删除、修改其中的参数,就会逐渐理解每个参数的作用。

 

 

 大家可能会遇到 WARNING: [youtube] No supported JavaScript runtime could be found...,不要怕,这是可选的,装个 Deno(

winget install DenoLand.Deno
)能让部分格式提取更完整,不装也能下载,只是可能拿不到全部格式。


 

  2026-08-27 修正:现在建议安装 Deno。如果你看到:

WARNING: [youtube] No supported JavaScript runtime could be found...

  现在建议不要忽略这个提示

  yt-dlp 为了完整支持 YouTube,需要使用外部 JavaScript runtime(JavaScript 运行时)处理 YouTube 的 JavaScript challenges(JavaScript 挑战)。目前官方推荐使用 Deno,并且 Deno 默认就是 yt-dlp 启用的 JavaScript runtime。没有 JavaScript runtime 时,yt-dlp 仍可能下载部分 YouTube 内容,但格式可用性会受到限制,在某些情况下限制会比较明显。

  Windows 用户可以直接在 PowerShell 或者 CMD 中安装(记得给管理员权限。调用 PowerShell 可在右键最左下角开始菜单,点击”Windows PowerShell (管理员)“):

winget install DenoLand.Deno

  安装完成后,可以检查:

deno --version

  如果能够正常显示版本号,就说明 Deno 已经安装成功。

  截至目前,yt-dlp 官方要求 Deno 最低版本为 2.3.0

  对于官方发布的 yt-dlp.exe,目前已经包含所需的 yt-dlp-ejs JavaScript challenge solver,因此 Windows 新用户通常不需要再单独安装 yt-dlp-ejs;但仍然需要准备一个受支持的 JavaScript runtime,本文推荐 Deno。前面已说明如何安装。

  因此,现在推荐 Windows 新用户在安装 yt-dlp 后,同时准备 Deno 和 FFmpeg,再开始下载 YouTube。

  

 

  提醒大家注意和窍门:1、可以将大名鼎鼎、开源的 FFmpeg 放到和 yt-dlp 一个文件夹(文末有图片说明),视频后处理字幕和合成等 yt-dlp 直接调用同文件夹的  FFmpeg ,只要放 ffmpeg.exe 、ffprobe.exe 即可。如果没有 FFmpeg,很多后处理功能(如音视频合并、嵌入字幕、嵌入封面等)将无法完成。(文末有图片说明)

2、 ^ 请大家不要忽略,这【不是】yt-dlp 的参数。这是 Windows CMD 的语法,不是 yt-dlp 的参数。它表示命令换行,使一条很长的命令能够分成多行书写。每一行末尾(最后一行除外)都需要保留 ^ ,否则 CMD 会提前结束命令。

 3、接上, Linux/macOS 用户一般使用 \ 作为 Shell 的续行符,而 Windows CMD 使用  ^ 。因此网上很多 Linux 教程【不能】直接复制到 CMD 中。 

  2026-08-27 修正:4、非常建议、甚至必须准备 Deno,用于 YouTube 的 JavaScript challenges。即解析网页的 JavaScript 代码,获得各种要下载的内容。
 
  2026-08-29 补充:大家肯定会遇到 YouTube 网站更新,yt-dlp 当然也要更新适应最新网页,为了下载视频(不更新可能会被发现是自动软件、机器人下载视频,会卡进度条、下载失败等)。那 yt-dlp 如何更新?还是像下载视频那样,在文件系统地址栏输入 cmd (文末有图片说明),然后回车键输入,即直接在此打开 CMD 命令行工具;然后输入 
 
yt-dlp -U
 
 
U 即 Update ;为更新,即自动会从 GitHub 下载最新版
 
 
附我的 yt-dlp 文件夹截图,解释什么为文件系统地址栏,即图片最上面变蓝的字体。还有要放什么 FFmpeg 文件做后处理。

 

 

附可直接复制粘贴命令行模板,且我会长期维护这篇文章,欢迎补充和纠正:

yt-dlp ^
-o "E:\2026\%(uploader)s\%(upload_date>%Y)s\%(title)s [%(id)s]\%(title)s [%(id)s] %(upload_date>%Y-%m-%d)s.%(ext)s" ^
--download-archive "E:\2026\archive.txt" ^
--merge-output-format mkv ^
--embed-info-json ^
--embed-metadata ^
--embed-chapters ^
--embed-thumbnail ^
--write-info-json ^
--write-description ^
--write-thumbnail ^
--write-subs ^
--write-auto-subs ^
--embed-subs ^
--sub-langs "zh-Hans,zh-CN,zh,en" ^
--sub-format "best" ^
--sleep-subtitles 60 ^
--sleep-requests 5 ^
--cookies-from-browser firefox ^
--ignore-errors ^
-N 4 ^
"https://www.youtube.com/watch?v=示例链接"

评论

此博客中的热门博文

第一篇博客------关于英语学习的阶段性总结和计划

关于HTTP/1.1、2、3一点浅薄的小议与图解