要下载B站视频或音频,可以通过Python的yt-dlp库。yt-dlp 是一个功能丰富的命令行音视频下载工具,支持从数千个网站下载视频和音频内容。它是基于已停止维护的 youtube-dl 项目的一个分支,旨在添加新功能和修复,同时保持与原始项目的兼容性。yt-dlp 可以用于下载 YouTube、DailyMotion、BBC 和 Reddit 等多个平台的视频,并且支持多种格式的视频和音频下载。此外,yt-dlp 还可以提取视频中的音频,并允许用户指定音频的格式和音质。它还支持下载 YouTube 频道或用户的播放列表,并将每个播放列表保存在单独的目录中。在使用 yt-dlp 之前,强烈建议安装 FFmpeg 和 FFprobe,因为这两个工具几乎是必需的,用于处理视频、音频和其他多媒体文件。
在deepseek中输入提示词:
写一个可以下载b站视频中音频的Python脚本,具体步骤如下:
用户输入b站视频地址,
用yt_dlp库抽取出视频中的音频流,
将音频保存到D盘
注意:用户可以输入一个视频地址,也多个b站视频地址,还可以输入一个视频列表;
要循环接受用户的输入,一个音频下载完成后继续接受用户的输入;
Python源代码:
import yt_dlp
def download_audio(url, output_dir):
ydl_opts = {
'format': 'bestaudio/best', # 选择最佳音频质量
'outtmpl': f'{output_dir}/%(title)s.%(ext)s', # 输出文件模板
'postprocessors': [{
'key': 'FFmpegExtractAudio', # 使用FFmpeg提取音频
'preferredcodec': 'mp3', # 音频格式为mp3
'preferredquality': '192', # 音频质量为192kbps
}],
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
def process_input(user_input, output_dir):
if ',' in user_input:
urls = user_input.split(',')
else:
urls = [user_input]
for url in urls:
url = url.strip()
if url:
print(f"正在下载音频: {url}")
download_audio(url, output_dir)
print(f"音频下载完成: {url}")
if __name__ == "__main__":
output_directory = "D:/"
while True:
user_input = input("请输入B站视频地址(多个地址用逗号分隔,输入'q'退出): ")
if user_input.lower() == 'q':
print("退出程序")
break
process_input(user_input, output_directory)
运行结果:
本文分享自 Dance with GenAI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!