为何设置keepvideo:False后youtube-dl仍会下载视频?
仅下载YouTube缩略图却同时下载视频的解决方法
我尝试仅下载视频的缩略图,虽然缩略图成功下载,但视频也随之被下载。我使用的代码如下:
thumbnail = folder + video["title"] tn_options={ 'format':'bestvideo', 'keepvideo':False, 'writethumbnail':'writethumbnail', 'outtmpl':thumbnail, } with youtube_dl.YoutubeDL(tn_options) as ydl: ydl.download([video['webpage_url']])
我原本认为设置keepvideo:False可以阻止视频下载,过去也成功实现过,但现在该设置失效了。
问题原因
keepvideo参数的作用并不是阻止视频下载,它仅在需要合并视频和音频流的场景下生效:当该参数设为False时,合并完成后会删除单独的视频/音频源文件,而非跳过视频下载步骤。之前的“成功”可能是巧合(比如当时目标视频的流结构特殊),但这个参数本身就不是用来控制是否下载视频的。
修复方案
要实现只下载缩略图、完全跳过视频下载,需要添加skip_download: True参数,同时修正writethumbnail的参数格式(正确应为布尔值True),调整后的配置如下:
thumbnail = folder + video["title"] tn_options={ 'skip_download': True, # 核心:跳过视频/音频下载流程 'write_thumbnail': True, # 启用缩略图下载 'outtmpl': thumbnail, } with youtube_dl.YoutubeDL(tn_options) as ydl: ydl.download([video['webpage_url']])
另外可以移除format参数,既然已经跳过视频下载,指定视频格式没有意义,还能避免不必要的流解析操作。
内容的提问来源于stack exchange,提问作者kraken1989
相关产品推荐
相关产品推荐

