Использование youtube_dl для загрузки аудио с YouTube, но оно не всегда имеет тип mp3, даже если указано - PullRequest
1 голос
/ 03 июля 2019

Это мой текущий код, используя youtube_dl:

from __future__ import unicode_literals 
     import youtube_dl 
     import ffmpeg
     ydl_opts = { 
      'format': 'bestaudio/best', 
      'postprocessors': [{ 
         'key': 'FFmpegExtractAudio', 
        'preferredcodec': 'mp3',  
        'preferredquality': '320',   # selected mp3 and 320
    }],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([input('Youtube link: ')])

Это работает, но дает мне разные типы. В идеале ответы могут объяснить почему. я получаю эту ошибку

ОШИБКА: ffprobe / avprobe и ffmpeg / avconv не найдены. Пожалуйста, установите один. Traceback (последний вызов был последним): Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 2054, в post_process files_to_delete, info = pp.run (info) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ postprocessor \ ffmpeg.py", строка 272, в работе filecodec = self.get_audio_codec (путь) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ postprocessor \ ffmpeg.py", строка 166, в get_audio_codec поднять PostProcessingError ('ffprobe / avprobe и ffmpeg / avconv не найдены. Пожалуйста, установите один.') youtube_dl.utils.PostProcessingError: ffprobe / avprobe и ffmpeg / avconv не найдены. Пожалуйста, установите один.

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (последний последний вызов): Файл "C: / Users / Eng-Ahmed Saleh / Desktop / asd / A.py", строка 15, в ydl.download ([input ('Youtube link:')]) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 2008, в загрузке url, force_generic_extractor = self.params.get ('force_generic_extractor', False)) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 807, в extract_info вернуть self.process_ie_result (ie_result, загрузить, extra_info) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 861, в process_ie_result вернуть self.process_video_result (то есть, загрузить = загрузить) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 1642, в process_video_result self.process_info (new_info) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 1989, в process_info self.post_process (имя файла, info_dict) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 2056, в post_process self.report_error (e.msg) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 624, в файле report_error self.trouble (error_message, tb) Файл "C: \ Users \ Eng-Ahmed Saleh \ PycharmProjects \ untitled5 \ venv \ lib \ site-packages \ youtube_dl \ YoutubeDL.py", строка 594, в беде поднять DownloadError (сообщение, exc_info) youtube_dl.utils.DownloadError: ОШИБКА: ffprobe / avprobe и ffmpeg / avconv не найдены. Пожалуйста, установите один.

...