如何优雅地从B站中批量下载歌曲合集,并将其转为MP4与MP3?

如何优雅地从B站中批量下载歌曲合集,并将其转为MP4与MP3?

在浏览B站时,我们可以找到很多喜欢地歌曲合集,若是想要批量下载只能在B站上播放,要想整个下载下来转为MP4或是MP3在车上放,一首首下就非常麻烦,遍搜全网,没几个好用的,一般是广告,一点不方便,经过我的摸索,将我的方法分享如下。

从B站直接缓存的视频是不能直接使用的,具体到每个文件夹下的m4s文件才是我们需要的处理对象,那么处理过程为先将m4s文件先提取出来,将两个m4s文件合并在一起后转为MP4文件,详情可看B站缓存视频批量转为MP4格式,懒狗help懒狗,实现图形化_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1sLi6YQEba/?spm_id_from=333.999.0.0&vd_source=e0ef86e6fb1f86a7f87a74bcffd17183该up已经将功能实现很完美了(呜呜呜~创新点没了)。而我想将接着将得到的MP4批量转为MP3怎么办呢?

用python,拒绝广告,拒绝广告,拒绝广告!!!拒绝一切花里胡哨。

import os

from moviepy.editor import AudioFileClip

def convert_mp4_to_mp3(input_folder, output_folder, bitrate="320k"):

"""

将MP4文件批量转换为MP3,并控制输出音频质量。

:param input_folder: 包含MP4文件的文件夹路径

:param output_folder: 保存MP3文件的文件夹路径

:param bitrate: 音频比特率,默认值为"320k"(高质量),可选值:"128k", "192k", "256k", "320k"

"""

# 确保输出文件夹存在

if not os.path.exists(output_folder):

os.makedirs(output_folder)

# 遍历输入文件夹中的所有文件

for filename in os.listdir(input_folder):

if filename.endswith(".mp4"):

# 构建完整的文件路径

mp4_path = os.path.join(input_folder, filename)

mp3_filename = os.path.splitext(filename)[0] + ".mp3"

mp3_path = os.path.join(output_folder, mp3_filename)

# 转换MP4到MP3,并设置比特率

audio_clip = AudioFileClip(mp4_path)

audio_clip.write_audiofile(mp3_path, bitrate=bitrate)

audio_clip.close()

print(f"Converted {filename} to {mp3_filename} with bitrate {bitrate}")

if __name__ == "__main__":

input_folder = "path/to/your/mp4/folder" # 替换为你的MP4文件夹路径

output_folder = "path/to/your/mp3/folder" # 替换为你想保存MP3的文件夹路径

bitrate = "320k" # 设置比特率,推荐使用"320k"以获得高质量音频

convert_mp4_to_mp3(input_folder, output_folder, bitrate)

使用上述代码便可将得到的MP4文件转为MP3文件了,只需设置下文件的输入输出文件路径即可。

相关内容

友情链接