如何修改YoutubeDL的info-json,仅保留视频条目并完成下载?
解决方案
可行,你可以通过过滤entries数组保留仅视频格式的条目,再用修改后的信息对象执行下载,具体实现如下:
- 获取视频信息并过滤条目
基于你已有的代码,添加过滤逻辑,只保留指定视频格式的条目:
import youtube_dl ydl = youtube_dl.YoutubeDL({'retries': 10 }) vurl = "你的视频链接" # 获取视频信息,不下载 result = ydl.extract_info(vurl, download=False) # 定义需要保留的视频格式集合,可根据需求补充 video_extensions = {'mp4', 'webm'} # 过滤entries数组,仅保留视频格式条目 if 'entries' in result: result['entries'] = [ entry for entry in result['entries'] if entry.get('ext') in video_extensions ]
- 使用修改后的信息执行下载
调用YoutubeDL的process_ie_result方法,传入修改后的信息对象即可触发下载:
# 执行下载 ydl.process_ie_result(result, download=True)
注意事项
- 若平台返回的条目没有
ext字段,entry.get('ext')会返回None,不会被保留,避免报错 - 可根据目标平台支持的视频格式,调整
video_extensions集合里的格式值
内容的提问来源于stack exchange,提问作者Jerardo
相关产品推荐
相关产品推荐

