Example #1
0
def get_song(data2,data4):

    for j in range(len(data2)):
        musiclist=cloudmusic.getPlaylist(data2[j])
        for music in musiclist:

            writer.writerow([music.id, music.name, music.url, music.artist,music.artistId, music.album,music.albumId,data4[j],data2[j]])
    csv_file.close()
Example #2
0
def download_music(list_id):
    try:
        play_list = cloudmusic.getPlaylist(list_id)
        for music in play_list:
            music.download(level='lossless')
        print('下载完成')
    except:
        print('获取失败,请输入正确的歌单id')
    def music_list(self,type):
        self.ui.music_list_id_Edit.clear()
        method = self.ui.music_list_tableWidget.rowCount()
        for i in range(method):
            self.ui.music_list_tableWidget.removeRow(0)

        music_id = int(self.ui.music_list_Edit.text())
        if type =='music_paly':
            music_play_list = cloudmusic.getPlaylist(music_id)
        else:
            music_play_list = cloudmusic.getAlbum(music_id)

        self.ui.music_list_label.setText(f'搜索成功!共{len(music_play_list)}首')

        for i in range(len(music_play_list)):
            self.ui.music_list_tableWidget.insertRow(0)
        for i in range(len(music_play_list)):
            self.ui.music_list_tableWidget.setItem(i, 0, QTableWidgetItem(f"{music_play_list[i].name}"))
            self.ui.music_list_tableWidget.setItem(i, 1, QTableWidgetItem(f"{music_play_list[i].artist[0]}"))
            self.ui.music_list_tableWidget.setItem(i, 2, QTableWidgetItem(f"《{music_play_list[i].album}》"))
            self.ui.music_list_id_Edit.insertPlainText(f'{music_play_list[i].id}\n')
Example #4
0
def getmusic():
    choice = ['1.获取歌单信息', '2.获取个人信息', '3.退出本系统']
    choose = e.buttonbox('请选择操作', '网易云音乐系统', choice)
    if choose == choice[0]:
        list_id = e.integerbox('请输入歌单的id', '网易云音乐系统', upperbound=999999999)
        try:
            play_list = cloudmusic.getPlaylist(list_id)
        except:
            e.msgbox('获取失败,请输入正确的歌单id')
            getmusic()
        choice1 = ['1.下载歌单', '2.退出本程序']
        msg = ''
        for each in play_list:
            msg += each.name + '\n'
        choose = e.buttonbox('歌曲名如下:\n' + msg, '请选择接下来的操作', choice1)
        if choose == choice1[0]:
            dir = e.diropenbox('请选择存放地址')
            os.chdir(dir)
            e.msgbox('点确定以开始下载', '网易云音乐系统')
            for music in play_list:
                music.download(level='lossless')
            e.msgbox('下载完成')
        elif choose == choice1[1]:
            pass
    elif choose == choice[1]:
        id = e.integerbox('请输入要查找的id',
                          '网易云音乐系统',
                          '515694669',
                          upperbound=999999999)
        if id == None:
            getmusic()
        user = cloudmusic.getUser(id)
        msg = ''
        dict1 = {
            'id': '用户id',
            'level': '用户等级',
            'listenSongs': '累计听歌数量',
            'createTime': '账号创建时间',
            'nickname': '用户昵称',
            'avatarUrl': '头像url',
            'city': '所在城市的行政区划代码',
            'province': '所在省份的行政区划代码',
            'vipType': 'vip类型',
            'birthday': '生日时间戳',
            'signature': '个性签名',
            'fans': '粉丝数量',
            'follows': '关注的用户数量',
            'eventCount': '动态数量',
            'playlistCount': '创建的歌单数量'
        }
        for key, value in dict1.items():
            msg += str(value) + ':' + str(eval('user.' + str(key))) + '\n'
        choice = ['1.获取用户的歌单(下载)', '2.退出本程序']
        choose = e.buttonbox('信息如下:\n' + msg, '网易云音乐系统', choice)
        if choose == choice[0]:
            msg = ''
            playlist = user.getPlaylist()
            n = 0
            for each in playlist:
                msg += str(n) + '.' + each['name'] + '\n'
                n += 1
            choice = ['1.下载歌单', '2.退出本程序']
            choose = e.buttonbox('歌单名称:\n' + msg, '网易云音乐系统',
                                 choice)  #515694669
            if choose == choice[0]:
                tips = '请选择下载的范围\n'
                list_range = e.enterbox(
                    tips + msg + '(请用“,”将各歌单分割,如“1-2,3,4”)', '网易云音乐系统')
                print(list_range)
                if list_range == None: getmusic()
                list1 = []
                if ',' or ',' in list_range:  #将范围分割
                    list_range = list_range.replace(',', ',')
                    list_range = list_range.split(',')
                    print(list_range)
                    for each in list_range:
                        if '-' in each:
                            a, b = each.split('-')
                            list_range.remove(each)
                            for i in range(int(a), int(b) + 1):
                                list1.append(i)
                        else:
                            list1.append(int(each))
                elif '-' in list_range:
                    a, b = list_range.split('-')
                    for i in range(int(a), int(b) + 1):
                        list1.append(i)
                else:
                    list1.append(int(list_range))
                list1 = list(set(list1))
                if e.ccbox('歌单范围是%s,点按continue开始下载' % str(list1)):
                    try:
                        dir = e.diropenbox('请选择存放地址')
                        for i in list1:
                            dirname = playlist[int(i)]['name']
                            dirs = os.path.join(dir, dirname)
                            os.mkdir(dirs)
                            os.chdir(dirs)
                            download_music(playlist[int(i)]['id'])
                            os.chdir(dir)
                    except:
                        getmusic()

        elif choose == choice[1]:
            pass

    show()
