进阶功能
Cookies 与认证
使用 Cookies 访问需要登录的内容
部分内容需要登录才能访问(如 bilibili 大会员内容、YouTube 会员视频等)。yt-dlp 支持通过 Cookies 文件来进行身份认证。
安全提示:Cookies 包含你的登录凭据,请妥善保管,不要分享给他人。
从浏览器提取 Cookies
最简单的方式是直接从浏览器读取 Cookies:
# 从 Chrome 浏览器提取 Cookies
yt-dlp --cookies-from-browser chrome "URL"
# 从 Firefox 提取
yt-dlp --cookies-from-browser firefox "URL"
# 从 Edge 提取
yt-dlp --cookies-from-browser edge "URL"
# 从 Brave 提取
yt-dlp --cookies-from-browser brave "URL"import yt_dlp
ydl_opts = {
'cookiesfrombrowser': ('chrome',), # 元组格式
# 或 ('firefox',), ('edge',), ('brave',)
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(["URL"])--cookies-from-browser 会读取浏览器的 Cookies 数据库,需要浏览器处于关闭状态(部分浏览器可能需要)。
使用 Cookies 文件
如果浏览器提取不可用,可以使用 Netscape 格式的 Cookies 文件:
# 使用 cookies.txt 文件
yt-dlp --cookies cookies.txt "URL"import yt_dlp
ydl_opts = {
'cookiefile': 'cookies.txt',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(["URL"])如何获取 Cookies 文件
- 安装浏览器扩展 Get cookies.txt LOCALLY(Chrome/Firefox 可用)
- 登录目标网站(如 bilibili.com)
- 点击扩展图标,导出 Cookies 为
cookies.txt - 保存文件到工作目录
Cookies 文件格式
# Netscape HTTP Cookie File
.bilibili.com TRUE / FALSE 0 SESSDATA 你的SESSDATA值
.bilibili.com TRUE / FALSE 0 bili_jct 你的bili_jct值
.bilibili.com TRUE / FALSE 0 DedeUserID 你的UID用户名密码登录
部分站点支持直接用用户名密码登录(不推荐,可用性有限):
# 用户名密码(不推荐,很多站点已不支持)
yt-dlp -u username -p password "URL"
# 两步验证
yt-dlp -u username -p password --twofactor CODE "URL"bilibili 认证场景
# bilibili 大会员内容
yt-dlp --cookies-from-browser chrome "https://www.bilibili.com/bangumi/play/ep12345"
# bilibili 充电专属
yt-dlp --cookies cookies.txt "https://www.bilibili.com/video/BV1xxxxxx"YouTube 认证场景
# YouTube Premium 内容
yt-dlp --cookies-from-browser chrome "https://www.youtube.com/watch?v=xxx"
# 年龄限制内容
yt-dlp --cookies-from-browser chrome "https://www.youtube.com/watch?v=xxx"常见问题
Cookies 失效了怎么办?
# 重新从浏览器导出(每次浏览器登录可能更新 cookies)
yt-dlp --cookies-from-browser chrome "URL"报错 "Unable to extract cookies"
- Windows:确保浏览器已关闭
- macOS:需要在系统偏好设置中给终端授予"完全磁盘访问"权限
- Linux:某些 Snap/Flatpak 安装的浏览器不支持