# pip install yt-dlp
import subprocess
import sys
def download_audio_from_bilibili(bv_id, output_format="mp3"):
"""
使用 yt-dlp 从 Bilibili 提取音频。
:param bv_id: Bilibili 视频的 BV 号,例如 "BV1X24y1y7ab"
:param output_format: 提取音频格式,默认为 mp3
:return: None
"""
# 拼接成 Bilibili 视频链接
bili_url = f"https://www.bilibili.com/video/{bv_id}"
# yt-dlp 命令参数说明:
# -x / --extract-audio : 从视频中只提取音频
# --audio-format FORMAT : 指定音频格式(mp3, m4a, flac, wav 等)
# -o : 指定输出文件名或模板
command = [
"yt-dlp",
"-x",
"--audio-format", output_format,
"--output", "%(title)s.%(ext)s", # 这里可以自定义输出文件名
bili_url
]
try:
print(f"开始从 {bili_url} 提取音频...")
subprocess.run(command, check=True)
print("音频提取完成!")
except subprocess.CalledProcessError as e:
print("下载或提取音频时出错:", e)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("用法:python main.py <BV号> [音频格式]")
sys.exit(1)
bv_number = sys.argv[1]
audio_fmt = sys.argv[2] if len(sys.argv) > 2 else "mp3"
download_audio_from_bilibili(bv_number, audio_fmt)
09-30
1916
