文章目录
- 一、提取cookies
- 1.1 不提取出来
- 1.2 提取为单独文件
- 1.2 使用cookies
- 二、yt-dlp 用法(python库)
- 基本参数
- 视频参数
- 播放列表参数
- 高级参数
以前用yt-dlp
做的软件:
但是部分网站需要在登录状态才能获取更高格式的内容。
比如(本文使用的是我的视频):该网站需要携带身份信息才能获取高质量格式
某些网站是不用的:
yt-dlp -F https://www.youtube.com/watch?v=7H7cTSml5zk
一种身份认证方式是使用用户名+密码的方式,另一种是携带cookie
。
我倾向于使用cookie。(本文以Windows
为例)
Cookie(HTTP Cookie)是一个小型的文本文件,由网站服务器发送给用户浏览器,然后由浏览器存储在用户的计算机上。它是由网站创建的,包含着网站的一些数据,这些数据是在用户访问网站时保存在用户本地的。
一、提取cookies
首先需要你在浏览器中登录对应的网站(你要下载视频的网站)。
1.1 不提取出来
使用 --cookies-from-browser
参数,例如:
yt-dlp --cookies-from-browser edge -F https://www.bilibili.com/video/BV1Mu4y1P7kz?t=5.0
注意:
- 你在什么浏览器登录,后面就写什么浏览器的名字,比如chrome、edge、fierfox。
- yt-dlp使用的是
C:\Users\14134\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies
这个文件(以chrome为例)。只需要指定浏览器名称即可,不用写具体路径。 - Cookies这个文件不能同时被多个进程使用,使用yt-dlp时,需要关闭对应的浏览器,去任务管理器关闭这个浏览器的所有相关任务,否则会报错权限不足。
1.2 提取为单独文件
为了方便,可以把cookie提取出来,以后使用提取的cookie文件即可。注意不要泄露提取后的cookie文件。
使用:
yt-dlp --cookies-from-browser chrome --cookies 2.txt
该命令会提取chrome
浏览器中所有的cookie保存到2.txt
文件中。 不要泄露cookie,某些网站通过修改cookie等操作就能登录到你的账号。 (比如一个有名的刷题网站)
1.2 使用cookies
使用提取出的cookie文件来获取视频,如:
yt-dlp --cookies 2.txt -F https://www.bilibili.com/video/BV1Mu4y1P7kz?t=5.0
8K:
下面是凑字数的。
二、yt-dlp 用法(python库)
基础用法:
import yt_dlp
url = '视频或音频的URL'
ydl_opts = {}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
参数配置:
基本参数
format
: 指定下载的格式。可以是一个格式字符串,比如'bestvideo+bestaudio/best'
,也可以是格式码,比如'137+140'
。outtmpl
: 指定输出文件名模板。可以包含%()
的占位符,如%(title)s.%(ext)s
。quiet
: 静默模式,不显示下载信息。no_warnings
: 禁用警告信息的显示。ratelimit
: 限制下载速度,单位为字节每秒。proxy
: 设置代理,如'http://your_proxy_server:port'
。
视频参数
writesubtitles
: 下载视频的字幕。writeautomaticsub
: 下载自动生成的字幕。allsubtitles
: 下载所有可用的字幕。subtitleslangs
: 指定下载的字幕语言,如['en', 'zh']
。thumbnail
: 下载视频的缩略图。writeinfojson
: 下载视频的信息为 JSON 文件。
播放列表参数
extract_flat
: 将播放列表中的所有视频平铺下载。playliststart
: 指定下载的播放列表的起始位置。playlistend
: 指定下载的播放列表的结束位置。
高级参数
ignoreerrors
: 忽略下载错误,继续下载其他视频。postprocessors
: 后处理器,可以用来转换视频格式等。keepvideo
: 保留视频文件。max_downloads
: 最大下载数量。noplaylist
: 不下载播放列表,即使是单个视频。nooverwrites
: 不覆盖已经存在的文件。writethumbnail
: 将缩略图写入视频文件。
例如: