示例:下载指定歌单所有歌曲
from bilibili_api import audio, sync, get_sessionimport osAUDIO_LIST_ID = 10624async def main(): # 获取歌单歌曲列表 al = audio.AudioList(AUDIO_LIST_ID) audios = [] p = 1 while True: l = await al.get_song_list(p) audios.extend(l['data']) if l['pageCount'] >= p: break p += 1 sess = get_session() # 创建歌单文件夹 if not os.path.exists(str(AUDIO_LIST_ID)): os.mkdir(str(AUDIO_LIST_ID)) for au in audios: # 下载歌曲 file = f"{AUDIO_LIST_ID}/{au['id']} - {au['title']}.m4a" a = audio.Audio(au['id']) url = await a.get_download_url() url = url['cdns'][0] print(f"下载 {au['title']}") resp = await sess.get(url, headers={ "User-Agent": "Mozilla/5.0", "Referer": "https://www.bilibili.com/" }) with open(file, 'wb') as f: while True: chunk = await resp.content.read(1024) if not chunk: break f.write(chunk)sync(main())