当我运行它时:
ydl_opts = {
'outtmpl': files_path + '%(id)s.%(ext)s',
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([video_url])
我在日志中看到:
[ffmpeg] Merging formats into "/home/tmp/0uBOtQOO70Y.mkv"
[wsgi:error] Deleting original file /home/tmp/0uBOtQOO70Y.f137.mp4 (pass -k to keep)
[wsgi:error] Deleting original file /home/tmp/0uBOtQOO70Y.f251.webm (pass -k to keep)
下载之前或之后如何获取/home/tmp/0uBOtQOO70Y.mkv
如果我成功了:
ydl_opts = {}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(video_url, download=False)
然后在info中是mp4扩展
我也有同样的问题,我可以告诉youtube dl不返回输出文件的扩展名。如果将格式合并为另一种格式,则来自
ydl.extract_info()
的扩展无效。您可以检查是否将通过ydl.extract_info()['format_id']
合并格式–如果数字之间有“+”符号,则将合并这些格式。但是,我们仍然无法确定输出格式是什么。 我为此创建了一个笨拙的解决方案。因为我们可以控制输出文件的名称(没有扩展名,这很难预测),所以我只检查了扩展名最可能的文件是否存在我希望这会有所帮助,它适用于我的简单脚本,但对于更高级的脚本可能不够
相关问题 更多 >
编程相关推荐