跳到正文
yt-dlp

yt-dlp 参数手册

本手册针对 yt-dlp 2026.07.21 编写。不同版本之间会新增和改名选项,请用 yt-dlp --version 确认你的版本。

基本

你要什么

仅音频会提取声音轨并丢弃视频流。

视频与画质

-f FORMAT --format

最高画质

限制高度上限。yt-dlp 仍会挑选该上限及以下最好的一路流。

-f FORMAT --format

自定义 format selector

会取代画质下拉框。适合已经熟悉 format 语法的人。

示例

  • -f "bv*[vcodec^=av01]+ba"
  • -f "b[filesize<50M]"

重新编码为

重新编码视频。慢且有损 —— 只在 remux 不行时才用。

音频

音频质量

VBR 的体积与质量之比最好;固定 bitrate 更容易预估大小。

字幕

字幕

内嵌会把字幕放进视频里;保存则在旁边写一个独立的 .srt 文件。

字幕语言

用逗号分隔。想要所有可用语言就写 all。

示例

  • --sub-langs "en,vi"
  • --sub-langs "en.*,ja"
  • --sub-langs all

自动生成的字幕

在没有人工字幕时,把机器生成的字幕也算进来。

播放列表与频道

播放列表处理

当网址同时属于一个视频和一个播放列表时该怎么做。

-I ITEM_SPEC --playlist-items

要哪些项

范围和列表都可以,例如 1-10,15,或者用 -5::2 表示从末尾开始每隔一项取一项。

示例

  • -I 1:5
  • -I "1,3,7-10"
  • -I "-5::2"

记录文件

记下已经下过的项,于是重新运行会跳过它们。这就是让一个频道保持同步的办法。

片段与章节

只下载其中一段

像 *00:01:30-00:03:00 这样的时间范围,或者章节名。开头的星号表示这是时间戳。

示例

  • --download-sections "*00:01:30-00:03:00"
  • --download-sections "intro"
--split-chapters 需要 ffmpeg

按章节拆分

每个章节写成一个文件,而不是一整个长文件。

元数据与封面

--embed-metadata 需要 ffmpeg

内嵌元数据

把标题、上传者和日期写进文件本身。

--embed-chapters 需要 ffmpeg

内嵌章节

加入章节标记,播放器可以在它们之间跳转。

另存元数据 JSON

把 yt-dlp 关于这个视频知道的一切写进 .info.json 文件。

SponsorBlock

文件与目录

文件名模板

字段名写在 %(...)s 里。斜杠会创建目录。

示例

  • -o "%(title)s.%(ext)s"
  • -o "%(playlist_index)02d - %(title)s.%(ext)s"

下载目录

文件写到哪里。配合上面的模板可以生成子目录。

安全(纯 ASCII)文件名

去掉重音符号、空格,以及某些挑剔的文件系统可能拒绝的字符。

兼容 Windows 的文件名

去掉 Windows 不接受的字符,即使你在别的系统上运行。

-w --no-overwrites

永不覆盖

跳过任何已经下载过的东西。

-c --continue

续传未完成的下载

从中断的地方接着下。

筛选

上传时间晚于

YYYYMMDD,或者像 now-1month 这样的相对日期。

示例

  • --dateafter 20240101
  • --dateafter now-1month

网络

-r RATE --limit-rate

限速

例如 2M 或 500K。当你需要把余下带宽留给别的事情时很有用。

-N N --concurrent-fragments

并发 fragment 数

能加快分片流的下载。从 4 开始比较合适。

-R RETRIES --retries

重试次数

失败的分片要重试几次。也可以写 infinite。

绕过地区限制

伪造请求来源。在部分站点有效,并非全部。

伪装成浏览器

让请求看起来来自真实浏览器。突然出现 403 时,这是最常见的解法。

登录与 cookies

Cookies 文件

从浏览器导出的 Netscape 格式 cookies.txt。

直播

故障绕行

--user-agent UA 已弃用 — --add-headers

User agent

已弃用,应改用 --add-headers。之所以保留,是因为很多旧教程还在用它。

--referer URL 已弃用 — --add-headers

Referer

已弃用,应改用 --add-headers。

Extractor 参数

按站点区分的专用选项,例如 youtube:player_client=web。

示例

  • --extractor-args "youtube:player_client=web,android"

输出与调试

-i --ignore-errors

出错也继续

跳过失败的条目而不是停下来。处理大播放列表时必不可少。

-F --list-formats

只列出格式

打印可用格式后直接退出,不下载。

-s --simulate

模拟运行

除了写文件之外的一切都做。