toMedia

yt-dlp 速查表

最常用的 yt-dlp 命令和 Python 配置速查

快速索引最常用的命令和 Python 配置,适合打印或收藏。

基础下载

用途CLI 命令
默认下载yt-dlp "URL"
指定保存路径yt-dlp -o "~/Downloads/%(title)s.%(ext)s" "URL"
只看信息不下载yt-dlp --print filename -o "%(title)s.%(ext)s" "URL"
列出可用格式yt-dlp -F "URL"

视频下载

用途CLI 命令
最佳画质yt-dlp -f "bv+ba" "URL"
指定 mp4 格式yt-dlp -f "bv[ext=mp4]+ba[ext=m4a]" --merge-output-format mp4 "URL"
限制 720pyt-dlp -f "bv[height<=720]+ba" "URL"
限制 1080pyt-dlp -f "bv[height<=1080]+ba" "URL"
格式排序yt-dlp -S "res:720,ext:mp4" "URL"

音频下载

用途CLI 命令
提取为 MP3yt-dlp -x --audio-format mp3 "URL"
提取为 FLACyt-dlp -x --audio-format flac "URL"
最佳音质 MP3yt-dlp -x --audio-format mp3 --audio-quality 0 "URL"
只下载音频流yt-dlp -f "ba" "URL"

字幕

用途CLI 命令
列出字幕yt-dlp --list-subs "URL"
下载中文字幕yt-dlp --write-sub --sub-lang zh-Hans "URL"
嵌入字幕到视频yt-dlp --embed-subs "URL"
下载自动生成字幕yt-dlp --write-auto-sub --sub-lang zh-Hans "URL"

批量 & 播放列表

用途CLI 命令
下载播放列表yt-dlp "PLAYLIST_URL"
播放列表范围yt-dlp --playlist-items 1:5 "URL"
从文件读取链接yt-dlp -a urls.txt
跳过已下载yt-dlp --download-archive archive.txt "URL"

认证 & 网络

用途CLI 命令
使用 Cookiesyt-dlp --cookies cookies.txt "URL"
从浏览器导入yt-dlp --cookies-from-browser chrome "URL"
使用代理yt-dlp --proxy "http://127.0.0.1:7890" "URL"
并发下载yt-dlp -N 4 "URL"
限速yt-dlp -r 5M "URL"

平台专用

Bilibili

# 视频
yt-dlp --cookies-from-browser chrome "https://www.bilibili.com/video/BV..."

# 指定画质
yt-dlp --cookies-from-browser chrome -f "bv+ba" "https://www.bilibili.com/video/BV..."

YouTube

# 最佳 mp4
yt-dlp -f "bv[ext=mp4]+ba[ext=m4a]" --merge-output-format mp4 "https://youtu.be/..."

# 嵌入缩略图 + 字幕
yt-dlp --embed-thumbnail --embed-subs "https://youtu.be/..."

Python API 速查

基础下载

import yt_dlp

with yt_dlp.YoutubeDL() as ydl:
    ydl.download(["URL"])

常用配置模板

# 下载最佳 mp4
opts = {
    'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]',
    'merge_output_format': 'mp4',
    'outtmpl': '%(title)s.%(ext)s',
}

# 提取 mp3
opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '320',
    }],
}

# 只获取信息
opts = {
    'quiet': True,
    'no_warnings': True,
}
with yt_dlp.YoutubeDL(opts) as ydl:
    info = ydl.extract_info("URL", download=False)

进度回调

def progress_hook(d):
    if d['status'] == 'downloading':
        print(f"下载中: {d.get('_percent_str', 'N/A')}")
    elif d['status'] == 'finished':
        print("下载完成,后处理中...")

opts = {
    'progress_hooks': [progress_hook],
}

信息提取字段

info = ydl.extract_info("URL", download=False)
info['title']       # 标题
info['duration']    # 时长(秒)
info['upload_date'] # 上传日期 YYYYMMDD
info['uploader']    # 上传者
info['view_count']  # 播放量
info['formats']     # 所有可用格式列表
info['thumbnail']   # 缩略图 URL
info['description'] # 描述

输出模板常用变量

变量说明示例
%(title)s视频标题My Video
%(id)s视频 IDdQw4w9WgXcQ
%(ext)s扩展名mp4
%(uploader)s上传者Rick Astley
%(upload_date>%Y-%m-%d)s格式化日期2023-01-15
%(resolution)s分辨率1920x1080
%(playlist_index)s播放列表序号01

完整选项参考请查看 CLI 选项参考Python 选项参考

On this page