Как написать код для загрузки видео с ютуба не используя ffmpeg?
я пытался написать код который загружет видео с ютуба по url но у меня вот такая ошибка
ERROR: You have requested merging of multiple formats but ffmpeg is not installed. Aborting due to --abort-on-error
Traceback (most recent call last):
File "C:\Users\ytiva\PycharmProjects\pythonProject\main.py", line 15, in <module>
print(download('https://www.youtube.com/watch?v=uHgt8giw1LY', 'Привет!'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ytiva\PycharmProjects\pythonProject\main.py", line 9, in download
info_dict = ydl.extract_info(link, download=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1549, in extract_info
return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1560, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1709, in __extract_info
return self.process_ie_result(ie_result, download, extra_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1768, in process_ie_result
ie_result = self.process_video_result(ie_result, download=download)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 2897, in process_video_result
self.process_info(new_info)
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 3321, in process_info
self.report_error(f'{msg}. Aborting due to --abort-on-error')
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 1042, in report_error
self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
File "C:\Users\ytiva\PycharmProjects\pythonProject\venv\Lib\site-packages\yt_dlp\YoutubeDL.py", line 981, in trouble
raise DownloadError(message, exc_info)
yt_dlp.utils.DownloadError: ERROR: You have requested merging of multiple formats but ffmpeg is not installed. Aborting due to --abort-on-error
Process finished with exit code 1
я понел что дело в ffmpeg но можно ли не прибегать к его использованию?
вот код который я использовал
import yt_dlp
def download(link, name='%(title)s'):
ydl_opts = {
'format': 'bestvideo+bestaudio/best', #берем самое лучшее качество видео и фото
'outtmpl': '{}.%(ext)s'.format(name), #наше выбраное имя, если его не было, то стандартное - название видео на самом сайте
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(link, download=True)
downloaded_file_path = ydl.prepare_filename(info_dict)
print(f"Видео {downloaded_file_path} успешно загружено!")
return downloaded_file_path
print(download('https://www.youtube.com/watch?v=uHgt8giw1LY', 'Привет!'))
Источник: Stack Overflow на русском