使用python/moviepy将没有帧的mp4文件转换为mp3



所以我想做的是使用moviepy将我从使用pytube下载YouTube视频中获得的mp4文件转换为mp3文件。然而,这些mp4文件不包含在ffmpeg_reader中引发KeyError: 'video_fps'的任何帧。

有可能用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()

因此,将VideoFileClip(filename)更改为AudioFileClip(filename)就是解决方案:

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

避免使用.get_audio_only()尝试使用.get_by_itag或类似软件下载整个视频。在得到整个视频后为我工作。

最新更新