关于Python库形式导入youtube-dl的配置参数及缩略图嵌入问题
解决youtube-dl Python库嵌入缩略图的问题
我太懂这种 frustration 了——youtube-dl 的 Python 库文档简直稀缺到离谱,CLI 里顺手能用的参数,放到库的配置里经常不是直接对应,甚至连报错都没有,完全摸不着头脑。
针对你说的嵌入缩略图的问题,其实 CLI 的 --embed-thumbnail 并不是直接映射到 YoutubeDL 配置对象里的同名参数,它本质上是触发了一个后处理器。要在 Python 代码里实现同样的效果,你需要在配置的 postprocessors 列表中添加 EmbedThumbnail 处理器:
from youtube_dl import YoutubeDL # 配置选项 ydl_opts = { 'outtmpl': '%(title)s.%(ext)s', # 自定义输出文件名格式 'postprocessors': [ { 'key': 'EmbedThumbnail', # 可选:如果目标文件已有缩略图,强制覆盖的话添加下面这行 # 'already_have_thumbnail': False } ] } # 执行下载和后处理 with YoutubeDL(ydl_opts) as ydl: ydl.download(['https://www.youtube.com/watch?v=你的视频ID'])
额外提示:如何找全库的可用参数?
因为官方文档缺失,目前最靠谱的方式就是直接翻源码:
- 查看
YoutubeDL.py里的_default_options字典,这里面定义了所有顶层配置参数 - 想了解后处理器的细节,可以看项目里
postprocessor目录下的文件,比如EmbedThumbnailPP.py就详细说明了这个处理器的可用参数
很多 CLI 参数背后都是用后处理器实现的,不能直接把 CLI 参数名当成配置键来用,这也是新手最容易踩的坑之一。
内容的提问来源于stack exchange,提问作者Forivin
相关产品推荐
相关产品推荐

