Преобразование файлов mp4 без рамок в mp3 с помощью python / moviepy

#python #mp3 #mp4 #moviepy #pytube

#питон #mp3 #МР4 #moviepy #pytube

Вопрос:

Итак, что я пытаюсь сделать, это конвертировать файлы mp4, которые я получаю при загрузке видео с YouTube с помощью pytube, в файлы mp3 с помощью moviepy. Однако эти файлы mp4 не содержат никаких кадров, которые возникают KeyError: 'video_fps' в ffmpeg_reader.

Возможно ли вообще это сделать с помощью moviepy или мне нужно использовать другой инструмент? Я думаю, я мог бы также просто загружать файлы mp4 с видео, но это привело бы к пустой трате ресурсов, особенно для больших списков воспроизведения.


Вот код, который я использовал:

 from moviepy.video.io.VideoFileClip import VideoFileClip
import pytube
    
def downloadPlaylist(url):
        playlist = pytube.Playlist(url)
    
        for video in playlist.videos:
            filename = video.streams.get_audio_only().download()
            clip = VideoFileClip(filename)
            clip.audio.write_audiofile(filename[:-4]   ".mp3")
            clip.close()
 

Комментарии:

1. Попробуйте создать аудиофильм из файлов mp4?

Ответ №1:

Так что просто изменение VideoFileClip(filename) AudioFileClip(filename) было решением:

     clip = AudioFileClip(filename)
    clip.write_audiofile(filename[:-4]   ".mp3")
    clip.close()
 

Ответ №2:

Воздержитесь от использования .get_audio_only() Попробуйте загрузить все видео с .get_by_itag помощью или чего-то подобного. У меня получилось после получения всего видео.

Комментарии:

1. Как я уже сказал, это излишне отнимет время. Ответ @Tom Burrows сработал для меня.