toMedia
快速开始

第一次下载

使用 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 与认证 章节。

下一步

On this page