Sky Music Downloader
安装外置库:
python -m pip install requests
源代码:
import requests
import json
# 获取歌曲 data
def Get_data(keyword):
#获取歌曲id的api
get_id_api = "http://cloud-music.pl-fe.cn/search?keywords="
#结合关键词和api得到url
get_id_url = get_id_api + keyword
#定义请求头
header = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0",
"Cookie": "NMTID=00Op1Lb9hTBmf_sSEdIm_UDnyhJslIAAAGCDF5Q9A"
}
print(get_id_url)
#发送get请求获取数据
data=requests.get(url=get_id_url,headers=header)
json_data = json.loads(data.text)
id = []
name = []
artists=[]
for i in range(0,30):
id.append(str((((json_data["result"])["songs"])[i])["id"]))
name.append(str((((json_data["result"])["songs"])[i])["name"]))
artists.append(str((((((json_data["result"])["songs"])[i])["artists"])[0])["name"]))
songs_data = {
"id":id,
"name":name,
"artists":artists
}
return songs_data
def Choose_song(songs_data):
print("\f")
print(" \t歌名-歌手")
for i in range(0,10):
song_name = (songs_data["name"])[i]
artists = (songs_data["artists"])[i]
print(i+1,f"\t{song_name}-{artists}")
choose_data_str = input("选择一首你要下载的歌输入数字序号:")
choose_data = int(choose_data_str)-1
return choose_data
def Get_file(id,name):
header={
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
}
file_url_api = "https://music.163.com/song/media/outer/url?id="
file_url = file_url_api + id + ".mp3"
music_file = requests.get(url=file_url,headers=header)
with open(name+'.mp3','wb') as f:
f.write(music_file.content)
def Get_image():
...
def Get_word():
...
def Write_song_info(song_file):
...
def main():
keyword_ = input("Please enter a keyword:")
songs_data = Get_data(keyword=keyword_)
choose_data = Choose_song(songs_data=songs_data)
Get_file(id=(songs_data["id"])[choose_data],name=(songs_data["name"])[choose_data])
if __name__ == '__main__':
main()
#######################
# 不喜爱写注释,变量名 #
# 觉得自己写的简单易懂!#
# 作者:SkyOrg #
#######################