💻 源代码
import requests
import json
import os
def download_ximalaya(album_id, size=30):
"""下载喜马拉雅专辑音频"""
url = f'https://www.ximalaya.com/revision/play/v1/show?id={album_id}&sort=1&size={size}&ptype=1'
headers = {
'User-Agent': 'Mozilla/5.0 Chrome/78.0.3904.108'
}
r = requests.get(url, headers=headers)
result = r.json()
# 创建保存目录
if not os.path.exists('audio'):
os.mkdir('audio')
content_list = result['data']['tracksAudioPlay']
for content in content_list:
t_id = content['trackId']
name = content['trackName']
# 获取音频URL
audio_url = f'https://www.ximalaya.com/revision/play/v1/audio?id={t_id}&ptype=1'
audio_resp = requests.get(audio_url, headers=headers)
audio_src = audio_resp.json()['data']['src']
# 下载音频
audio_content = requests.get(audio_src).content
with open(f'audio/{name}.m4a', 'wb') as f:
f.write(audio_content)
print(f"下载完成: {name}.m4a")
# 示例: 下载专辑ID 231012348 的前30个音频
download_ximalaya(231012348)