Youtube视频下载器

使用说明

本工具使用Youtube油管专用解析器 yt-dlp 解析视频。以下为常用选项说明。

格式与下载

  • -f <格式> / --format:指定格式。例:bestbestvideo+bestaudiobv*+babestvideo[height<=720]+bestaudioworstmp422(格式 ID)。
  • --format-sort <排序>:格式选择时的排序,如 res,fpsvcodec:av1
  • -S <排序> / --format-sort:同上(简写)。
  • --merge-output-format <格式>:合并音视频时的容器,如 mp4mkvwebm(需 ffmpeg)。
  • --recode-video <格式>:下载后转码,如 mp4mkv
  • -r <速率> / --limit-rate:限速,如 50K2.5M
  • --concurrent-fragments <N>:并发下载分片数(HLS/DASH)。

输出与文件名

  • -o <模板> / --output:输出路径/文件名模板。常用占位符:%(title)s%(id)s%(ext)s%(uploader)s%(upload_date)s%(duration)s%(height)p。例:%(title)s.%(ext)s~/Videos/%(uploader)s/%(title)s.%(ext)s
  • --output-na-placeholder <字符串>:当某字段缺失时的占位符,默认 NA
  • -a <文件> / --batch-file:从文件读取 URL 列表(每行一个)。
  • --paths <路径:路径...>:按类型指定输出目录,如 home:~/Videos,subtitle:~/Subs

播放列表与选择

  • --no-playlist:仅下载链接中的单条视频,不下载整份播放列表。
  • -I <索引> / --playlist-items:指定播放列表项,如 1-3,71,2,-1(-1 表示最后一项)。
  • --playlist-start <序号>:播放列表起始位置(从 1 开始)。
  • --playlist-end <序号>:播放列表结束位置。
  • --playlist-reverse:倒序下载播放列表。
  • --no-playlist-reverse:顺序下载(默认)。
  • --flat-playlist:仅列出播放列表条目,不解析每条视频。
  • --lazy-playlist:不预加载完整播放列表,边下边取。

认证与代理

  • --cookies <文件>:从 Netscape 格式文件读取 Cookie(如浏览器导出的 cookies.txt)。
  • --cookies-from-browser <浏览器>:从浏览器读取 Cookie,如 chromefirefoxsafariedge。可加 :profile 指定配置,如 chrome:Default
  • --username <用户> / -u:登录用户名。
  • --password <密码> / -p:登录密码;-p - 表示从标准输入读取。
  • --twofactor <密码>:两步验证码。
  • --netrc:从 ~/.netrc 读取用户名与密码。
  • --proxy <URL>:代理地址,支持 HTTP/HTTPS/SOCKS,如 http://127.0.0.1:7890socks5://127.0.0.1:1080

后处理(需 ffmpeg)

  • -x / --extract-audio:仅提取音频,不保留视频。
  • --audio-format <格式>:提取音频时的格式,如 mp3m4aaacflacopusvorbis
  • --audio-quality <质量>:音频质量,如 0(最好)~9(最差),或 VBR 如 128K
  • --embed-thumbnail:将封面嵌入音频文件(如 mp3/m4a)。
  • --embed-metadata:将元数据写入文件(默认)。
  • --embed-subs:将字幕嵌入视频(仅部分容器支持)。
  • --embed-chapters:嵌入章节信息。
  • --convert-subs <格式>:将字幕转为指定格式,如 srtassvtt
  • --postprocessor-args <参数>:传给 ffmpeg 的额外参数,如 -acodec copy

字幕

  • --write-subs / --write-sub:下载字幕。
  • --write-auto-subs:下载自动生成字幕。
  • --no-write-subs:不下载字幕(默认)。
  • --sub-langs <语言>:字幕语言,如 en,zh-Hansall。用 --list-subs 查看可用语言。
  • --write-subs--skip-download 一起用时只下字幕。

元信息与列表

  • -j / --dump-json:仅输出单条视频的 JSON 元信息,不下载。
  • -J / --dump-single-json:输出单条视频的 JSON(含格式列表等)。
  • --print <键>:只打印指定字段,如 --print title--print "%(title)s - %(id)s"
  • -F / --list-formats:列出当前视频可用格式,不下载。
  • --list-subs:列出可用字幕语言。
  • --list-thumbnails:列出可用缩略图。
  • --skip-download:不下载媒体,仅获取元数据/列表(常与 -j--write-subs 等配合)。

日期与筛选

  • --datebefore <日期>:仅下载该日期之前的视频,如 20231201
  • --dateafter <日期>:仅下载该日期之后的视频。
  • --match-filter <表达式>:按条件过滤,如 duration < 600like_count > 100
  • --min-views <数量>:最少观看数。
  • --max-views <数量>:最多观看数。

下载控制与重试

  • -R <次数> / --retries:重试次数,默认 10。
  • --fragment-retries <次数>:分片重试次数,默认 10。
  • --skip-unavailable-fragments:跳过无法获取的分片(HLS/DASH)。
  • --abort-on-error:遇错误即中止(对播放列表默认跳过错误项)。
  • --ignore-errors:忽略错误,继续下载列表其余项。
  • --no-abort-on-error:遇错误不中止(播放列表时继续)。
  • --sleep-requests <秒>:每次请求间隔,减轻目标站压力。
  • --sleep-interval <秒>:每次下载间隔。

其他常用

  • -q / --quiet:安静模式,少输出。
  • -v / --verbose:详细输出。
  • --no-warnings:不输出警告。
  • --no-check-certificate:不校验 HTTPS 证书。
  • --prefer-free-formats:在质量相近时优先选非付费格式。
  • --no-overwrites:不覆盖已存在文件。
  • --restrict-filenames:将文件名限制为 ASCII,避免乱码。
  • -k / --keep-video:提取音频后保留原视频。
  • --extractor-args <站点:参数>:传给提取器的参数,如 youtube:player_client=android
  • --config-location <路径>:使用指定配置文件;- 表示从标准输入读配置。

更多

更多选项与占位符见 yt-dlp --help官方文档