Example #5
0
import os

print("请输入想干的事情\n1.下载单曲音乐\n2.下载歌单\n3.下载专辑\n")
todo = input("你的选择是: ")
if (todo == "1"):
    songid = input("请输入歌曲id: ")
    music = cloudmusic.getMusic(songid)
    print("歌名:{}".format(music.name))
    print("歌手:{}".format(music.artist))
    print("专辑:{}".format(music.album))
    print("音频文件url:{}".format(music.url))
    os.system("aria2c --split 200 " + "\"" + music.url + "\"" + " " + "-o " +
              "\"" + music.name + ".m4a" + "\"")
elif (todo == "2"):
    playlist1 = input("请输入歌单id: ")
    playlist = cloudmusic.getPlaylist(playlist1)
    for music in playlist:
        print("歌名:{}".format(music.name))
        print("歌手:{}".format(music.artist))
        print("专辑:{}".format(music.album))
        print("音频文件url:{}".format(music.url))
        os.system("aria2c --split 200 " + "\"" + music.url + "\"" + " " +
                  "-o " + "\"" + music.name + ".m4a" + "\"")
elif (todo == "3"):
    album1 = input("请输入专辑id: ")
    album = cloudmusic.getAlbum(album1)
    for music in album:
        print("歌名:{}".format(music.name))
        print("歌手:{}".format(music.artist))
        print("专辑:{}".format(music.album))
        print("音频文件url:{}".format(music.url))
Example #6
0
def getPlaylist(id):
    playlist = cloudmusic.getPlaylist(id)
    for music in playlist:
        print(music.name)
        music.download('./cloudmusic', "lossless")
Example #7
0
from os.path import join, getsize

#Handling the problem of Windows reserved words in file names
intab = "?*/\\|.:><\"\'"
outtab = "           "
trantab = str.maketrans(intab, outtab)
Error_List = "\n----------------------------------------------------\n"

If_End = False
while not If_End:
    If_Download = False
    while not If_Download:
        Music_List_ID = input(
            "Please enter the ID of the Netease cloud music playlist that you wish to download:\n"
        )
        musiclist = cloudmusic.getPlaylist(Music_List_ID)
        #Display the number of songs in the playlist and confirm whether to download
        print("The playlist you wish to download contains ", len(musiclist),
              " songs. Do you want to download?    Y/N")
        Check_Download = input()
        if Check_Download == "Y" or Check_Download == "y":
            If_Download = True
    If_Path = False
    while not If_Path:
        Download_Addrass = input(
            "Please enter the path where you want to store the song:\n")
        if os.path.isdir(Download_Addrass):
            If_Path = True
        else:
            print("The path you entered is illegal! Please re-enter!")
    #Make sure the quality of music(standard by default
Example #8
0
# 601776277 是我的一个歌单id
# print(playlist)
# [<Music object - 445702291>, <Music object - 27198683>, <Music object - 27198679>, <Music object - 1868496>, <Music object - 26857076>, <Music object - 27198673>, <Music object - 27198672>, <Music object - 27198671>, <Music object - 1868520>, <Music object - 1868553>, <Music object - 486069583>, <Music object - 27198663>, <Music object - 1869285>, <Music object - 27198691>, <Music object - 1868483>]
# 每个Music object包含属性:url(音频文件链接),level(品质),tyoe(格式),id(歌曲id),name(歌曲名),aitist(歌手),album(所属专辑),size(音频文件大小)
# 每个Music object包含方法:1.download()下载到本地   2.review()获取详细评论

# music = cloudmusic.getMusic(1381755293)

# print(music.getCommentCount())

# comments = music.getHotComments()

# for com in comments:
#     print(com['content'])
#     print(com['likeCount'])
musiclist = cloudmusic.getPlaylist(362246091)

# 循环输出每个Music对象的评论数
for music in musiclist:
    print(music.name)
    print(music.getCommentsCount())

print(len(musiclist))

# loader = api.createLoader()

# loader.data = musicList

# if __name__ == "__main__":
#     loader.start()
Example #9
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/05/27 下午 2:58
# @Author  : 殇夜殇雪
# @File    : 歌单.py
import cloudmusic
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')
歌单 = cloudmusic.getPlaylist(5002003275)
print(type(歌单))
print(歌单)
for i in range(len(歌单)):
    print(f"第{i + 1}首:{歌单[i].name}")



Example #10
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/05/30 下午 9:54
# @Author  : 殇夜殇雪
# @File    : 对象方法.py
import cloudmusic
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')
对象 = cloudmusic.getPlaylist(5002003275)  # 对应歌单ID
排行 = cloudmusic.getUser(1804446467)

# print(type(对象))

for i in range(len(对象)):
    print(f"创建者ID:{对象[i].artistId}")
    print(f"歌曲ID:{对象[i].id}")
    print(f"第{i+1}首:{对象[i].name}")
    print(f"格式:{对象[i].type}")


Example #11
0
import cloudmusic

playlist = cloudmusic.getPlaylist(5374691276)

for music in playlist:
    music.download(level="lossless")