У вас ошибка в
os.rename(file, f"{path}/{file_name}.mp3")
video.download(f'{path}')
очищает имя скачиваемого файла от недопустимых символов, но в
file_name
они остаются, поэтому он и не находит
f"{path}/{file_name}.mp3
Этот код должен отрабатывать правильно:
# Функция для очистки имени файла от недопустимых символов
def clean_filename(filename):
# Заменяем все недопустимые символы на подчеркивания
return re.sub(r'[\\/*?:"<>|]', '_', filename)
async def install_data(link: str, file_name: str, _type: str, path: str, _lang: str):
language = lang[_lang]
try:
video = YouTube(link)
if _type == 'audio':
video = video.streams.get_audio_only()
if _type == 'video':
video = video.streams.get_highest_resolution()
# Очищаем имя файла от недопустимых символов
clean_file_name = clean_filename(file_name)
file = video.download(path)
extension = 'mp3' if _type == 'audio' else 'mp4'
os.rename(file, f"{path}/{clean_file_name}.{extension}")
return language['success']
except Exception as e:
print(e)
return f"{language['err']} + \n {e}"