Discord.py音乐机器人修改youtube-dl下载文件存储目录问题求助
修改方法
- 首先在你的Python脚本同级目录新建用于存储下载音频的文件夹,例如命名为
ytdl_cache - 找到你代码中的
ytdl_format_options配置项,修改其中的outtmpl参数,在原有文件名模板前加上你新建的文件夹路径即可:
ytdl_format_options = { 'format': 'bestaudio/best', # 仅修改这一行即可,前面加上文件夹路径 'outtmpl': './ytdl_cache/%(extractor)s-%(id)s-%(title)s.%(ext)s', 'restrictfilenames': True, 'noplaylist': True, 'nocheckcertificate': True, 'ignoreerrors': False, 'logtostderr': False, 'quiet': True, 'no_warnings': True, 'default_search': 'auto', 'source_address': '0.0.0.0' # bind to ipv4 since ipv6 addresses cause issues sometimes }
- 可选优化:可以在代码开头加入自动创建文件夹的逻辑,避免手动创建遗漏导致报错:
import os # 放在导入youtube_dl的代码之前即可 if not os.path.exists('ytdl_cache'): os.makedirs('ytdl_cache')
如果是Linux/macOS环境,需要确保脚本对ytdl_cache文件夹有读写权限。
额外优化提示
你现有play函数存在逻辑重复问题:当机器人未加入语音频道时,你在连接成功的逻辑分支内已经执行了一次播放操作,分支外又写了一遍通用播放逻辑,会导致首次连接时同一首歌被重复加载两次,建议把分支外的播放逻辑放到else分支中即可修复。
内容的提问来源于stack exchange,提问作者zenabz
相关产品推荐
相关产品推荐

