首页 > 解决方案 > 使用python/moviepy将没有帧的mp4文件转换为mp3

问题描述

所以我要做的是将我从使用 pytube 下载 YouTube 视频中获得的 mp4 文件转换为使用 moviepy 的 mp3 文件。但是,这些 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()

标签: pythonmp3mp4moviepypytube

解决方案


避免使用.get_audio_only() 尝试下载整个视频.get_by_itag或类似的东西。获得整个视频后为我工作。


推荐阅读