快速开始
第一次下载
使用 yt-dlp 下载你的第一个视频
让我们用最简单的方式,下载你的第一个视频。
最简命令
只需要一个 URL,yt-dlp 会自动选择最佳画质下载。
# 下载视频(自动选择最佳画质)
yt-dlp "https://www.bilibili.com/video/BV1xx411c7mD"
# YouTube 视频
yt-dlp "https://www.youtube.com/watch?v=dQw4w9WgXcQ"import yt_dlp
url = "https://www.bilibili.com/video/BV1xx411c7mD"
# 最简用法:使用默认配置下载
with yt_dlp.YoutubeDL() as ydl:
ydl.download([url])$ yt-dlp "https://www.bilibili.com/video/BV1xx411c7mD"
[bilibili] Extracting URL: https://www.bilibili.com/video/BV1xx411c7mD
[bilibili] BV1xx411c7mD: Downloading webpage
[bilibili] BV1xx411c7mD: Downloading video info
[download] Destination: 【示例视频】yt-dlp测试.mp4
[download] 100% of 15.2MiB in 00:03 at 4.8MiB/s指定输出目录和文件名
# 下载到指定目录
yt-dlp -o "~/Downloads/%(title)s.%(ext)s" "URL"
# 自定义文件名格式
yt-dlp -o "%(uploader)s - %(title)s.%(ext)s" "URL"import yt_dlp
ydl_opts = { # 输出路径与文件名模板
'outtmpl': '~/Downloads/%(title)s.%(ext)s',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(["URL"])%(title)s 和 %(ext)s 是输出模板变量,分别代表视频标题和文件扩展名。更多变量参见 输出文件名模板。
只获取信息(不下载)
有时你只想查看视频信息,而不实际下载文件。
# 打印视频信息(不下载)
yt-dlp --print filename "URL"
# 查看所有可用格式
yt-dlp -F "URL"
# 输出为 JSON
yt-dlp -j "URL"import yt_dlp
ydl_opts = {
'skip_download': True, # 不下载,只提取信息
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info("URL", download=False)
print(f"标题: {info['title']}")
print(f"时长: {info['duration']}秒")
print(f"上传者: {info.get('uploader', '未知')}")标题: 【示例视频】yt-dlp测试
时长: 180秒
上传者: ExampleUser常见问题
下载速度慢?
# 使用代理
yt-dlp --proxy "http://127.0.0.1:7890" "URL"
# 限制下载速度(避免被封)
yt-dlp --limit-rate 10M "URL"报错 403 / 需要登录?
参见 Cookies 与认证 章节。
下一步
- CLI 与 Python 对比 — 了解两种方式的优劣
- 下载视频 — 更多下载选项
- 下载音频 — 提取音频文件