所以我想做的是使用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
或类似软件下载整个视频。在得到整个视频后为我工作。