Python开发Discord机器人如何关闭youtube_dl的控制台搜索日志输出
禁用youtube_dl控制台输出的解决方法
你只需要在初始化YoutubeDL实例的配置参数里添加静默运行相关的配置项即可,具体操作如下:
方法1:最简配置(推荐)
找到你代码中定义youtube_dl配置的ydl_opts字典,添加两个参数:
ydl_opts = { # 你原来的其他配置(比如格式、输出路径、noplaylist之类的配置都保留) 'format': 'bestaudio/best', 'noplaylist': 'True', # 新增以下两行配置 'quiet': True, 'no_warnings': True, }
参数说明:
quiet: True:关闭所有常规日志输出,包括搜索进度、下载进度、资源解析日志等你看到的[download]、[youtube:search]前缀的内容no_warnings: True:关闭youtube_dl输出的所有警告类信息,避免非错误类的警告信息输出到控制台
修改之后,youtube_dl就不会再输出任何非错误类的日志,你自己写的自定义打印内容会正常保留。
方法2:自定义日志处理(如果还有残余输出可使用)
如果添加上述配置后仍有极个别输出,你可以额外配置logger参数,完全接管youtube_dl的日志逻辑,将所有日志全部过滤:
# 先定义一个空的日志类,吞掉所有youtube_dl的日志 class NullLogger: def debug(self, msg): pass def warning(self, msg): pass def error(self, msg): # 如果需要保留错误日志可以在这里打印,不需要就也留空 pass ydl_opts = { # 原有其他配置 'quiet': True, 'no_warnings': True, 'logger': NullLogger(), }
内容的提问来源于stack exchange,提问作者Liuk23
相关产品推荐
相关产品推荐

