├── Image ├── album.png ├── alldownload.png ├── dowload.png ├── excel.png ├── file.png ├── kmusic.png ├── kugoumusic.png ├── look.png ├── lyrics.png ├── lyrics1.png ├── musiclist.png ├── openexcel.png ├── qqmusic.png ├── song.png ├── sousuo.png ├── title.png └── wyy.png ├── Music_Download.py ├── Music_Funciton.py ├── README.md ├── dowload.ui └── look over.txt /Image/album.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/album.png -------------------------------------------------------------------------------- /Image/alldownload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/alldownload.png -------------------------------------------------------------------------------- /Image/dowload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/dowload.png -------------------------------------------------------------------------------- /Image/excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/excel.png -------------------------------------------------------------------------------- /Image/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/file.png -------------------------------------------------------------------------------- /Image/kmusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/kmusic.png -------------------------------------------------------------------------------- /Image/kugoumusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/kugoumusic.png -------------------------------------------------------------------------------- /Image/look.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/look.png -------------------------------------------------------------------------------- /Image/lyrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/lyrics.png -------------------------------------------------------------------------------- /Image/lyrics1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/lyrics1.png -------------------------------------------------------------------------------- /Image/musiclist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/musiclist.png -------------------------------------------------------------------------------- /Image/openexcel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/openexcel.png -------------------------------------------------------------------------------- /Image/qqmusic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/qqmusic.png -------------------------------------------------------------------------------- /Image/song.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/song.png -------------------------------------------------------------------------------- /Image/sousuo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/sousuo.png -------------------------------------------------------------------------------- /Image/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/title.png -------------------------------------------------------------------------------- /Image/wyy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Java-S12138/Music_Download/5eb58037ddef37e642aa1895b2d56fabee66f705/Image/wyy.png -------------------------------------------------------------------------------- /Music_Download.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import sys 4 | import time 5 | import xlwt 6 | import json 7 | import random 8 | import requests 9 | import datetime 10 | import threading 11 | import cloudmusic 12 | import Music_Funciton 13 | from PySide2.QtUiTools import QUiLoader 14 | from PySide2.QtGui import QIcon, QPixmap 15 | from PySide2.QtCore import QObject, Signal, QUrl, QTimer 16 | from PySide2.QtMultimedia import QMediaContent, QMediaPlayer 17 | from PySide2.QtWidgets import QApplication, QTableWidgetItem, QAbstractItemView, QMessageBox, QListWidgetItem 18 | 19 | class SignalStore(QObject):#进度条 20 | progress_update = Signal(int) 21 | top_progress_update = Signal(int) 22 | so = SignalStore() 23 | 24 | class Data_List: 25 | def __init__(self): 26 | self.img_url = [] # 首页图片显示的url 27 | self.bt_name = [] # 首页按键的标题 28 | self.bt_id = [] # 首页按键的id值 29 | 30 | self.music_name = [] # 歌曲列表显示区域 31 | self.music_id = [] # 歌曲列表显示的ID 32 | self.music_url = [] #音乐下载地址及信息 33 | 34 | self.pre_music_index = 0 # 上一首歌的index 35 | self.music_pages = 0 # 歌单码数 36 | self.music_count = 0 # 歌单总页数 37 | 38 | class Music_Dowload(QObject): 39 | def __init__(self): 40 | super(Music_Dowload, self).__init__() 41 | so.progress_update.connect(self.setProgress) #进度条 42 | so.top_progress_update.connect(self.top_setProgress) #进度条 43 | self.ongoing = False #下载警告 44 | self.ui = QUiLoader().load(f'{os.getcwd()}/dowload.ui') #关联ui界面文件 45 | self.PLAY() 46 | 47 | def PLAY(self): 48 | self.ui.top_textEdit.setReadOnly(True) 49 | self.ui.comment_textEdit.setReadOnly(True) 50 | self.ui.lyrics_textEdit.setReadOnly(True) 51 | self.ui.comment_textEdit.setReadOnly(True) 52 | self.ui.textBrowser.setReadOnly(True) 53 | self.ui.textBrowser_2.setReadOnly(True) 54 | self.ui.seek_Button.clicked.connect(self.platform_netease) # 搜索网易云 55 | self.ui.seek_Button_2.clicked.connect(self.platform_tencent) # 搜索QQ音乐 56 | self.ui.seek_Button_3.clicked.connect(self.platform_kugou) # 搜索酷狗音乐 57 | self.ui.download_Button.clicked.connect(self.download_type_thread) # 下载按钮 58 | self.ui.all_download_Button.clicked.connect(self.all_music_download) # 下载按钮 59 | self.ui.top_download_Button.clicked.connect(self.all_top_download) # 下载按钮 60 | self.ui.open_Button.clicked.connect(self.open_file) # 打开保存音乐的文件夹 61 | self.ui.open_Button_2.clicked.connect(self.open_file) # 打开保存音乐的文件夹 62 | self.ui.open_Button_3.clicked.connect(self.open_file) # 打开保存音乐的文件夹 63 | self.ui.open_Button_4.clicked.connect(self.open_file) # 打开保存音乐的文件夹 64 | self.ui.comment_pushButton.clicked.connect(self.look_comments) # 查看评论 65 | self.ui.comment_pushButton_2.clicked.connect(self.in_excel) # 生成excel文件 66 | self.ui.comment_pushButton_3.clicked.connect(self.open_excel) # 打开excel文件 67 | self.ui.lyrics_pushButton.clicked.connect(self.lyrics) # 查看歌词 68 | self.ui.lyrics_pushButton_2.clicked.connect(self.lyrics_T) # 查看歌词时间版 69 | self.ui.comboBox.currentIndexChanged.connect(self.top) # 查看排行榜 70 | self.ui.home_comboBox_2.currentIndexChanged.connect(self.home_top) # 查看主页排行榜 71 | self.ui.top_pushButton.clicked.connect(self.music_top_dowload) # 下载排行榜里面的音乐 72 | self.ui.music_list_pushButton.clicked.connect(lambda: self.music_list("music_paly")) # 显示歌单内容 73 | self.ui.music_list_pushButton_album.clicked.connect(lambda: self.music_list("album")) # 显示歌单内容 74 | self.ui.music_list_pushButton_2.clicked.connect(self.music_list_downlodn) # 下载歌单里面的音乐 75 | self.ui.music_list_tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) # 设置歌单表格为只读 76 | self.ui.download_tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) # 设置歌单表格为只读 77 | self.lock = threading.Lock() 78 | self.date = Data_List() 79 | self.img_list = [ 80 | self.ui.img0, self.ui.img1, self.ui.img2, self.ui.img3, 81 | self.ui.img4, self.ui.img5, self.ui.img6, self.ui.img7 82 | ] 83 | self.title_list = [ 84 | self.ui.title0, self.ui.title1, self.ui.title2, self.ui.title3, 85 | self.ui.title4, self.ui.title5, self.ui.title6, self.ui.title7 86 | ] 87 | self.player = QMediaPlayer() # 音乐播放器 88 | self.player.setVolume(50) 89 | self.time = QTimer() 90 | self.ui.music_start_stop.setObjectName("start") 91 | self.time.start(1000) # 定时一秒 92 | self.copyright_flag = False 93 | self.show_title_thread("说唱") # 默认歌单为说唱 94 | self.ui.home_listWidget.itemDoubleClicked.connect(self.music_double_click_thread) # 双击播放线程 95 | self.time.timeout.connect(self.timeout_process) 96 | self.ui.music_start_stop.clicked.connect(self.stop_or_start_song) # 播放暂停 97 | self.ui.music_next.clicked.connect(self.next_music_thread) # 下一首线程 98 | self.ui.music_pre.clicked.connect(self.pre_music_thread) # 上一首线程 99 | self.ui.song_modle.clicked.connect(self.change_modle) # 播放模式改变 100 | self.ui.home_comboBox.currentIndexChanged.connect(self.home_palylist_thread) # 主页歌单切换 101 | self.ui.time_line.sliderMoved.connect(self.music_time_adjust) # 拖动进度条改变播放进度 102 | self.ui.time_line.sliderReleased.connect(self.music_time_adjust_over) # 拖动进度条改变播放进度完成 103 | self.ui.volume_line.valueChanged.connect(self.volume_adjust) # 拖动音量条改变音量 104 | self.ui.home_Button_net.clicked.connect(self.search_show_net) # 搜索结果 105 | self.ui.home_Button_qq.clicked.connect(lambda: self.search_show_qq("tencent")) # 搜索结果 106 | self.ui.home_Button_ku.clicked.connect(lambda: self.search_show_qq("kugou")) # 搜索结果 107 | self.ui.home_download_Button.clicked.connect(self.home_download_thread) # 下载正在播放的音乐 108 | self.ui.change_Button.clicked.connect(self.change_title) # 更换上方图片 109 | for i in self.title_list: 110 | i.clicked.connect(self.home_title_playlist) # 首页歌单和电台点击播放 111 | self.ui.music_next_2.clicked.connect(self.music_pages_next_thread) 112 | self.ui.music_pre_2.clicked.connect(self.music_pages_previous_thread) 113 | def change_title(self):#更换上方图片 114 | title_image = ["title.png","title1.png","title2.png","title3.png","title4.png"] 115 | title = random.sample(title_image,1) 116 | self.ui.label_5.setPixmap(QPixmap(f"{os.getcwd()}/Image/{title[0]}")) 117 | def home_download(self):#播放音乐下载 118 | os.makedirs("Music", exist_ok=True) 119 | url = self.date.music_url[0] 120 | music_name = self.date.music_url[1] 121 | Music_Funciton.music_download(url,music_name) 122 | 123 | self.ui.hmoe_show_label.setText('下载完成!') 124 | 125 | def top_home_show(self,list_info): 126 | self.date.music_name.clear() 127 | self.date.music_id.clear() 128 | self.ui.home_listWidget.clear() 129 | for i in range(len(list_info[0])): 130 | temp = QListWidgetItem(list_info[0][i]) 131 | self.date.music_id.append(list_info[1][i]) 132 | self.date.music_name.append(list_info[0][i]) 133 | temp.setIcon(QIcon(f"{os.getcwd()}/Image/song1.png")) 134 | temp.setToolTip("双击播放") 135 | self.ui.home_listWidget.addItem(temp) 136 | 137 | def home_top(self):#网易云排行榜 138 | text = self.ui.home_comboBox_2.currentText() 139 | self.ui.home_id_Edit.insertPlainText("netease") 140 | if text == "云音乐飙升榜": 141 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=19723756") 142 | self.top_home_show(musi_info) 143 | elif text == "云音乐新歌榜": 144 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=3779629") 145 | self.top_home_show(musi_info) 146 | elif text == "网易原创歌曲榜": 147 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=2884035") 148 | self.top_home_show(musi_info) 149 | elif text == "云音乐热歌榜": 150 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=3778678") 151 | self.top_home_show(musi_info) 152 | elif text == "云音乐说唱榜": 153 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=991319590") 154 | self.top_home_show(musi_info) 155 | elif text == "云音乐古典音乐榜": 156 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=71384707") 157 | self.top_home_show(musi_info) 158 | elif text == "云音乐电音榜": 159 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=1978921795") 160 | self.top_home_show(musi_info) 161 | elif text == "抖音排行榜": 162 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=2250011882") 163 | self.top_home_show(musi_info) 164 | elif text == "新声榜": 165 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=2617766278") 166 | self.top_home_show(musi_info) 167 | elif text == "云音乐ACG音乐榜": 168 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=71385702") 169 | self.top_home_show(musi_info) 170 | elif text == "云音乐韩语榜": 171 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=745956260") 172 | self.top_home_show(musi_info) 173 | elif text == "云音乐国电榜": 174 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=10520166") 175 | self.top_home_show(musi_info) 176 | elif text == "英国Q杂志中文版周榜": 177 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=2023401535") 178 | self.top_home_show(musi_info) 179 | elif text == "电竞音乐榜": 180 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=2006508653") 181 | self.top_home_show(musi_info) 182 | elif text == "UK排行榜周榜": 183 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=180106") 184 | self.top_home_show(musi_info) 185 | elif text == "美国Billboard周榜": 186 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=60198") 187 | self.top_home_show(musi_info) 188 | elif text == "Beatport全球电子舞曲榜": 189 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=3812895") 190 | self.top_home_show(musi_info) 191 | elif text == "KTV唛榜": 192 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=21845217") 193 | self.top_home_show(musi_info) 194 | elif text == "iTunes榜": 195 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=11641012") 196 | self.top_home_show(musi_info) 197 | elif text == "日本Oricon周榜": 198 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=60131") 199 | self.top_home_show(musi_info) 200 | elif text == "Hit FM Top榜": 201 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=120001") 202 | self.top_home_show(musi_info) 203 | elif text == "台湾Hito排行榜": 204 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=112463") 205 | self.top_home_show(musi_info) 206 | elif text == "云音乐欧美热歌榜": 207 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=2809513713") 208 | self.top_home_show(musi_info) 209 | elif text == "法国 NRJ Vos Hits 周榜": 210 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=27135204") 211 | self.top_home_show(musi_info) 212 | elif text == "中国新乡村音乐排行榜": 213 | musi_info = Music_Funciton.music_home_top("https://music.163.com/discover/toplist?id=3112516681") 214 | 215 | # 显示QQ音乐搜索结果 216 | def search_show_qq(self,type): 217 | 218 | self.ui.home_listWidget.clear() 219 | self.date.music_id.clear() 220 | self.date.music_name.clear() 221 | self.ui.home_id_Edit.clear() 222 | music_name = self.ui.home_input_Edit.text() 223 | if type == "tencent": 224 | self.ui.home_id_Edit.insertPlainText("tencent") 225 | list_info = Music_Funciton.home_show_music(type, music_name) 226 | elif type == "kugou": 227 | self.ui.home_id_Edit.insertPlainText("kugou") 228 | list_info = Music_Funciton.home_show_music(type, music_name) 229 | 230 | for i in range(len(list_info)): 231 | temp = QListWidgetItem(list_info[i][1] + "---" + list_info[i][2]) 232 | self.date.music_id.append(list_info[i][0]) 233 | self.date.music_name.append(list_info[i][1]) 234 | temp.setIcon(QIcon(f"{os.getcwd()}/Image/song1.png")) 235 | temp.setToolTip("双击播放") 236 | self.ui.home_listWidget.addItem(temp) 237 | # 显示网易云搜索结果 238 | def search_show_net(self): 239 | self.lock.acquire() 240 | 241 | self.ui.home_listWidget.clear() 242 | self.date.music_id.clear() 243 | self.ui.home_id_Edit.clear() 244 | self.date.music_name.clear() 245 | self.ui.home_id_Edit.insertPlainText("netease") 246 | music_name = self.ui.home_input_Edit.text() 247 | 248 | list_info = Music_Funciton.home_show_music("netease",music_name) 249 | for i in range(len(list_info)): 250 | temp = QListWidgetItem(list_info[i][1]+"---"+list_info[i][2]) 251 | self.date.music_id.append(list_info[i][0]) 252 | self.date.music_name.append(list_info[i][1]) 253 | temp.setIcon(QIcon(f"{os.getcwd()}/Image/song1.png")) 254 | temp.setToolTip("双击播放") 255 | self.ui.home_listWidget.addItem(temp) 256 | self.lock.release() 257 | 258 | 259 | #播放方式改变 260 | def change_modle(self): 261 | if self.ui.song_modle.toolTip() == "列表循环": 262 | self.ui.song_modle.setIcon(QIcon(f"{os.getcwd()}/Image/单曲循环.png")) 263 | self.ui.song_modle.setToolTip("单曲循环") 264 | elif self.ui.song_modle.toolTip() == "单曲循环": 265 | self.ui.song_modle.setIcon(QIcon(f"{os.getcwd()}/Image/随机.png")) 266 | self.ui.song_modle.setToolTip("随机播放") 267 | elif self.ui.song_modle.toolTip() == "随机播放": 268 | self.ui.song_modle.setIcon(QIcon(f"{os.getcwd()}/Image/列表循环.png")) 269 | self.ui.song_modle.setToolTip("列表循环") 270 | 271 | # 播放和暂停 272 | def stop_or_start_song(self): 273 | if self.ui.music_start_stop.objectName() == "start": 274 | if self.ui.home_music_name_label.text(): 275 | self.player.play() 276 | self.ui.music_start_stop.setObjectName("stop") 277 | self.ui.music_start_stop.setIcon(QIcon(f"{os.getcwd()}/Image/停在-01.png")) 278 | elif self.ui.music_start_stop.objectName() == "stop": 279 | self.player.pause() 280 | self.ui.music_start_stop.setObjectName("start") 281 | self.ui.music_start_stop.setIcon(QIcon(f"{os.getcwd()}/Image/播放-01.png")) 282 | 283 | #音量图标显示 284 | def volume_adjust(self): 285 | self.player.setVolume(self.ui.volume_line.value()) 286 | if self.ui.volume_line.value() == 0: 287 | self.ui.volume.setPixmap(QPixmap(f"{os.getcwd()}/Image/horn_0.png")) 288 | elif self.ui.volume_line.value() < 30: 289 | self.ui.volume.setPixmap(QPixmap(f"{os.getcwd()}/Image/horn_30.png")) 290 | elif self.ui.volume_line.value() < 80: 291 | self.ui.volume.setPixmap(QPixmap(f"{os.getcwd()}/Image/horn.png")) 292 | else: 293 | self.ui.volume.setPixmap(QPixmap(f"{os.getcwd()}/Image/horn_100.png")) 294 | 295 | # 调节播放进度 296 | def music_time_adjust(self): 297 | self.player.pause() 298 | self.player.setPosition(self.ui.time_line.value() * 1000) 299 | 300 | def music_time_adjust_over(self): 301 | self.player.play() 302 | 303 | #下载进程 304 | def home_download_thread(self): 305 | dowload_music = threading.Thread(target=self.home_download) 306 | dowload_music.start() 307 | 308 | # 下一首线程 309 | def next_music_thread(self): 310 | next_music = threading.Thread(target=self.next_music) 311 | next_music.start() 312 | 313 | # 上一首线程 314 | def pre_music_thread(self): 315 | pre_music = threading.Thread(target=self.pre_music) 316 | pre_music.start() 317 | 318 | # 下一首歌曲 319 | def next_music(self): 320 | self.change_music_down() 321 | self.double_click_play() 322 | while self.copyright_flag: # 防止歌单中下一首是没有版权的歌曲导致播放停止 323 | self.change_music_down() 324 | self.double_click_play() 325 | 326 | def pre_music(self): 327 | self.change_music_up() 328 | self.double_click_play() 329 | while self.copyright_flag: # 防止歌单中下一首是没有版权的歌曲导致播放停止 330 | self.change_music_up() 331 | self.double_click_play() 332 | 333 | def change_music_up(self): 334 | index = self.ui.home_listWidget.currentRow() 335 | if not len(self.date.music_name) == 1: 336 | if not self.copyright_flag: 337 | self.date.pre_music_index = index 338 | if self.ui.song_modle.toolTip() == "列表循环": 339 | if index == (len(self.date.music_name) - 1): 340 | index = 0 341 | else: 342 | index = index - 1 343 | elif self.ui.song_modle.toolTip() == "随机播放": 344 | while True: 345 | # 随机播放,防止下一首是本首歌 346 | num = random.randint(0, len(self.date.music_name) - 1) 347 | if not num == index: 348 | index = num 349 | break 350 | self.ui.home_listWidget.setCurrentRow(index) 351 | 352 | def change_music_down(self): 353 | index = self.ui.home_listWidget.currentRow() 354 | if not len(self.date.music_name) == 1: 355 | if not self.copyright_flag: 356 | self.date.pre_music_index = index 357 | if self.ui.song_modle.toolTip() == "列表循环": 358 | if index == (len(self.date.music_name) - 1): 359 | index = 0 360 | else: 361 | index = index + 1 362 | elif self.ui.song_modle.toolTip() == "随机播放": 363 | while True: 364 | # 随机播放,防止下一首是本首歌 365 | num = random.randint(0, len(self.date.music_name) - 1) 366 | if not num == index: 367 | index = num 368 | break 369 | self.ui.home_listWidget.setCurrentRow(index) 370 | 371 | def timeout_process(self):#时间线显示 372 | if self.ui.music_start_stop.objectName() == "stop": 373 | time_value = self.ui.time_line.value() 374 | self.ui.time_line.setValue(time_value + 1) 375 | self.ui.time_pre_2.setText( 376 | str((time_value + 1) // 60).zfill(2) + ':' + str((time_value + 1) % 60).zfill(2) 377 | ) 378 | if self.ui.time_pre_2.text() == self.ui.time_pre_3.text(): 379 | self.player_stop_setting() 380 | self.ui.time_pre_2.setText("00:00") 381 | self.ui.time_line.setValue(0) 382 | self.next_music_thread() 383 | if self.ui.time_pre_2.text() == "00:02": 384 | time_long = self.player.duration() # 获取到实际这首歌的播放长度 385 | self.ui.time_line.setRange(0, int(time_long / 1000) + 1) # 设置进度条范围 386 | self.ui.time_pre_3.setText( # 设置音频长度的显示 387 | str(int(time_long / 1000) // 60).zfill(2) + ':' + str(int(time_long / 1000) % 60).zfill(2) 388 | ) 389 | 390 | def music_double_click_thread(self):#首页音乐框 双击歌曲后播放 多线程运行 391 | double_click = threading.Thread(target=self.double_click_play) 392 | double_click.start() 393 | 394 | def player_setting(self):#播放开始 395 | self.ui.time_line.setValue(0) 396 | self.ui.time_pre_2.setText("00:00") 397 | self.player.play() 398 | self.ui.music_start_stop.setIcon(QIcon(f"{os.getcwd()}/Image/停在-01.png")) 399 | self.ui.music_start_stop.setObjectName("stop") 400 | 401 | def player_stop_setting(self):#播放停止 402 | self.player.stop() 403 | self.ui.music_start_stop.setObjectName("start") 404 | self.ui.music_start_stop.setIcon(QIcon(f"{os.getcwd()}/Image/播放-01.png")) 405 | self.player_setting() 406 | self.copyright_flag = False 407 | def double_click_play(self):#首页音乐框 双击歌曲后播放 408 | self.ui.hmoe_show_label.setText('') 409 | index = self.ui.home_listWidget.currentRow() # 获取双击的标签的索引值 410 | music_type = self.ui.home_id_Edit.toPlainText() 411 | self.date.music_url.clear() 412 | 413 | if music_type == "tencent": 414 | music_id = self.date.music_id[index] 415 | url = Music_Funciton.home_play_music(music_id,music_type) 416 | self.player_stop_setting() # 播放停止设置 417 | self.player.setMedia(QMediaContent(QUrl(url))) 418 | self.date.music_url.append(url) 419 | self.date.music_url.append(self.date.music_name[index]) 420 | self.ui.home_music_name_label.setText(self.date.music_name[index]) 421 | self.player_setting() # 播放开始设置 422 | self.copyright_flag = False 423 | elif music_type == "kugou": 424 | music_id = self.date.music_id[index] 425 | url = Music_Funciton.home_play_music(music_id, music_type) 426 | self.player_stop_setting() # 播放停止设置 427 | self.player.setMedia(QMediaContent(QUrl(url))) 428 | self.date.music_url.append(url) 429 | self.date.music_url.append(self.date.music_name[index]) 430 | self.ui.home_music_name_label.setText(self.date.music_name[index]) 431 | self.player_setting() # 播放开始设置 432 | self.copyright_flag = False 433 | else: 434 | music_id = self.date.music_id[index] 435 | url = Music_Funciton.song_url(music_id) 436 | self.player_stop_setting() # 播放停止设置 437 | self.player.setMedia(QMediaContent(QUrl(url))) 438 | self.date.music_url.append(url) 439 | self.date.music_url.append(self.date.music_name[index]) 440 | self.ui.home_music_name_label.setText(self.date.music_name[index]) 441 | self.player_setting() # 播放开始设置 442 | self.copyright_flag = False 443 | 444 | 445 | def home_title_playlist(self):#显示歌单音乐 446 | self.ui.home_id_Edit.clear() 447 | send = self.sender() 448 | id_str = send.objectName() 449 | self.date.music_name, self.date.music_id = Music_Funciton.playlist_info(id_str.split('=')[1]) 450 | self.ui.home_listWidget.clear() # 列表清空 451 | for i in range(len(self.date.music_name)): # 加入选中歌单中的歌曲名 452 | temp = QListWidgetItem(self.date.music_name[i]) 453 | temp.setIcon(QIcon(f"{os.getcwd()}/Image/song1.png")) 454 | temp.setToolTip("双击播放") 455 | self.ui.home_listWidget.addItem(temp) 456 | 457 | 458 | def title_txt(self,title):#主页歌单标题字数限制 459 | if len(title) > 18: 460 | return title[:9] + '\n' + title[9:18]+"..." 461 | elif len(title) > 9: 462 | return title[:9] + '\n' + title[9:] 463 | else: 464 | return title 465 | 466 | def show_title_thread(self,type):#主页歌单标题button 多线程运行 467 | first_page_display = threading.Thread(target=lambda:self.home_show_title(type)) 468 | first_page_display.start() 469 | 470 | def music_pages_previous_thread(self): 471 | next = threading.Thread(target=self.music_pages_previous) 472 | next.start() 473 | def music_pages_next_thread(self): 474 | next = threading.Thread(target=self.music_pages_next) 475 | next.start() 476 | def home_palylist_thread(self): 477 | home_palylist_ing = threading.Thread(target=self.home_palylist) 478 | home_palylist_ing.start() 479 | 480 | def home_palylist(self):#网易云排行榜 481 | text = self.ui.home_comboBox.currentText() 482 | if text == "华语": 483 | self.show_title_thread(text) 484 | elif text == "欧美": 485 | self.show_title_thread(text) 486 | elif text == "日语": 487 | self.show_title_thread(text) 488 | elif text == "韩语": 489 | self.show_title_thread(text) 490 | elif text == "粤语": 491 | self.show_title_thread(text) 492 | elif text == "说唱": 493 | self.show_title_thread(text) 494 | elif text == "流行": 495 | self.show_title_thread(text) 496 | elif text == "民谣": 497 | self.show_title_thread(text) 498 | elif text == "爵士": 499 | self.show_title_thread(text) 500 | elif text == "乡村": 501 | self.show_title_thread(text) 502 | elif text == "古典": 503 | self.show_title_thread(text) 504 | elif text == "古风": 505 | self.show_title_thread(text) 506 | elif text == "清晨": 507 | self.show_title_thread(text) 508 | elif text == "夜晚": 509 | self.show_title_thread(text) 510 | elif text == "学习": 511 | self.show_title_thread(text) 512 | elif text == "工作": 513 | self.show_title_thread(text) 514 | 515 | def home_show_title(self,type):#主页歌单标题button 516 | 517 | self.ui.home_listWidget.clear() 518 | self.date.img_url, self.date.bt_name, self.date.bt_id = Music_Funciton.wyy_first_page(type) 519 | self.date.music_count = int(len(self.date.img_url)/8) 520 | self.ui.hmoe_pages_label.setText(f'1/{str(self.date.music_count)}') 521 | 522 | for i in range(8): 523 | img = QPixmap() 524 | img.loadFromData(requests.get(self.date.img_url[i]).content) 525 | self.img_list[i].setPixmap(img) 526 | self.title_list[i].setText(self.title_txt(self.date.bt_name[i])) 527 | self.title_list[i].setObjectName(self.date.bt_id[i]) 528 | 529 | def music_pages_next(self):#歌单页面下一页 530 | if self.date.music_pages+1 < self.date.music_count: 531 | self.date.music_pages += 1 532 | self.ui.hmoe_pages_label.setText(f'{str(self.date.music_pages+1)}/{str(self.date.music_count)}') 533 | for i in range(8): 534 | img = QPixmap() 535 | img.loadFromData(requests.get(self.date.img_url[(8*self.date.music_pages)+i]).content) 536 | self.img_list[i].setPixmap(img) 537 | self.title_list[i].setText(self.title_txt(self.date.bt_name[(8*self.date.music_pages)+i])) 538 | self.title_list[i].setObjectName(self.date.bt_id[(8*self.date.music_pages)+i]) 539 | else: 540 | self.ui.hmoe_show_label.setText('最后一页啦!') 541 | time.sleep(1) 542 | self.ui.hmoe_show_label.setText('') 543 | 544 | def music_pages_previous(self):#歌单页面上一页 545 | if self.date.music_pages+1 == 1: 546 | self.ui.hmoe_show_label.setText('已经是第一页!') 547 | time.sleep(1) 548 | self.ui.hmoe_show_label.setText('') 549 | else: 550 | self.ui.hmoe_pages_label.setText(f'{str(self.date.music_pages)}/{str(self.date.music_count)}') 551 | self.date.music_pages -= 1 552 | for i in range(8): 553 | img = QPixmap() 554 | img.loadFromData(requests.get(self.date.img_url[(8 * self.date.music_pages)-i]).content) 555 | self.img_list[i].setPixmap(img) 556 | self.title_list[i].setText(self.title_txt(self.date.bt_name[(8 * self.date.music_pages)-i])) 557 | self.title_list[i].setObjectName(self.date.bt_id[(8 * self.date.music_pages)-i]) 558 | 559 | # ------------------------------ 歌单 ------------------------------ 560 | 561 | def setProgress(self, value):#歌单进度条 562 | self.ui.all_d_Bar.setValue(value) 563 | 564 | def all_download(self,song_id,music,name): 565 | try: 566 | song_url = f"http://music.163.com/song/media/outer/url?id={song_id}.mp3" 567 | Music_Funciton.music_download(song_url,music,name) 568 | except: 569 | pass 570 | 571 | def all_music_download(self): 572 | music_name = [] 573 | music_singe = [] 574 | id_num = self.ui.music_list_id_Edit.toPlainText() 575 | id_info = id_num.split() 576 | method = self.ui.music_list_tableWidget.rowCount() 577 | self.ui.all_d_Bar.setRange(0,method) 578 | 579 | for i in range(method): 580 | music_n = self.ui.music_list_tableWidget.item(i, 0).text() 581 | music_s = self.ui.music_list_tableWidget.item(i, 1).text() 582 | music_name.append(music_n) 583 | music_singe.append(music_s) 584 | def dodownload(): 585 | self.ongoing = True 586 | for i in range(method): 587 | self.all_download(id_info[i],music_name[i],music_singe[i]) 588 | so.progress_update.emit(i+1) 589 | self.ongoing = False 590 | if self.ongoing: 591 | QMessageBox.warning( 592 | self.ui, 593 | '警告', '下载中,请等待完成') 594 | return 595 | t = threading.Thread(target=dodownload,daemon=True) 596 | t.start() 597 | 598 | def music_list(self,type):#歌单 599 | self.ui.music_list_id_Edit.clear() 600 | method = self.ui.music_list_tableWidget.rowCount() 601 | for i in range(method): 602 | self.ui.music_list_tableWidget.removeRow(0) 603 | 604 | music_id = int(self.ui.music_list_Edit.text()) 605 | if type == 'music_paly': 606 | music_play_list = cloudmusic.getPlaylist(music_id) 607 | else: 608 | music_play_list = cloudmusic.getAlbum(music_id) 609 | 610 | self.ui.music_list_label.setText(f'搜索成功!共{len(music_play_list)}首') 611 | 612 | for i in range(len(music_play_list)): 613 | self.ui.music_list_tableWidget.insertRow(0) 614 | for i in range(len(music_play_list)): 615 | self.ui.music_list_tableWidget.setItem(i, 0, QTableWidgetItem(f"{music_play_list[i].name}")) 616 | self.ui.music_list_tableWidget.setItem(i, 1, QTableWidgetItem(f"{music_play_list[i].artist[0]}")) 617 | self.ui.music_list_tableWidget.setItem(i, 2, QTableWidgetItem(f"《{music_play_list[i].album}》")) 618 | self.ui.music_list_id_Edit.insertPlainText(f'{music_play_list[i].id}\n') 619 | 620 | 621 | def music_list_downlodn(self):#歌单音乐下载 622 | 623 | id_num = self.ui.music_list_id_Edit.toPlainText() 624 | id_info = id_num.split() 625 | 626 | d_num = int(self.ui.music_list_lineEdit.text()) 627 | 628 | name = self.ui.music_list_tableWidget.item(d_num-1,0).text() 629 | 630 | song_id = id_info[d_num - 1] 631 | 632 | 633 | song_url = f"http://music.163.com/song/media/outer/url?id={song_id}.mp3" 634 | Music_Funciton.music_download(song_url, name) 635 | 636 | self.ui.music_list_label.setText('下载成功!') 637 | time.sleep(1) 638 | self.ui.music_list_label.setText('') 639 | 640 | 641 | def open_file(self):#打开文件夹 642 | try: 643 | os.startfile(f'{os.getcwd()}/Music') 644 | except FileNotFoundError: 645 | self.ui.show_label.setText('你还没下载呢!') 646 | 647 | # ------------------------------ 歌单 ------------------------------ 648 | 649 | # ------------------------------ 排行榜 ------------------------------ 650 | 651 | def top_setProgress(self, value):#排行榜进度条 652 | self.ui.top_d_Bar.setValue(value) 653 | 654 | def all_top_download(self):#排行榜所有音乐下载 655 | music = self.ui.top_textEdit.toPlainText() 656 | music_info = music.split("\n") 657 | id_num = self.ui.top_id_Edit.toPlainText() 658 | id_info = id_num.split() 659 | music_info_remove = [] 660 | self.ui.top_d_Bar.setRange(0,len(id_info)) 661 | for i in range(len(music_info)): 662 | music_info_remove.append(re.findall(r'《(.*)》', music_info[i])) 663 | def top_dodownload(): 664 | self.ongoing = True 665 | for i in range(len(id_info)): 666 | self.all_download(id_info[i], music_info_remove[i][0],name= "") 667 | so.top_progress_update.emit(i + 1) 668 | self.ongoing = False 669 | if self.ongoing: 670 | QMessageBox.warning( 671 | self.ui, 672 | '警告', '下载中,请等待完成') 673 | return 674 | t = threading.Thread(target=top_dodownload, daemon=True) 675 | t.start() 676 | 677 | def top(self):#网易云排行榜 678 | text = self.ui.comboBox.currentText() 679 | if text == "云音乐飙升榜": 680 | self.music_top("https://music.163.com/discover/toplist?id=19723756") 681 | self.ui.top_show_label.setText(f'《{text}》') 682 | elif text == "云音乐新歌榜": 683 | self.music_top("https://music.163.com/discover/toplist?id=3779629") 684 | self.ui.top_show_label.setText(f'《{text}》') 685 | elif text == "网易原创歌曲榜": 686 | self.music_top("https://music.163.com/discover/toplist?id=2884035") 687 | self.ui.top_show_label.setText(f'《{text}》') 688 | elif text == "云音乐热歌榜": 689 | self.music_top("https://music.163.com/discover/toplist?id=3778678") 690 | self.ui.top_show_label.setText(f'《{text}》') 691 | elif text == "云音乐说唱榜": 692 | self.music_top("https://music.163.com/discover/toplist?id=991319590") 693 | self.ui.top_show_label.setText(f'《{text}》') 694 | elif text == "云音乐古典音乐榜": 695 | self.music_top("https://music.163.com/discover/toplist?id=71384707") 696 | self.ui.top_show_label.setText(f'《{text}》') 697 | elif text == "云音乐电音榜": 698 | self.music_top("https://music.163.com/discover/toplist?id=1978921795") 699 | self.ui.top_show_label.setText(f'《{text}》') 700 | elif text == "抖音排行榜": 701 | self.music_top("https://music.163.com/discover/toplist?id=2250011882") 702 | self.ui.top_show_label.setText(f'《{text}》') 703 | elif text == "新声榜": 704 | self.music_top("https://music.163.com/discover/toplist?id=2617766278") 705 | self.ui.top_show_label.setText(f'《{text}》') 706 | elif text == "云音乐ACG音乐榜": 707 | self.music_top("https://music.163.com/discover/toplist?id=71385702") 708 | self.ui.top_show_label.setText(f'《{text}》') 709 | elif text == "云音乐韩语榜": 710 | self.music_top("https://music.163.com/discover/toplist?id=745956260") 711 | self.ui.top_show_label.setText(f'《{text}》') 712 | elif text == "云音乐国电榜": 713 | self.music_top("https://music.163.com/discover/toplist?id=10520166") 714 | self.ui.top_show_label.setText(f'《{text}》') 715 | elif text == "英国Q杂志中文版周榜": 716 | self.music_top("https://music.163.com/discover/toplist?id=2023401535") 717 | self.ui.top_show_label.setText(f'《{text}》') 718 | elif text == "电竞音乐榜": 719 | self.music_top("https://music.163.com/discover/toplist?id=2006508653") 720 | self.ui.top_show_label.setText(f'《{text}》') 721 | elif text == "UK排行榜周榜": 722 | self.music_top("https://music.163.com/discover/toplist?id=180106") 723 | self.ui.top_show_label.setText(f'《{text}》') 724 | elif text == "美国Billboard周榜": 725 | self.music_top("https://music.163.com/discover/toplist?id=60198") 726 | self.ui.top_show_label.setText(f'《{text}》') 727 | elif text == "Beatport全球电子舞曲榜": 728 | self.music_top("https://music.163.com/discover/toplist?id=3812895") 729 | self.ui.top_show_label.setText(f'《{text}》') 730 | elif text == "KTV唛榜": 731 | self.music_top("https://music.163.com/discover/toplist?id=21845217") 732 | self.ui.top_show_label.setText(f'《{text}》') 733 | elif text == "iTunes榜": 734 | self.music_top("https://music.163.com/discover/toplist?id=11641012") 735 | self.ui.top_show_label.setText(f'《{text}》') 736 | elif text == "日本Oricon周榜": 737 | self.music_top("https://music.163.com/discover/toplist?id=60131") 738 | self.ui.top_show_label.setText(f'《{text}》') 739 | elif text == "Hit FM Top榜": 740 | self.music_top("https://music.163.com/discover/toplist?id=120001") 741 | self.ui.top_show_label.setText(f'《{text}》') 742 | elif text == "台湾Hito排行榜": 743 | self.music_top("https://music.163.com/discover/toplist?id=112463") 744 | self.ui.top_show_label.setText(f'《{text}》') 745 | elif text == "云音乐欧美热歌榜": 746 | self.music_top("https://music.163.com/discover/toplist?id=2809513713") 747 | self.ui.top_show_label.setText(f'《{text}》') 748 | elif text == "法国 NRJ Vos Hits 周榜": 749 | self.music_top("https://music.163.com/discover/toplist?id=27135204") 750 | self.ui.top_show_label.setText(f'《{text}》') 751 | elif text == "中国新乡村音乐排行榜": 752 | self.music_top("https://music.163.com/discover/toplist?id=3112516681") 753 | self.ui.top_show_label.setText(f'《{text}》') 754 | 755 | def music_top_dowload(self):#排行榜音乐下载 756 | try: 757 | num = int(self.ui.top_lineEdit.text()) 758 | 759 | id_num = self.ui.top_id_Edit.toPlainText() 760 | id_info = id_num.split() 761 | 762 | name = self.ui.top_textEdit.toPlainText() 763 | name_info = re.findall(r'《(.*)》', name) 764 | 765 | song_id = id_info[num - 1] 766 | song_name = name_info[num - 1] 767 | song_url = f"http://music.163.com/song/media/outer/url?id={song_id}.mp3" 768 | 769 | os.makedirs("Music", exist_ok=True) 770 | Music_Funciton.music_download(song_url,song_name) 771 | 772 | self.ui.top_show_label.setText('下载完成!') 773 | except: 774 | self.ui.top_show_label.setText("你还没有输入序号哦!") 775 | 776 | def music_top(self,url):#网易云音乐排行榜显示 777 | self.ui.top_textEdit.clear() 778 | self.ui.top_id_Edit.clear() 779 | 780 | try: 781 | headers = { 782 | 'authority': 'music.163.com', 783 | 'upgrade-insecure-requests': '1', 784 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', 785 | 'sec-fetch-dest': 'iframe', 786 | 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 787 | 'sec-fetch-site': 'same-origin', 788 | 'sec-fetch-mode': 'navigate', 789 | 'referer': 'https://music.163.com/', 790 | 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 791 | 'cookie': '_ga=GA1.2.1412864897.1553836840; _iuqxldmzr_=32; _ntes_nnid=b757609ed6b0fea92825e343fb9dfd21,1568216071410; _ntes_nuid=b757609ed6b0fea92825e343fb9dfd21; WM_TID=Pg3EkygrDw1EBAVUVRIttkwA^%^2Bn1s1Vww; P_INFO=183605463^@qq.com^|1581593068^|0^|nmtp^|00^&99^|null^&null^&null^#not_found^&null^#10^#0^|^&0^|^|183605463^@qq.com; mail_psc_fingerprint=d87488b559a786de4942ad31e080b75f; __root_domain_v=.163.com; _qddaz=QD.n0p8sb.xdhbv8.k75rl6g4; __oc_uuid=2f4eb790-6da9-11ea-9922-b14d70d91022; hb_MA-BFF5-63705950A31C_source=blog.csdn.net; UM_distinctid=171142b7a6d3ba-0fbb0bf9a78375-4313f6a-144000-171142b7a6e30b; vinfo_n_f_l_n3=6d6e1214849bb357.1.0.1585181322988.0.1585181330388; JSESSIONID-WYYY=jJutWzFVWmDWzmt2vzgf6t5RgAaMOhSIKddpHG9mTIhK8fWqZndgocpo87cjYkMxKIlF^%^2BPjV^%^2F2NPykYHKUnMHkHRuErCNerHW6DtnD8HB09idBvHCJznNJRniCQ9XEl^%^2F7^%^2Bovbwgy7ihPO3oJIhM8s861d^%^2FNvyRTMDjVtCy^%^5CasJPKrAty^%^3A1585279750488; WM_NI=SnWfgd^%^2F5h0XFsqXxWEMl0vNVE8ZjZCzrxK^%^2F9A85boR^%^2BpV^%^2BA9J27jZCEbCqViaXw6If1Ecm7okWiL^%^2BKU2G8frpRB^%^2BRRDpz8RNJnagZdXn6KNVBHwK2tnvUL^%^2BxWQ^%^2BhGf2aeWE^%^3D; WM_NIKE=9ca17ae2e6ffcda170e2e6ee84b64f86878d87f04fe9bc8fa3c84f878f9eafb65ab59498cccf48f7929fb5e72af0fea7c3b92a91b29987e670edeba8d1db4eb1af9899d64f8fb40097cd5e87e8968bd949baaeb8acae3383e8fb83ee5ae9b09accc4338aeef98bd94987be8d92d563a388b9d7cc6ef39bad8eb665a989a7adaa4197ee89d9e57ab48e8eccd15a88b0b6d9d1468ab2af88d9709cb2faaccd5e8298b9acb180aeaa9badaa74958fe589c66ef2bfabb8c837e2a3; playerid=67583529', 792 | } 793 | 794 | res = requests.get(url, headers=headers) 795 | res.encoding = res.apparent_encoding 796 | res.raise_for_status() 797 | except: 798 | self.ui.top_show_label.setText('网页提取出现问题!') 799 | text = res.text 800 | try: 801 | all = re.findall(r'', text, re.I) 802 | str = all[0] 803 | strlist = re.findall(r'">(.*?)', str) 804 | idlist = re.findall(r'id=(\d+)', str) 805 | for i in range(len(strlist)): 806 | self.ui.top_textEdit.insertPlainText(f"{i+1} 《{strlist[i]}》\n") 807 | self.ui.top_id_Edit.insertPlainText(f"{idlist[i]}\n") 808 | except: 809 | self.ui.top_show_label.setText('提取文章出错!') 810 | 811 | # ------------------------------ 排行榜 ------------------------------ 812 | 813 | # ------------------------------ 歌词 ------------------------------ 814 | 815 | def lyrics_T(self):#歌词显示 816 | 817 | headers = { 818 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' 819 | } 820 | self.ui.lyrics_textEdit.clear() 821 | 822 | type_music = self.ui.type_Edit.toPlainText() 823 | if type_music == 'netease': 824 | id_num = self.ui.id_Edit.toPlainText() 825 | id_info = id_num.split() 826 | d_num = int(self.ui.lyrics_Edit.text()) 827 | 828 | name = self.ui.download_tableWidget.item(d_num - 1, 0).text() 829 | 830 | song_id = id_info[d_num - 1] 831 | 832 | lrc_url = f'http://music.163.com/api/song/lyric?id={song_id}&lv=1&kv=1&tv=-1' 833 | lyric = requests.get(lrc_url,headers = headers) 834 | json_obj = lyric.text # 网页源码 835 | j = json.loads(json_obj) 836 | lrc = j['lrc']['lyric'] 837 | self.ui.lyrics_textEdit.insertPlainText(lrc) 838 | 839 | self.ui.lyrics_show_label.setText(f"《{name}》") 840 | elif type_music == 'tencent' or type_music == 'kugou': 841 | self.ui.lyrics_show_label.setText("只支持网易云音乐哦!") 842 | else: 843 | self.ui.lyrics_show_label.setText("没有找到音乐信息,请先搜索吧!") 844 | 845 | def lyrics(self):#歌词显示 时间版 846 | headers = { 847 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' 848 | } 849 | self.ui.lyrics_textEdit.clear() 850 | 851 | 852 | type_music = self.ui.type_Edit.toPlainText() 853 | if type_music == 'netease': 854 | id_num = self.ui.id_Edit.toPlainText() 855 | id_info = id_num.split() 856 | 857 | d_num = int(self.ui.lyrics_Edit.text()) 858 | name = self.ui.download_tableWidget.item(d_num - 1, 0).text() 859 | song_id = id_info[d_num - 1] 860 | 861 | lrc_url = f'http://music.163.com/api/song/lyric?id={song_id}&lv=1&kv=1&tv=-1' 862 | lyric = requests.get(lrc_url,headers = headers) 863 | json_obj = lyric.text # 网页源码 864 | j = json.loads(json_obj) 865 | lrc = j['lrc']['lyric'] 866 | pat = re.compile(r'\[.*\]') 867 | lrc = re.sub(pat, "", lrc) 868 | lrc = lrc.strip() 869 | self.ui.lyrics_textEdit.insertPlainText(lrc) 870 | 871 | self.ui.lyrics_show_label.setText(f"《{name}》") 872 | elif type_music == 'tencent' or type_music == 'kugou': 873 | self.ui.lyrics_show_label.setText("只支持网易云音乐哦!") 874 | else: 875 | self.ui.lyrics_show_label.setText("没有找到音乐信息,请先搜索吧!") 876 | 877 | # ------------------------------ 歌词 ------------------------------ 878 | 879 | # ------------------------------ 评论 ------------------------------ 880 | 881 | def in_excel(self):#把评论写入excel 882 | headers = { 883 | 'Host': 'music.163.com', 884 | 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' 885 | } 886 | """ 887 | 获取评论信息 888 | """ 889 | id = self.ui.comment_id_Edit.toPlainText() 890 | name = self.ui.comment_name_textEdit.toPlainText() 891 | list_info_ct = [] 892 | 893 | music = cloudmusic.getMusic(id) 894 | coms = music.getHotComments() 895 | for com in coms: 896 | timeStamp = (com['time']) / 1000 897 | dateArray = datetime.datetime.fromtimestamp(timeStamp) 898 | otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S") 899 | info = [] 900 | info.append(com["nickName"]) 901 | info.append(com["likeCount"]) 902 | info.append(otherStyleTime) 903 | info.append(com["content"].strip().replace('\n', '').replace(',', ',')) 904 | list_info_ct.append(info) 905 | 906 | try: 907 | for page in range(0,1020,20): 908 | url = f'http://music.163.com/api/v1/resource/comments/R_SO_4_{id}?limit=20&offset=' + str(page) 909 | response = requests.get(url=url, headers=headers) 910 | # 将字符串转为json格式 911 | result = json.loads(response.text) 912 | items = result['comments'] 913 | for item in items: 914 | info = [] 915 | # 用户名 916 | user_name = item['user']['nickname'].replace(',', ',') 917 | # 评论内容 918 | comment = item['content'].strip().replace('\n', '').replace(',', ',') 919 | # 评论点赞数 920 | praise = str(item['likedCount']) 921 | # 评论时间 922 | date = time.localtime(int(str(item['time'])[:10])) 923 | date = time.strftime("%Y-%m-%d %H:%M:%S", date) 924 | info.append(user_name) 925 | info.append(praise) 926 | info.append(date) 927 | info.append(comment) 928 | list_info_ct.append(info) 929 | book = xlwt.Workbook(encoding='utf-8', style_compression=0) # 创建workbook对象 930 | sheet = book.add_sheet("网易云评论", cell_overwrite_ok=True) # 创建工作表 931 | col = ("用户昵称","点赞数","发布时间","评论") 932 | for i in range(4): 933 | sheet.write(0, i, col[i]) # 列名 934 | for i in range(len(list_info_ct)): 935 | data = list_info_ct[i] 936 | for j in range(4): 937 | sheet.write(i + 1, j, data[j]) # 数据 938 | os.makedirs("Excel", exist_ok=True) 939 | book.save(f"{os.getcwd()}\Excel\\{name}.xls") 940 | 941 | self.ui.comment_show_label.setText("生成完毕!") 942 | except KeyError: 943 | self.ui.comment_show_label.setText("没有找到音乐信息哦,请先搜索吧!") 944 | 945 | def open_excel(self):#打开excel文件 946 | try: 947 | name = self.ui.comment_name_textEdit.toPlainText() 948 | os.startfile(f'{os.getcwd()}\Excel\\{name}.xls') 949 | except FileNotFoundError: 950 | self.ui.comment_show_label.setText("没有找到Excel文件哦,请先生成吧!") 951 | 952 | def singer_show(self,name,id):#评论部分信息显示 953 | self.ui.comment_id_Edit.clear() 954 | self.ui.comment_name_textEdit.clear() 955 | self.ui.comment_show_label.setText(f'《{name}》') 956 | self.ui.comment_id_Edit.insertPlainText(f'{id}') 957 | self.ui.comment_name_textEdit.insertPlainText(f'{name}') 958 | 959 | 960 | def look_comments(self):#查看网易云歌曲评论 961 | self.ui.comment_textEdit.clear() 962 | self.ui.comment_id_Edit.clear() 963 | self.ui.comment_name_textEdit.clear() 964 | 965 | type_music = self.ui.type_Edit.toPlainText() 966 | if type_music == 'netease': 967 | id_num = self.ui.id_Edit.toPlainText() 968 | id_info = id_num.split() 969 | d_num = int(self.ui.comment_Edit.text()) 970 | 971 | name = self.ui.download_tableWidget.item(d_num - 1, 0).text() 972 | 973 | song_id = id_info[d_num - 1] 974 | self.output_comments(song_id) 975 | self.singer_show(name,song_id) 976 | elif type_music == 'tencent' or type_music == 'kugou': 977 | self.ui.comment_show_label.setText("只支持网易云音乐哦!") 978 | else : 979 | self.ui.comment_show_label.setText("请先搜索音乐哦!") 980 | def output_comments(self,id):#显示爬取的评论 981 | 982 | music = cloudmusic.getMusic(id) 983 | 984 | coms = music.getHotComments() 985 | self.ui.comment_textEdit.insertPlainText("---------------热评---------------\n") 986 | for com in coms: 987 | timeStamp = (com['time']) / 1000 988 | dateArray = datetime.datetime.fromtimestamp(timeStamp) 989 | otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S") 990 | self.ui.comment_textEdit.insertPlainText( 991 | f'评论:[ {com["content"].strip()} ]\n用户昵称:({com["nickName"]})\n点赞数:{com["likeCount"]}\n时间:{otherStyleTime}\n\n') 992 | 993 | 994 | try: 995 | for i in range(0, 400, 20): 996 | self.ui.comment_textEdit.insertPlainText('---------------第 ' + str(i // 20 + 1) + ' 页---------------\n\n') 997 | list_info = self.get_comments(i,id) 998 | for j in range(20): 999 | self.ui.comment_textEdit.insertPlainText( 1000 | f'评论:[ {list_info[j][1]} ]\n用户昵称:({list_info[j][0]})\n点赞数:{list_info[j][2]}\n时间:{list_info[j][3]}\n\n') 1001 | except IndexError: 1002 | self.ui.comment_textEdit.insertPlainText("---------------全部评论已经爬取完毕!---------------") 1003 | 1004 | def get_comments(self, page, id): 1005 | headers = { 1006 | 'Host': 'music.163.com', 1007 | 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' 1008 | } 1009 | """ 1010 | 获取评论信息 1011 | """ 1012 | url = f'http://music.163.com/api/v1/resource/comments/R_SO_4_{id}?limit=20&offset=' + str(page) 1013 | response = requests.get(url=url, headers=headers) 1014 | # 将字符串转为json格式 1015 | result = json.loads(response.text) 1016 | type_music = self.ui.type_Edit.toPlainText() 1017 | if type_music == 'netease': 1018 | items = result['comments'] 1019 | list_info_ct = [] 1020 | for item in items: 1021 | info = [] 1022 | # 用户名 1023 | user_name = item['user']['nickname'].replace(',', ',') 1024 | # 评论内容 1025 | comment = item['content'].strip().replace('\n', '').replace(',', ',') 1026 | # 评论点赞数 1027 | praise = str(item['likedCount']) 1028 | # 评论时间 1029 | date = time.localtime(int(str(item['time'])[:10])) 1030 | date = time.strftime("%Y-%m-%d %H:%M:%S", date) 1031 | info.append(user_name) 1032 | info.append(comment) 1033 | info.append(praise) 1034 | info.append(date) 1035 | list_info_ct.append(info) 1036 | return list_info_ct 1037 | elif type_music == 'tencent' or type_music == 'kugou': 1038 | self.ui.lyrics_show_label.setText("只支持网易云音乐哦!") 1039 | else: 1040 | self.ui.lyrics_show_label.setText("没有找到音乐信息,请先搜索吧!") 1041 | 1042 | # ------------------------------ 评论 ------------------------------ 1043 | 1044 | # ------------------------------音乐下载------------------------------ 1045 | 1046 | def platform_netease(self): 1047 | name = self.ui.input_Edit.text() 1048 | if name == '': 1049 | self.ui.show_label.setText('请先搜索音乐哦!') 1050 | else: 1051 | self.show_music('netease') 1052 | 1053 | def platform_tencent(self): 1054 | name = self.ui.input_Edit.text() 1055 | if name == '': 1056 | self.ui.show_label.setText('请先搜索音乐哦!') 1057 | else: 1058 | self.show_music('tencent') 1059 | 1060 | def platform_kugou(self): 1061 | name = self.ui.input_Edit.text() 1062 | if name == '': 1063 | self.ui.show_label.setText('请先搜索音乐哦!') 1064 | else: 1065 | self.show_music('kugou') 1066 | 1067 | 1068 | def show_music(self,source):#显示音乐 1069 | self.ui.type_Edit.clear() 1070 | self.ui.type_Edit.insertPlainText(source) 1071 | self.ui.id_Edit.clear() 1072 | self.ui.show_label.setText('搜索完成!') 1073 | 1074 | 1075 | name = self.ui.input_Edit.text() 1076 | 1077 | 1078 | url = 'https://api.zhuolin.wang/api.php?callback=jQuery111303334237052043867_1589428664685&types=playlist&id=3778678&_=1589428664686' 1079 | data = { 1080 | 'types': 'search', 1081 | 'count': '20', 1082 | 'source': f'{source}', 1083 | 'pages': '1', 1084 | 'name': name 1085 | } 1086 | 1087 | headers = { 1088 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' 1089 | } 1090 | 1091 | 1092 | list_info = Music_Funciton.musicSpider(url, data, headers) 1093 | 1094 | 1095 | method = self.ui.download_tableWidget.rowCount() 1096 | for i in range(method): 1097 | self.ui.download_tableWidget.removeRow(0) 1098 | 1099 | for i in range(len(list_info) ): 1100 | self.ui.download_tableWidget.insertRow(0) 1101 | for i in range(len(list_info)): 1102 | self.ui.download_tableWidget.setItem(i, 0, QTableWidgetItem(f"{list_info[i][1]}")) 1103 | self.ui.download_tableWidget.setItem(i, 1, QTableWidgetItem(f"{list_info[i][2]}")) 1104 | self.ui.download_tableWidget.setItem(i, 2, QTableWidgetItem(f"《{list_info[i][3]}》")) 1105 | self.ui.id_Edit.insertPlainText(f'{list_info[i][0]}\n') 1106 | 1107 | 1108 | def download_type_thread(self): 1109 | download_type_ing = threading.Thread(target=self.download_type) 1110 | download_type_ing.start() 1111 | 1112 | def download_type(self): 1113 | type_music = self.ui.type_Edit.toPlainText() 1114 | if type_music == 'netease': 1115 | self.download_music_netease() 1116 | elif type_music == 'tencent': 1117 | self.download_music('tencent') 1118 | elif type_music == 'kugou': 1119 | self.download_music('kugou') 1120 | 1121 | def download_music_netease(self):#网易云音乐下载 1122 | 1123 | 1124 | id_num = self.ui.id_Edit.toPlainText() 1125 | id_info = id_num.split() 1126 | 1127 | d_num = int(self.ui.input_Edit_2.text()) 1128 | 1129 | name = self.ui.download_tableWidget.item(d_num-1,0).text() 1130 | sing_name = self.ui.download_tableWidget.item(d_num-1,1).text() 1131 | 1132 | song_id = id_info[d_num - 1] 1133 | song_url = f"http://music.163.com/song/media/outer/url?id={song_id}.mp3" 1134 | 1135 | os.makedirs("Music",exist_ok=True) 1136 | Music_Funciton.music_download(song_url,name,sing_name) 1137 | 1138 | self.ui.show_label.setText('下载成功!') 1139 | time.sleep(1) 1140 | self.ui.show_label.setText('') 1141 | 1142 | 1143 | def download_music(self,source):#音乐下载 1144 | 1145 | id_num = self.ui.id_Edit.toPlainText() 1146 | id_info = id_num.split() 1147 | 1148 | d_num = int(self.ui.input_Edit_2.text()) 1149 | 1150 | name = self.ui.download_tableWidget.item(d_num-1,0).text() 1151 | sing_name = self.ui.download_tableWidget.item(d_num - 1, 1).text() 1152 | 1153 | song_id = id_info[d_num - 1] 1154 | 1155 | url = "https://api.zhuolin.wang/api.php?callback=jQuery111305940605786929793_1588688866522&types=playlist&id=112504&_=1588688866523" 1156 | data = { 1157 | 'types': 'url', 1158 | 'id': f'{song_id}', 1159 | 'source': f'{source}' 1160 | } 1161 | headers = { 1162 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' 1163 | } 1164 | 1165 | try: 1166 | rsp = requests.post(url, data=data, headers=headers) 1167 | if source == 'tencent': 1168 | link = rsp.text[rsp.text.index('http'):rsp.text.index('",')] 1169 | link = link.replace('\\', '') 1170 | elif source == 'kugou': 1171 | link = rsp.text[rsp.text.index('http'):rsp.text.index('mp3')] + 'mp3' 1172 | link = link.replace('\\', '') 1173 | except: 1174 | self.ui.show_label.setText('音乐文件丢失!') 1175 | 1176 | 1177 | try: 1178 | os.makedirs("Music", exist_ok=True) 1179 | Music_Funciton.music_download(link, name, sing_name) 1180 | self.ui.show_label.setText('下载完成!') 1181 | except Exception: 1182 | self.ui.show_label.setText('这首难搞哦!') 1183 | 1184 | if __name__ == '__main__': 1185 | app = QApplication(sys.argv) 1186 | app.setWindowIcon(QIcon(f'{os.getcwd()}/Image/song.png')) 1187 | music_dowload = Music_Dowload() 1188 | music_dowload.ui.show() 1189 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /Music_Funciton.py: -------------------------------------------------------------------------------- 1 | import json 2 | import requests 3 | import random 4 | from pyquery import PyQuery as pq 5 | import re 6 | 7 | # 发送请求时的头文件 8 | heades = [ 9 | {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0"}, 10 | {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}, 11 | {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"}, 12 | {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"} 13 | ] 14 | 15 | def music_download(song_url,name,sing_name=None): 16 | response = requests.get(song_url, headers=heades[random.randint(0, len(heades)-1)]) 17 | if sing_name == None: 18 | with open("Music" + '/' + f"{name}.mp3", 'wb') as f: 19 | f.write(response.content) 20 | else: 21 | with open("Music" + '/' + f"{name}-{sing_name}.mp3", 'wb') as f: 22 | f.write(response.content) 23 | 24 | 25 | def music_home_top(url): # 网易云音乐排行榜首页显示 26 | 27 | try: 28 | headers = { 29 | 'authority': 'music.163.com', 30 | 'upgrade-insecure-requests': '1', 31 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', 32 | 'sec-fetch-dest': 'iframe', 33 | 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 34 | 'sec-fetch-site': 'same-origin', 35 | 'sec-fetch-mode': 'navigate', 36 | 'referer': 'https://music.163.com/', 37 | 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 38 | 'cookie': '_ga=GA1.2.1412864897.1553836840; _iuqxldmzr_=32; _ntes_nnid=b757609ed6b0fea92825e343fb9dfd21,1568216071410; _ntes_nuid=b757609ed6b0fea92825e343fb9dfd21; WM_TID=Pg3EkygrDw1EBAVUVRIttkwA^%^2Bn1s1Vww; P_INFO=183605463^@qq.com^|1581593068^|0^|nmtp^|00^&99^|null^&null^&null^#not_found^&null^#10^#0^|^&0^|^|183605463^@qq.com; mail_psc_fingerprint=d87488b559a786de4942ad31e080b75f; __root_domain_v=.163.com; _qddaz=QD.n0p8sb.xdhbv8.k75rl6g4; __oc_uuid=2f4eb790-6da9-11ea-9922-b14d70d91022; hb_MA-BFF5-63705950A31C_source=blog.csdn.net; UM_distinctid=171142b7a6d3ba-0fbb0bf9a78375-4313f6a-144000-171142b7a6e30b; vinfo_n_f_l_n3=6d6e1214849bb357.1.0.1585181322988.0.1585181330388; JSESSIONID-WYYY=jJutWzFVWmDWzmt2vzgf6t5RgAaMOhSIKddpHG9mTIhK8fWqZndgocpo87cjYkMxKIlF^%^2BPjV^%^2F2NPykYHKUnMHkHRuErCNerHW6DtnD8HB09idBvHCJznNJRniCQ9XEl^%^2F7^%^2Bovbwgy7ihPO3oJIhM8s861d^%^2FNvyRTMDjVtCy^%^5CasJPKrAty^%^3A1585279750488; WM_NI=SnWfgd^%^2F5h0XFsqXxWEMl0vNVE8ZjZCzrxK^%^2F9A85boR^%^2BpV^%^2BA9J27jZCEbCqViaXw6If1Ecm7okWiL^%^2BKU2G8frpRB^%^2BRRDpz8RNJnagZdXn6KNVBHwK2tnvUL^%^2BxWQ^%^2BhGf2aeWE^%^3D; WM_NIKE=9ca17ae2e6ffcda170e2e6ee84b64f86878d87f04fe9bc8fa3c84f878f9eafb65ab59498cccf48f7929fb5e72af0fea7c3b92a91b29987e670edeba8d1db4eb1af9899d64f8fb40097cd5e87e8968bd949baaeb8acae3383e8fb83ee5ae9b09accc4338aeef98bd94987be8d92d563a388b9d7cc6ef39bad8eb665a989a7adaa4197ee89d9e57ab48e8eccd15a88b0b6d9d1468ab2af88d9709cb2faaccd5e8298b9acb180aeaa9badaa74958fe589c66ef2bfabb8c837e2a3; playerid=67583529', 39 | } 40 | 41 | res = requests.get(url, headers=headers) 42 | res.encoding = res.apparent_encoding 43 | res.raise_for_status() 44 | except: 45 | pass 46 | 47 | text = res.text 48 | all = re.findall(r'', text, re.I) 49 | str = all[0] 50 | strlist = re.findall(r'">(.*?)', str) 51 | idlist = re.findall(r'id=(\d+)', str) 52 | 53 | info = [] 54 | info.append(strlist) 55 | info.append(idlist) 56 | return info 57 | 58 | def home_play_music(song_id,source):#腾讯酷狗音乐播放地址 59 | 60 | url = "https://api.zhuolin.wang/api.php?callback=jQuery111305940605786929793_1588688866522&types=playlist&id=112504&_=1588688866523" 61 | data = { 62 | 'types': 'url', 63 | 'id': f'{song_id}', 64 | 'source': f'{source}' 65 | } 66 | headers = { 67 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' 68 | } 69 | 70 | rsp = requests.post(url, data=data, headers=headers) 71 | if source == 'tencent': 72 | link = rsp.text[rsp.text.index('http'):rsp.text.index('",')] 73 | link = link.replace('\\', '') 74 | elif source == 'kugou': 75 | link = rsp.text[rsp.text.index('http'):rsp.text.index('mp3')] + 'mp3' 76 | link = link.replace('\\', '') 77 | return link 78 | 79 | def home_show_music(type,name):#音乐首页显示 80 | url = 'https://api.zhuolin.wang/api.php?callback=jQuery111303334237052043867_1589428664685&types=playlist&id=3778678&_=1589428664686' 81 | data = { 82 | 'types': 'search', 83 | 'count': '20', 84 | 'source': type, 85 | 'pages': '1', 86 | 'name': name 87 | } 88 | 89 | headers = { 90 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' 91 | } 92 | 93 | list_info = musicSpider(url, data, headers) 94 | return list_info 95 | 96 | def musicSpider(url, data, headers):#音乐爬取 97 | 98 | rsp = requests.post(url, data=data, headers=headers) 99 | content = rsp.text 100 | info = content[content.index('('):content.index('])')] + '])' 101 | 102 | info_list = eval(info[1:-1]) 103 | 104 | music_info_list = [] 105 | for i in info_list: 106 | id = i.get('id') 107 | name = i.get('name') 108 | artist = i.get('artist') 109 | album = i.get('album') 110 | info_info = [] 111 | info_info.append(id) 112 | info_info.append(name.replace(' ', '')) 113 | info_info.append(artist[0]) 114 | info_info.append(album.replace(' ', '')) 115 | music_info_list.append(info_info) 116 | return music_info_list 117 | 118 | 119 | 120 | # 获取首页,反回图片、名字、id号 121 | def wyy_first_page(type): 122 | # 先对首页进行简单处理 123 | url = f"https://music.163.com/discover/playlist/?cat={type}" 124 | response = requests.get(url, headers=heades[random.randint(0, len(heades)-1)]) 125 | doc = pq(response.text) 126 | playlist = doc('li .u-cover.u-cover-1') # 筛选出首页推荐的歌单 127 | playlist.find('.icon-play').remove() # 移除多余的信息,便于后续提取信息 128 | playlist.find('div:contains(getPlayCount)').siblings().remove() 129 | playlist.find('div:contains(getPlayCount)').remove() 130 | 131 | # 获取首页推荐的歌单图片的url 132 | img = playlist.find('img').items() 133 | img_url_l = [i.attr('src') for i in img] # 获取到所有歌单封面的url 134 | 135 | # 获取推荐歌单的名字 136 | name_list_l = [i.attr.title for i in playlist.find('a').items()] 137 | 138 | # 获取歌单的键值id 139 | id_list_l = [i.attr.href for i in playlist.find('a').items()] 140 | return [img_url_l, name_list_l, id_list_l] 141 | 142 | 143 | def askURL(url): 144 | haed = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"} 145 | request = requests.get(url,headers=haed) 146 | 147 | try: 148 | response = request.text 149 | html_dict = json.loads(response) 150 | 151 | except : 152 | pass 153 | return html_dict 154 | 155 | # 通过歌单playlist_id获取歌单信息 156 | def playlist_info(playlist_id): 157 | 158 | #playlist_id = int(re.sub(r'\D', "",playlist_id)) 159 | # html = askURL(f"http://api.no0a.cn/api/cloudmusic/playlist/{playlist_id}") 160 | html = askURL(f"http://api.sunyj.xyz?site=netease&playlist={playlist_id}") 161 | # print(html) 162 | song_name_l = [] 163 | song_id_l = [] 164 | for i in html: 165 | song_name_l.append(i['name']) 166 | song_id_l.append(i['id']) 167 | return [song_name_l, song_id_l] 168 | 169 | 170 | # 通过指定的歌曲song_id获取歌曲的音频二进制文件 171 | def song_url(song_id): 172 | # 通过urls获取歌曲下载链接 173 | urls = f"http://music.163.com/song/media/outer/url?id={song_id}.mp3" 174 | return urls 175 | 176 | def test(id): 177 | html = askURL(f"https://music.163.com/api/playlist/detail?id={id}") 178 | 179 | info_dict = html['result']['tracks'] 180 | print(info_dict) 181 | 182 | if __name__ == '__main__': 183 | pass 184 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Music_Download 2 | 由于上传Github时,不支持上传中文命名的文件 3 | 本项目所需要的图片文件请到下面的网址下载,给您造成了不便,十分抱歉 4 | 5 | https://wwx.lanzoux.com/b01boa0eb 6 | 7 | 软件使用说明: 8 | https://syjun.vip/archives/start.html 9 | 10 | 个人博客:https://www.syjun.vip 11 | 12 | 13 | # 写在前面 # 14 | 15 | 1. 本软件所有功能均由Python实现 16 | 2. 本软件由本人原创,所用的图标来自iconfont.cn 17 | 3. 本软件仅供大家参考与学习,请支持正版音乐! 18 | 19 | 软件下载:https://wwx.lanzoux.com/b01boa0eb 20 | 源码分享:https://github.com/Java-S12138/Music_Dowload 21 | 吾爱破解论坛:https://www.52pojie.cn/thread-1181916-1-1.html 22 | 23 | ## 支持功能 ## 24 | 25 | 1. 网易云,QQ音乐,酷狗音乐在线播放和下载 26 | 2. 首页显示支持网易云16种歌单 27 | 3. 首页支持查看网易云26种排行榜中的所有歌曲 28 | 4. 支持通过网易云歌单、专辑ID,获取当中的音乐;支持一键下载当中的所有音乐 29 | 5. 支持查看网易云每一首音乐的评论,支持将评论写入Excel 30 | 6. 支持查看网易云每一首音乐的歌词,可显示带时间段的和不带时间段的歌词 31 | 32 | 33 | ---------- 34 | ### 如何使用 ### 35 | 36 | #### 1:网易云,QQ音乐,酷狗音乐在线播放和下载 #### 37 | ![图1][1] 38 | 看到那个熟悉的输入框了吗?在里面输入你想搜索的音乐 39 | 点击旁边的按钮,你就可以获取到相同关键字的20首音乐(音乐平台按钮分别是:网易云音乐、QQ音乐、酷狗音乐) 40 | 41 | >(1)如果你想播放,那么请双击输入框下面的音乐标题,你热爱的音乐就开始播放啦 42 | >(2)如果你想下载,那么请点击下面的那朵云朵,你想要的音乐就跑到你的电脑磁盘上来啦 43 | >(3)如果你想拖动进度条,调整播放进度,当然也是可以的 44 | >(4)如果你想改变循环播放的方式,当然也是可以的(循环播放,单曲循环,随机播放) 45 | >(5)如果你想调整音量的大小,当然也是可以的,还会有细节的动画哦,期待你去发现 46 | 47 | #### 2:网易云歌单显示以及播放其中的音乐 #### 48 | ![图2][2] 49 | 相信你的目光,早已注意到了【网易云歌单】的菜单栏 50 | 点击它你就可以选择多种类型的音乐歌单,就像在网易云官网一样 51 | ![图3][3] 52 | 点击图标下方的标题,歌单里面的音乐就会跑到输入框下面的框框里面 ::aru:proud:: 53 | 54 | #### 3:网易云排行榜显示以及播放其中的音乐 #### 55 | ![图4][4] 56 | 和上面的功能操作方式一样,我相信你可以举一反三 57 | 58 | #### 4:下载正在播放的音乐 #### 59 | 如果你想下载你正在播放的音乐,那么你可以点击下面的那朵熟悉的下载云 60 | 稍微等待一小会,软件上出现蓝色字体的 【下载成功!】就说明这首音乐已经跑到你的电脑磁盘啦 61 | 点击下载云旁边的文件夹,就可以打开音乐存放的文件夹 62 | ![图5][5] 63 | 64 | #### 5:音乐下载(无试听) #### 65 | 在搜索框里面输入你想查找的音乐,点击下面对应的音乐平台按钮 66 | 咻~~~ 速度很快,旁边的表格,显示了相关的音乐 67 | 找到对应的音乐序号,在下面的输入框里面,输入序号 68 | 点击那朵下载云,音乐就跑到你的电脑里面啦,点击旁边的文件夹,可以查看下载到的音乐 69 | 音频文件是MP3,比特率:128的kbps 音质还不错,暂时不支持无损音乐 70 | ![图6][6] 71 | ![图7][7] 72 | 73 | #### 6:通过网易云的歌单ID,获取歌单里面的所有音乐,进行下载和批量下载的操作 #### 74 | >那么,我们如何知道歌单的ID呢? 75 | >不慌,我们先来到网易云音乐的官网看看 76 | ![图8][8] 77 | >我们将地址栏里面的ID复制下来,输入到软件里面 78 | ![图9][9] 79 | 接着点击输入框旁边的第一个按钮(第一个是歌单按钮,第二个是专辑按钮),歌单里面的音乐就展示到了你的眼前 80 | 下载某首音乐的操作方法,参照上面的操作 81 | 如果你想下载,歌单里面所有的音乐 82 | 那么就点击进度条旁边的按钮(没错就是那个黄色的圆圈圈) 83 | 进度条会显示当前的进度,显示100%,那么恭喜你,歌单里面的音乐都下载完啦 84 | 网易云里面的专辑也是有独一无二的ID,如何操作专辑功能,我相信你可以举一反三 85 | 86 | #### 7:查看网易云的26种排行榜,进行下载和批量下载的操作 #### 87 | 首先,我们到网易云音乐的网站看一看 88 | ![图10][10] 89 | 再到软件里面,选择需要查看的排行榜 90 | ![图11][11] 91 | 是不是,Amazing呢 92 | 下载和批量下载,我相信你也可以举一反三 93 | 94 | #### 8:查看网易云里面的评论,支持自动化写入excel #### 95 | 首先,我们到第一个音乐下载的界面,搜索你想查看评论的音乐 96 | ![图12][12] 97 | 获取到序号后,再评论界面输入框里面,输入对应的序号,点击下方的评论按钮 98 | 15条热评和400条最新评论就展示在了你的眼前 99 | ![图13][13] 100 | 如果你觉得不够看,或者这样看不方便的话 101 | 你可以点击下方的按钮,生成excel(第二个按钮) 102 | 会生成15条热评和1000条最新评论的excel文件 103 | 点击打开excel,即可查看(当然这首音乐,要有那么多评论) 104 | ![图14][14] 105 | 106 | #### 9:查看歌词,支持不带时间段和带时间段的歌词显示 #### 107 | 使用方法和上面的类似,也是先获取你想查看音乐的序号,再点击对应的按钮,我相信你可以举一反三 ::aru:pouting:: 108 | 点击蓝色的按钮,即可显示不带时间段的歌词 109 | ![图15][15] 110 | 红色按钮,反之 111 | ![图16][16] 112 | 113 | #### 10:更换顶部图片 #### 114 | 我知道,大家看一张图片容易审美疲劳 115 | 所有就增加换肤的功能 116 | 给大家准备了五张图片,欢迎大家去体验 117 | ![图17][17] 118 | 看到这个绿色的叶子图标了吗,点它就可以换肤啦 119 | 120 | ## 写在后面 ## 121 | [Music_Download]是我疫情期间写用Python独自完成的第一款软件...... 122 | 123 | [1]: https://attach.52pojie.cn/forum/202005/30/195106ajvuqkp6qeqeltpe.jpg 124 | [2]: https://attach.52pojie.cn/forum/202005/30/195122iblh2kez65f56k9d.png 125 | [3]: https://attach.52pojie.cn/forum/202005/30/195201ezzfzz0a74fznaly.png 126 | [4]: https://attach.52pojie.cn/forum/202005/30/195213ds8r1mm2192s89e8.png 127 | [5]: https://attach.52pojie.cn/forum/202005/30/195233utan2zagogvo3k34.png 128 | [6]: https://attach.52pojie.cn/forum/202005/19/152027bem2jmvm7vm3e0qm.png 129 | [7]: https://attach.52pojie.cn/forum/202005/19/152024c77n4hfnm78mgnps.jpg 130 | [8]: https://attach.52pojie.cn/forum/202005/19/152103udpp2pcdno52dr2s.png 131 | [9]: https://attach.52pojie.cn/forum/202005/19/152225zodbgbhhpimbhofi.png 132 | [10]: https://attach.52pojie.cn/forum/202005/19/152358uwb6cbyz997279by.png 133 | [11]: https://attach.52pojie.cn/forum/202005/19/152420fw3z03l6p6txc3pu.png 134 | [12]: https://attach.52pojie.cn/forum/202005/19/152607um0pjvswwwfp8v0v.png 135 | [13]: https://attach.52pojie.cn/forum/202005/19/152604j7zkx31v11u8n14x.png 136 | [14]: https://attach.52pojie.cn/forum/202005/19/152609hfj56fkgooo9ztfo.png 137 | [15]: https://attach.52pojie.cn/forum/202005/19/152713cgbwz55wtal5g034.png 138 | [16]: https://attach.52pojie.cn/forum/202005/19/152711mr7mp8ddf5mzx5r0.png 139 | [17]: https://attach.52pojie.cn/forum/202005/30/195248bivmpj7beeap5gsp.png 140 | -------------------------------------------------------------------------------- /dowload.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Music_Download 4 | 5 | 6 | true 7 | 8 | 9 | 10 | 0 11 | 0 12 | 1250 13 | 800 14 | 15 | 16 | 17 | 18 | 1250 19 | 800 20 | 21 | 22 | 23 | 24 | 1250 25 | 800 26 | 27 | 28 | 29 | false 30 | 31 | 32 | Music_Download BY:Java_S 33 | 34 | 35 | false 36 | 37 | 38 | 39 | 40 | -9 41 | 200 42 | 1261 43 | 602 44 | 45 | 46 | 47 | 48 | 思源黑体 CN Bold 49 | 12 50 | 75 51 | false 52 | true 53 | false 54 | false 55 | 56 | 57 | 58 | 0 59 | 60 | 61 | 62 | 20 63 | 20 64 | 65 | 66 | 67 | 68 | Music 69 | 70 | 71 | 72 | 73 | 630 74 | 70 75 | 611 76 | 501 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 140 85 | 60 86 | 87 | 88 | 89 | 90 | 思源黑体 CN Bold 91 | 75 92 | true 93 | 94 | 95 | 96 | 单击 97 | 98 | 99 | color: rgb(69, 137, 148); 100 | 101 | 102 | 103 | 104 | 105 | true 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 140 114 | 140 115 | 116 | 117 | 118 | 点击下方标题 119 | 120 | 121 | 122 | 123 | 124 | true 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 140 133 | 140 134 | 135 | 136 | 137 | 点击下方标题 138 | 139 | 140 | 141 | 142 | 143 | true 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 140 152 | 140 153 | 154 | 155 | 156 | 点击下方标题 157 | 158 | 159 | 160 | 161 | 162 | true 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 140 171 | 60 172 | 173 | 174 | 175 | 176 | 思源黑体 CN Bold 177 | 75 178 | true 179 | 180 | 181 | 182 | 单击 183 | 184 | 185 | color: rgb(69, 137, 148); 186 | 187 | 188 | 189 | 190 | 191 | true 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 140 200 | 140 201 | 202 | 203 | 204 | 点击下方标题 205 | 206 | 207 | 208 | 209 | 210 | true 211 | 212 | 213 | 214 | 215 | 216 | 217 | true 218 | 219 | 220 | 221 | 140 222 | 140 223 | 224 | 225 | 226 | 点击下方标题 227 | 228 | 229 | 230 | 231 | 232 | true 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 140 241 | 60 242 | 243 | 244 | 245 | 246 | 思源黑体 CN Bold 247 | 9 248 | 75 249 | true 250 | 251 | 252 | 253 | 单击 254 | 255 | 256 | -1 257 | 258 | 259 | color: rgb(69, 137, 148); 260 | 261 | 262 | 263 | 264 | 265 | true 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 140 274 | 140 275 | 276 | 277 | 278 | 点击下方标题 279 | 280 | 281 | 282 | 283 | 284 | true 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 140 293 | 60 294 | 295 | 296 | 297 | 298 | 思源黑体 CN Bold 299 | 75 300 | true 301 | 302 | 303 | 304 | 单击 305 | 306 | 307 | color: rgb(69, 137, 148); 308 | 309 | 310 | 311 | 312 | 313 | true 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 140 322 | 140 323 | 324 | 325 | 326 | 点击下方标题 327 | 328 | 329 | 330 | 331 | 332 | true 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 140 341 | 60 342 | 343 | 344 | 345 | 346 | 思源黑体 CN Bold 347 | 9 348 | 75 349 | true 350 | 351 | 352 | 353 | 单击 354 | 355 | 356 | color: rgb(69, 137, 148); 357 | 358 | 359 | 360 | 361 | 362 | true 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 140 371 | 60 372 | 373 | 374 | 375 | 376 | 思源黑体 CN Bold 377 | 75 378 | true 379 | 380 | 381 | 382 | 单击 383 | 384 | 385 | color: rgb(69, 137, 148); 386 | 387 | 388 | 389 | 390 | 391 | true 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 140 400 | 60 401 | 402 | 403 | 404 | 405 | 思源黑体 CN Bold 406 | 75 407 | true 408 | 409 | 410 | 411 | 单击 412 | 413 | 414 | color: rgb(69, 137, 148); 415 | 416 | 417 | 418 | 419 | 420 | true 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 140 429 | 140 430 | 431 | 432 | 433 | 点击下方标题 434 | 435 | 436 | 437 | 438 | 439 | true 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 140 448 | 60 449 | 450 | 451 | 452 | 453 | 思源黑体 CN Bold 454 | 75 455 | true 456 | 457 | 458 | 459 | 单击 460 | 461 | 462 | color: rgb(69, 137, 148); 463 | 464 | 465 | 466 | 467 | 468 | true 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 40 478 | 30 479 | 40 480 | 40 481 | 482 | 483 | 484 | image: url(./Image/home_sousuo.png); 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 89 494 | 30 495 | 239 496 | 40 497 | 498 | 499 | 500 | true 501 | 502 | 503 | false 504 | 505 | 506 | false 507 | 508 | 509 | 输入歌曲名或歌手名 510 | 511 | 512 | false 513 | 514 | 515 | 516 | 517 | 518 | 362 519 | 25 520 | 64 521 | 51 522 | 523 | 524 | 525 | 526 | 微软雅黑 527 | 11 528 | 75 529 | false 530 | true 531 | false 532 | false 533 | true 534 | 535 | 536 | 537 | PointingHandCursor 538 | 539 | 540 | 网易云 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | Image/wyy.pngImage/wyy.png 551 | 552 | 553 | 554 | 64 555 | 64 556 | 557 | 558 | 559 | false 560 | 561 | 562 | false 563 | 564 | 565 | false 566 | 567 | 568 | false 569 | 570 | 571 | true 572 | 573 | 574 | 575 | 576 | 577 | 89 578 | 90 579 | 331 580 | 351 581 | 582 | 583 | 584 | 585 | 思源黑体 CN Bold 586 | 10 587 | 75 588 | false 589 | true 590 | false 591 | false 592 | 593 | 594 | 595 | 596 | 597 | 598 | 172 599 | 500 600 | 48 601 | 48 602 | 603 | 604 | 605 | 606 | 48 607 | 48 608 | 609 | 610 | 611 | 612 | 48 613 | 48 614 | 615 | 616 | 617 | 上一首 618 | 619 | 620 | 621 | 622 | 623 | 624 | Image/上一首-01.pngImage/上一首-01.png 625 | 626 | 627 | 628 | 48 629 | 48 630 | 631 | 632 | 633 | true 634 | 635 | 636 | 637 | 638 | 639 | 232 640 | 500 641 | 48 642 | 48 643 | 644 | 645 | 646 | 647 | 48 648 | 48 649 | 650 | 651 | 652 | 653 | 48 654 | 48 655 | 656 | 657 | 658 | 播放/暂停 659 | 660 | 661 | 662 | 663 | 664 | 665 | Image/播放-01.pngImage/播放-01.png 666 | 667 | 668 | 669 | 48 670 | 48 671 | 672 | 673 | 674 | true 675 | 676 | 677 | 678 | 679 | 680 | 292 681 | 500 682 | 48 683 | 48 684 | 685 | 686 | 687 | 688 | 48 689 | 48 690 | 691 | 692 | 693 | 694 | 48 695 | 48 696 | 697 | 698 | 699 | 下一首 700 | 701 | 702 | 703 | 704 | 705 | 706 | Image/下一首-01.pngImage/下一首-01.png 707 | 708 | 709 | 710 | 48 711 | 48 712 | 713 | 714 | 715 | true 716 | 717 | 718 | 719 | 720 | 721 | 40 722 | 454 723 | 40 724 | 40 725 | 726 | 727 | 728 | image: url(./Image/home_music.png); 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 90 738 | 450 739 | 40 740 | 49 741 | 742 | 743 | 744 | 745 | 思源黑体 CN Bold 746 | 9 747 | 75 748 | false 749 | true 750 | false 751 | false 752 | 753 | 754 | 755 | 00:00 756 | 757 | 758 | 759 | 760 | 761 | 150 762 | 464 763 | 210 764 | 20 765 | 766 | 767 | 768 | true 769 | 770 | 771 | Qt::Horizontal 772 | 773 | 774 | false 775 | 776 | 777 | false 778 | 779 | 780 | QSlider::NoTicks 781 | 782 | 783 | 0 784 | 785 | 786 | 787 | 788 | 789 | 380 790 | 450 791 | 40 792 | 51 793 | 794 | 795 | 796 | 797 | 思源黑体 CN Bold 798 | 9 799 | 75 800 | false 801 | true 802 | false 803 | false 804 | 805 | 806 | 807 | 00:00 808 | 809 | 810 | 811 | 812 | 813 | 587 814 | 459 815 | 30 816 | 30 817 | 818 | 819 | 820 | 821 | 822 | 823 | Image/horn.png 824 | 825 | 826 | 827 | 828 | 829 | 480 830 | 464 831 | 96 832 | 20 833 | 834 | 835 | 836 | 0 837 | 838 | 839 | 50 840 | 841 | 842 | Qt::Horizontal 843 | 844 | 845 | QSlider::NoTicks 846 | 847 | 848 | 0 849 | 850 | 851 | 852 | 853 | 854 | 426 855 | 500 856 | 50 857 | 50 858 | 859 | 860 | 861 | 862 | 微软雅黑 863 | 10 864 | 75 865 | false 866 | true 867 | false 868 | false 869 | true 870 | 871 | 872 | 873 | PointingHandCursor 874 | 875 | 876 | 下载音乐 877 | 878 | 879 | 880 | 881 | 882 | 883 | Image/dowload.pngImage/dowload.png 884 | 885 | 886 | 887 | 50 888 | 50 889 | 890 | 891 | 892 | true 893 | 894 | 895 | 896 | 897 | 898 | 502 899 | 500 900 | 52 901 | 52 902 | 903 | 904 | 905 | 906 | 微软雅黑 907 | 10 908 | 75 909 | false 910 | true 911 | false 912 | false 913 | true 914 | 915 | 916 | 917 | OpenHandCursor 918 | 919 | 920 | 打开文件夹 921 | 922 | 923 | 924 | 925 | 926 | 927 | Image/file.pngImage/file.png 928 | 929 | 930 | 931 | 52 932 | 52 933 | 934 | 935 | 936 | true 937 | 938 | 939 | 940 | 941 | 942 | 43 943 | 514 944 | 110 945 | 21 946 | 947 | 948 | 949 | 950 | 思源黑体 CN Bold 951 | 10 952 | 953 | 954 | 955 | color: rgb(8, 169, 255); 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 437 965 | 460 966 | 30 967 | 30 968 | 969 | 970 | 971 | 972 | 30 973 | 30 974 | 975 | 976 | 977 | 978 | 30 979 | 30 980 | 981 | 982 | 983 | 列表循环 984 | 985 | 986 | 987 | 988 | 989 | 990 | Image/列表循环.pngImage/列表循环.png 991 | 992 | 993 | 994 | 30 995 | 30 996 | 997 | 998 | 999 | true 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 636 1006 | 34 1007 | 140 1008 | 31 1009 | 1010 | 1011 | 1012 | 1013 | 思源黑体 CN Bold 1014 | 11 1015 | 75 1016 | false 1017 | true 1018 | false 1019 | false 1020 | 1021 | 1022 | 1023 | true 1024 | 1025 | 1026 | false 1027 | 1028 | 1029 | true 1030 | 1031 | 1032 | 1033 | 网易云歌单 1034 | 1035 | 1036 | 1037 | 1038 | 华语 1039 | 1040 | 1041 | 1042 | 1043 | 欧美 1044 | 1045 | 1046 | 1047 | 1048 | 日语 1049 | 1050 | 1051 | 1052 | 1053 | 韩语 1054 | 1055 | 1056 | 1057 | 1058 | 粤语 1059 | 1060 | 1061 | 1062 | 1063 | 说唱 1064 | 1065 | 1066 | 1067 | 1068 | 流行 1069 | 1070 | 1071 | 1072 | 1073 | 民谣 1074 | 1075 | 1076 | 1077 | 1078 | 爵士 1079 | 1080 | 1081 | 1082 | 1083 | 乡村 1084 | 1085 | 1086 | 1087 | 1088 | 古典 1089 | 1090 | 1091 | 1092 | 1093 | 古风 1094 | 1095 | 1096 | 1097 | 1098 | 清晨 1099 | 1100 | 1101 | 1102 | 1103 | 夜晚 1104 | 1105 | 1106 | 1107 | 1108 | 学习 1109 | 1110 | 1111 | 1112 | 1113 | 工作 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 450 1121 | 25 1122 | 64 1123 | 51 1124 | 1125 | 1126 | 1127 | 1128 | 微软雅黑 1129 | 11 1130 | 75 1131 | false 1132 | true 1133 | false 1134 | false 1135 | true 1136 | 1137 | 1138 | 1139 | PointingHandCursor 1140 | 1141 | 1142 | QQ音乐 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | Image/qqmusic.pngImage/qqmusic.png 1153 | 1154 | 1155 | 1156 | 64 1157 | 64 1158 | 1159 | 1160 | 1161 | true 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 535 1168 | 25 1169 | 71 1170 | 51 1171 | 1172 | 1173 | 1174 | 1175 | 微软雅黑 1176 | 11 1177 | 75 1178 | false 1179 | true 1180 | false 1181 | false 1182 | true 1183 | 1184 | 1185 | 1186 | PointingHandCursor 1187 | 1188 | 1189 | 酷狗音乐 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | Image/kmusic.pngImage/kmusic.png 1200 | 1201 | 1202 | 1203 | 52 1204 | 52 1205 | 1206 | 1207 | 1208 | true 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 170 1215 | 150 1216 | 104 1217 | 78 1218 | 1219 | 1220 | 1221 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 1222 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 1223 | p, li { white-space: pre-wrap; } 1224 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 1225 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"><br /></p></body></html> 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 941 1232 | 34 1233 | 295 1234 | 31 1235 | 1236 | 1237 | 1238 | 1239 | 思源黑体 CN Bold 1240 | 11 1241 | 75 1242 | false 1243 | true 1244 | false 1245 | false 1246 | 1247 | 1248 | 1249 | true 1250 | 1251 | 1252 | false 1253 | 1254 | 1255 | true 1256 | 1257 | 1258 | 1259 | 网易云排行榜 1260 | 1261 | 1262 | 1263 | 1264 | 云音乐飙升榜 1265 | 1266 | 1267 | 1268 | 1269 | 云音乐新歌榜 1270 | 1271 | 1272 | 1273 | 1274 | 网易原创歌曲榜 1275 | 1276 | 1277 | 1278 | 1279 | 云音乐热歌榜 1280 | 1281 | 1282 | 1283 | 1284 | 云音乐说唱榜 1285 | 1286 | 1287 | 1288 | 1289 | 云音乐古典音乐榜 1290 | 1291 | 1292 | 1293 | 1294 | 云音乐电音榜 1295 | 1296 | 1297 | 1298 | 1299 | 抖音排行榜 1300 | 1301 | 1302 | 1303 | 1304 | 新声榜 1305 | 1306 | 1307 | 1308 | 1309 | 云音乐ACG音乐榜 1310 | 1311 | 1312 | 1313 | 1314 | 云音乐韩语榜 1315 | 1316 | 1317 | 1318 | 1319 | 云音乐国电榜 1320 | 1321 | 1322 | 1323 | 1324 | 英国Q杂志中文版周榜 1325 | 1326 | 1327 | 1328 | 1329 | 电竞音乐榜 1330 | 1331 | 1332 | 1333 | 1334 | UK排行榜周榜 1335 | 1336 | 1337 | 1338 | 1339 | 美国Billboard周榜 1340 | 1341 | 1342 | 1343 | 1344 | Beatport全球电子舞曲榜 1345 | 1346 | 1347 | 1348 | 1349 | KTV唛榜 1350 | 1351 | 1352 | 1353 | 1354 | iTunes榜 1355 | 1356 | 1357 | 1358 | 1359 | 日本Oricon周榜 1360 | 1361 | 1362 | 1363 | 1364 | Hit FM Top榜 1365 | 1366 | 1367 | 1368 | 1369 | 台湾Hito排行榜 1370 | 1371 | 1372 | 1373 | 1374 | 云音乐欧美热歌榜 1375 | 1376 | 1377 | 1378 | 1379 | 云音乐欧美新歌榜 1380 | 1381 | 1382 | 1383 | 1384 | 法国 NRJ Vos Hits 周榜 1385 | 1386 | 1387 | 1388 | 1389 | 中国新乡村音乐排行榜 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 830 1397 | 530 1398 | 281 1399 | 40 1400 | 1401 | 1402 | 1403 | 1404 | 微软雅黑 1405 | 12 1406 | 75 1407 | false 1408 | true 1409 | false 1410 | false 1411 | true 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 636 1422 | 0 1423 | 140 1424 | 31 1425 | 1426 | 1427 | 1428 | 1429 | 思源黑体 CN Bold 1430 | 11 1431 | 75 1432 | false 1433 | true 1434 | false 1435 | false 1436 | true 1437 | 1438 | 1439 | 1440 | color: rgb(1, 175, 255); 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 898 1450 | 33 1451 | 32 1452 | 32 1453 | 1454 | 1455 | 1456 | 1457 | 30 1458 | 30 1459 | 1460 | 1461 | 1462 | 1463 | 48 1464 | 48 1465 | 1466 | 1467 | 1468 | 下一首 1469 | 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | Image/Next.pngImage/Next.png 1476 | 1477 | 1478 | 1479 | 30 1480 | 30 1481 | 1482 | 1483 | 1484 | true 1485 | 1486 | 1487 | 1488 | 1489 | 1490 | 788 1491 | 33 1492 | 32 1493 | 32 1494 | 1495 | 1496 | 1497 | 1498 | 30 1499 | 30 1500 | 1501 | 1502 | 1503 | 1504 | 48 1505 | 48 1506 | 1507 | 1508 | 1509 | 上一首 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | Image/Previous.pngImage/Previous.png 1517 | 1518 | 1519 | 1520 | 30 1521 | 30 1522 | 1523 | 1524 | 1525 | true 1526 | 1527 | 1528 | 1529 | 1530 | 1531 | 845 1532 | 39 1533 | 31 1534 | 21 1535 | 1536 | 1537 | 1538 | 1539 | 思源黑体 CN Bold 1540 | 11 1541 | 75 1542 | false 1543 | true 1544 | false 1545 | false 1546 | true 1547 | 1548 | 1549 | 1550 | color: rgb(1, 175, 255); 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | home_id_Edit 1557 | gridLayoutWidget 1558 | label_15 1559 | home_input_Edit 1560 | home_Button_net 1561 | home_listWidget 1562 | music_pre 1563 | music_start_stop 1564 | music_next 1565 | home_m 1566 | time_pre_2 1567 | time_line 1568 | time_pre_3 1569 | volume 1570 | volume_line 1571 | home_download_Button 1572 | open_Button_4 1573 | home_music_name_label 1574 | song_modle 1575 | home_comboBox 1576 | home_Button_qq 1577 | home_Button_ku 1578 | home_comboBox_2 1579 | music_list_label_2 1580 | hmoe_show_label 1581 | music_next_2 1582 | music_pre_2 1583 | hmoe_pages_label 1584 | 1585 | 1586 | 1587 | 1588 | 微软雅黑 1589 | 12 1590 | 75 1591 | false 1592 | true 1593 | false 1594 | false 1595 | true 1596 | 1597 | 1598 | 1599 | 音乐下载 1600 | 1601 | 1602 | 1603 | 1604 | 110 1605 | 30 1606 | 289 1607 | 40 1608 | 1609 | 1610 | 1611 | 1612 | 思源黑体 CN Bold 1613 | 12 1614 | 75 1615 | false 1616 | true 1617 | false 1618 | false 1619 | true 1620 | 1621 | 1622 | 1623 | true 1624 | 1625 | 1626 | false 1627 | 1628 | 1629 | false 1630 | 1631 | 1632 | 输入歌曲名或歌手名 1633 | 1634 | 1635 | false 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 106 1642 | 98 1643 | 64 1644 | 51 1645 | 1646 | 1647 | 1648 | 1649 | 微软雅黑 1650 | 11 1651 | 75 1652 | false 1653 | true 1654 | false 1655 | false 1656 | true 1657 | 1658 | 1659 | 1660 | PointingHandCursor 1661 | 1662 | 1663 | 网易云 1664 | 1665 | 1666 | 1667 | 1668 | 1669 | 1670 | 1671 | 1672 | 1673 | Image/wyy.pngImage/wyy.png 1674 | 1675 | 1676 | 1677 | 64 1678 | 64 1679 | 1680 | 1681 | 1682 | false 1683 | 1684 | 1685 | false 1686 | 1687 | 1688 | false 1689 | 1690 | 1691 | false 1692 | 1693 | 1694 | true 1695 | 1696 | 1697 | 1698 | 1699 | 1700 | 225 1701 | 98 1702 | 64 1703 | 51 1704 | 1705 | 1706 | 1707 | 1708 | 微软雅黑 1709 | 11 1710 | 75 1711 | false 1712 | true 1713 | false 1714 | false 1715 | true 1716 | 1717 | 1718 | 1719 | PointingHandCursor 1720 | 1721 | 1722 | QQ音乐 1723 | 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | 1730 | 1731 | 1732 | Image/qqmusic.pngImage/qqmusic.png 1733 | 1734 | 1735 | 1736 | 64 1737 | 64 1738 | 1739 | 1740 | 1741 | true 1742 | 1743 | 1744 | 1745 | 1746 | 1747 | 110 1748 | 180 1749 | 271 1750 | 40 1751 | 1752 | 1753 | 1754 | 1755 | 微软雅黑 1756 | 12 1757 | 75 1758 | false 1759 | true 1760 | false 1761 | false 1762 | true 1763 | 1764 | 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 110 1773 | 240 1774 | 106 1775 | 40 1776 | 1777 | 1778 | 1779 | 1780 | 思源黑体 CN Bold 1781 | 10 1782 | 75 1783 | false 1784 | true 1785 | false 1786 | false 1787 | true 1788 | 1789 | 1790 | 1791 | true 1792 | 1793 | 1794 | 输入序号 1795 | 1796 | 1797 | 1798 | 1799 | 1800 | 232 1801 | 230 1802 | 50 1803 | 50 1804 | 1805 | 1806 | 1807 | 1808 | 微软雅黑 1809 | 10 1810 | 75 1811 | false 1812 | true 1813 | false 1814 | false 1815 | true 1816 | 1817 | 1818 | 1819 | PointingHandCursor 1820 | 1821 | 1822 | 下载音乐 1823 | 1824 | 1825 | 1826 | 1827 | 1828 | 1829 | Image/dowload.pngImage/dowload.png 1830 | 1831 | 1832 | 1833 | 50 1834 | 50 1835 | 1836 | 1837 | 1838 | true 1839 | 1840 | 1841 | 1842 | 1843 | 1844 | 350 1845 | 227 1846 | 52 1847 | 52 1848 | 1849 | 1850 | 1851 | 1852 | 微软雅黑 1853 | 10 1854 | 75 1855 | false 1856 | true 1857 | false 1858 | false 1859 | true 1860 | 1861 | 1862 | 1863 | OpenHandCursor 1864 | 1865 | 1866 | 打开文件夹 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | Image/file.pngImage/file.png 1874 | 1875 | 1876 | 1877 | 52 1878 | 52 1879 | 1880 | 1881 | 1882 | true 1883 | 1884 | 1885 | 1886 | 1887 | 1888 | 900 1889 | 340 1890 | 104 1891 | 78 1892 | 1893 | 1894 | 1895 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 1896 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 1897 | p, li { white-space: pre-wrap; } 1898 | </style></head><body style=" font-family:'微软雅黑','思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 1899 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'思源黑体 CN Bold'; font-size:10pt;"><br /></p></body></html> 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 60 1906 | 30 1907 | 40 1908 | 40 1909 | 1910 | 1911 | 1912 | image: url(./Image/sousuo.png); 1913 | 1914 | 1915 | 1916 | 1917 | 1918 | 1919 | 1920 | 1921 | 760 1922 | 340 1923 | 104 1924 | 78 1925 | 1926 | 1927 | 1928 | 1929 | 1930 | 1931 | 340 1932 | 98 1933 | 71 1934 | 51 1935 | 1936 | 1937 | 1938 | 1939 | 微软雅黑 1940 | 11 1941 | 75 1942 | false 1943 | true 1944 | false 1945 | false 1946 | true 1947 | 1948 | 1949 | 1950 | PointingHandCursor 1951 | 1952 | 1953 | 酷狗音乐 1954 | 1955 | 1956 | 1957 | 1958 | 1959 | 1960 | 1961 | 1962 | 1963 | Image/kmusic.pngImage/kmusic.png 1964 | 1965 | 1966 | 1967 | 52 1968 | 52 1969 | 1970 | 1971 | 1972 | true 1973 | 1974 | 1975 | 1976 | 1977 | 1978 | 429 1979 | 30 1980 | 820 1981 | 519 1982 | 1983 | 1984 | 1985 | 1986 | 思源黑体 CN Bold 1987 | 12 1988 | 75 1989 | false 1990 | true 1991 | false 1992 | false 1993 | true 1994 | 1995 | 1996 | 1997 | 254 1998 | 1999 | 2000 | 2001 | Music 2002 | 2003 | 2004 | 2005 | 2006 | Singer 2007 | 2008 | 2009 | 2010 | 2011 | Album 2012 | 2013 | 2014 | 2015 | type_Edit 2016 | id_Edit 2017 | input_Edit 2018 | seek_Button 2019 | seek_Button_2 2020 | show_label 2021 | input_Edit_2 2022 | download_Button 2023 | open_Button 2024 | label_6 2025 | seek_Button_3 2026 | download_tableWidget 2027 | 2028 | 2029 | 2030 | 歌单&专辑 2031 | 2032 | 2033 | 2034 | 2035 | 110 2036 | 30 2037 | 131 2038 | 40 2039 | 2040 | 2041 | 2042 | 2043 | 思源黑体 CN Bold 2044 | 10 2045 | 75 2046 | false 2047 | true 2048 | false 2049 | false 2050 | 2051 | 2052 | 2053 | true 2054 | 2055 | 2056 | false 2057 | 2058 | 2059 | false 2060 | 2061 | 2062 | 歌单|专辑ID 2063 | 2064 | 2065 | false 2066 | 2067 | 2068 | 2069 | 2070 | 2071 | 260 2072 | 30 2073 | 50 2074 | 40 2075 | 2076 | 2077 | 2078 | 2079 | 思源黑体 CN Bold 2080 | 10 2081 | 75 2082 | false 2083 | true 2084 | false 2085 | false 2086 | 2087 | 2088 | 2089 | PointingHandCursor 2090 | 2091 | 2092 | 搜索歌单 2093 | 2094 | 2095 | 2096 | 2097 | 2098 | 2099 | Image/musiclist.pngImage/musiclist.png 2100 | 2101 | 2102 | 2103 | 50 2104 | 50 2105 | 2106 | 2107 | 2108 | true 2109 | 2110 | 2111 | 2112 | 2113 | 2114 | 110 2115 | 170 2116 | 131 2117 | 40 2118 | 2119 | 2120 | 2121 | 2122 | 思源黑体 CN Bold 2123 | 10 2124 | 75 2125 | false 2126 | true 2127 | false 2128 | false 2129 | 2130 | 2131 | 2132 | true 2133 | 2134 | 2135 | 输入序号 2136 | 2137 | 2138 | 2139 | 2140 | 2141 | 260 2142 | 160 2143 | 50 2144 | 50 2145 | 2146 | 2147 | 2148 | 2149 | 思源黑体 CN Bold 2150 | 10 2151 | 75 2152 | false 2153 | true 2154 | false 2155 | false 2156 | 2157 | 2158 | 2159 | PointingHandCursor 2160 | 2161 | 2162 | 下载音乐 2163 | 2164 | 2165 | 2166 | 2167 | 2168 | 2169 | Image/dowload.pngImage/dowload.png 2170 | 2171 | 2172 | 2173 | 50 2174 | 50 2175 | 2176 | 2177 | 2178 | true 2179 | 2180 | 2181 | 2182 | 2183 | 2184 | 341 2185 | 160 2186 | 50 2187 | 50 2188 | 2189 | 2190 | 2191 | 2192 | 微软雅黑 2193 | 10 2194 | 75 2195 | false 2196 | true 2197 | false 2198 | false 2199 | true 2200 | 2201 | 2202 | 2203 | OpenHandCursor 2204 | 2205 | 2206 | 打开文件夹 2207 | 2208 | 2209 | 2210 | 2211 | 2212 | 2213 | Image/file.pngImage/file.png 2214 | 2215 | 2216 | 2217 | 50 2218 | 50 2219 | 2220 | 2221 | 2222 | true 2223 | 2224 | 2225 | 2226 | 2227 | 2228 | 110 2229 | 100 2230 | 281 2231 | 40 2232 | 2233 | 2234 | 2235 | 2236 | 微软雅黑 2237 | 12 2238 | 75 2239 | false 2240 | true 2241 | false 2242 | false 2243 | true 2244 | 2245 | 2246 | 2247 | 2248 | 2249 | 2250 | 2251 | 2252 | 2253 | 820 2254 | 260 2255 | 104 2256 | 78 2257 | 2258 | 2259 | 2260 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 2261 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 2262 | p, li { white-space: pre-wrap; } 2263 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 2264 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"><br /></p></body></html> 2265 | 2266 | 2267 | 2268 | 2269 | 2270 | 344 2271 | 30 2272 | 41 2273 | 41 2274 | 2275 | 2276 | 2277 | 2278 | 思源黑体 CN Bold 2279 | 10 2280 | 75 2281 | false 2282 | true 2283 | false 2284 | false 2285 | 2286 | 2287 | 2288 | PointingHandCursor 2289 | 2290 | 2291 | 搜索专辑 2292 | 2293 | 2294 | 2295 | 2296 | 2297 | 2298 | Image/album.pngImage/album.png 2299 | 2300 | 2301 | 2302 | 41 2303 | 41 2304 | 2305 | 2306 | 2307 | true 2308 | 2309 | 2310 | 2311 | 2312 | 2313 | 340 2314 | 270 2315 | 50 2316 | 50 2317 | 2318 | 2319 | 2320 | 2321 | 微软雅黑 2322 | 10 2323 | 75 2324 | false 2325 | true 2326 | false 2327 | false 2328 | true 2329 | 2330 | 2331 | 2332 | PointingHandCursor 2333 | 2334 | 2335 | 下载全部音乐 2336 | 2337 | 2338 | 2339 | 2340 | 2341 | 2342 | Image/alldownload.pngImage/alldownload.png 2343 | 2344 | 2345 | 2346 | 50 2347 | 50 2348 | 2349 | 2350 | 2351 | true 2352 | 2353 | 2354 | 2355 | 2356 | 2357 | 110 2358 | 280 2359 | 210 2360 | 31 2361 | 2362 | 2363 | 2364 | 0 2365 | 2366 | 2367 | 100 2368 | 2369 | 2370 | 0 2371 | 2372 | 2373 | true 2374 | 2375 | 2376 | Qt::Horizontal 2377 | 2378 | 2379 | false 2380 | 2381 | 2382 | QProgressBar::TopToBottom 2383 | 2384 | 2385 | %p% 2386 | 2387 | 2388 | 2389 | 2390 | 2391 | 429 2392 | 30 2393 | 820 2394 | 519 2395 | 2396 | 2397 | 2398 | 2399 | 思源黑体 CN Bold 2400 | 12 2401 | 75 2402 | false 2403 | true 2404 | false 2405 | false 2406 | 2407 | 2408 | 2409 | 254 2410 | 2411 | 2412 | 2413 | Music 2414 | 2415 | 2416 | 2417 | 2418 | Singer 2419 | 2420 | 2421 | 2422 | 2423 | Album 2424 | 2425 | 2426 | 2427 | music_list_id_Edit 2428 | music_list_Edit 2429 | music_list_pushButton 2430 | music_list_lineEdit 2431 | music_list_pushButton_2 2432 | open_Button_3 2433 | music_list_label 2434 | music_list_pushButton_album 2435 | all_download_Button 2436 | all_d_Bar 2437 | music_list_tableWidget 2438 | 2439 | 2440 | 2441 | 排行榜 2442 | 2443 | 2444 | 2445 | 2446 | 110 2447 | 30 2448 | 300 2449 | 40 2450 | 2451 | 2452 | 2453 | 2454 | 思源黑体 CN Bold 2455 | 11 2456 | 75 2457 | false 2458 | true 2459 | false 2460 | false 2461 | 2462 | 2463 | 2464 | true 2465 | 2466 | 2467 | false 2468 | 2469 | 2470 | true 2471 | 2472 | 2473 | 2474 | 网易云排行榜 2475 | 2476 | 2477 | 2478 | 2479 | 云音乐飙升榜 2480 | 2481 | 2482 | 2483 | 2484 | 云音乐新歌榜 2485 | 2486 | 2487 | 2488 | 2489 | 网易原创歌曲榜 2490 | 2491 | 2492 | 2493 | 2494 | 云音乐热歌榜 2495 | 2496 | 2497 | 2498 | 2499 | 云音乐说唱榜 2500 | 2501 | 2502 | 2503 | 2504 | 云音乐古典音乐榜 2505 | 2506 | 2507 | 2508 | 2509 | 云音乐电音榜 2510 | 2511 | 2512 | 2513 | 2514 | 抖音排行榜 2515 | 2516 | 2517 | 2518 | 2519 | 新声榜 2520 | 2521 | 2522 | 2523 | 2524 | 云音乐ACG音乐榜 2525 | 2526 | 2527 | 2528 | 2529 | 云音乐韩语榜 2530 | 2531 | 2532 | 2533 | 2534 | 云音乐国电榜 2535 | 2536 | 2537 | 2538 | 2539 | 英国Q杂志中文版周榜 2540 | 2541 | 2542 | 2543 | 2544 | 电竞音乐榜 2545 | 2546 | 2547 | 2548 | 2549 | UK排行榜周榜 2550 | 2551 | 2552 | 2553 | 2554 | 美国Billboard周榜 2555 | 2556 | 2557 | 2558 | 2559 | Beatport全球电子舞曲榜 2560 | 2561 | 2562 | 2563 | 2564 | KTV唛榜 2565 | 2566 | 2567 | 2568 | 2569 | iTunes榜 2570 | 2571 | 2572 | 2573 | 2574 | 日本Oricon周榜 2575 | 2576 | 2577 | 2578 | 2579 | Hit FM Top榜 2580 | 2581 | 2582 | 2583 | 2584 | 台湾Hito排行榜 2585 | 2586 | 2587 | 2588 | 2589 | 云音乐欧美热歌榜 2590 | 2591 | 2592 | 2593 | 2594 | 云音乐欧美新歌榜 2595 | 2596 | 2597 | 2598 | 2599 | 法国 NRJ Vos Hits 周榜 2600 | 2601 | 2602 | 2603 | 2604 | 中国新乡村音乐排行榜 2605 | 2606 | 2607 | 2608 | 2609 | 2610 | 2611 | 520 2612 | 30 2613 | 601 2614 | 501 2615 | 2616 | 2617 | 2618 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 2619 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 2620 | p, li { white-space: pre-wrap; } 2621 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 2622 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这是一个文本框</p> 2623 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这不仅仅是一个文本框</p> 2624 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 2625 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">选择你想查看的网易云排行榜</p> 2626 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">输入对应的序号进行下载</p> 2627 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">圈圈的下载按钮,如果你想点击一下</p> 2628 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">那么</p> 2629 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">排行榜里面的所有歌曲都会跑到你的电脑硬盘里面</p></body></html> 2630 | 2631 | 2632 | 2633 | 2634 | 2635 | 110 2636 | 150 2637 | 111 2638 | 40 2639 | 2640 | 2641 | 2642 | 2643 | 思源黑体 CN Bold 2644 | 10 2645 | 75 2646 | false 2647 | true 2648 | false 2649 | false 2650 | 2651 | 2652 | 2653 | true 2654 | 2655 | 2656 | 输入序号 2657 | 2658 | 2659 | 2660 | 2661 | 2662 | 270 2663 | 145 2664 | 50 2665 | 50 2666 | 2667 | 2668 | 2669 | 2670 | 思源黑体 CN Bold 2671 | 10 2672 | 75 2673 | false 2674 | true 2675 | false 2676 | false 2677 | 2678 | 2679 | 2680 | PointingHandCursor 2681 | 2682 | 2683 | 下载音乐 2684 | 2685 | 2686 | 2687 | 2688 | 2689 | 2690 | Image/dowload.pngImage/dowload.png 2691 | 2692 | 2693 | 2694 | 50 2695 | 50 2696 | 2697 | 2698 | 2699 | true 2700 | 2701 | 2702 | 2703 | 2704 | 2705 | 110 2706 | 220 2707 | 301 2708 | 40 2709 | 2710 | 2711 | 2712 | 2713 | 微软雅黑 2714 | 12 2715 | 75 2716 | false 2717 | true 2718 | false 2719 | false 2720 | true 2721 | 2722 | 2723 | 2724 | 2725 | 2726 | 2727 | 2728 | 2729 | 2730 | 990 2731 | 430 2732 | 104 2733 | 78 2734 | 2735 | 2736 | 2737 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 2738 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 2739 | p, li { white-space: pre-wrap; } 2740 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 2741 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"><br /></p></body></html> 2742 | 2743 | 2744 | 2745 | 2746 | 2747 | 360 2748 | 145 2749 | 50 2750 | 50 2751 | 2752 | 2753 | 2754 | 2755 | 微软雅黑 2756 | 10 2757 | 75 2758 | false 2759 | true 2760 | false 2761 | false 2762 | true 2763 | 2764 | 2765 | 2766 | OpenHandCursor 2767 | 2768 | 2769 | 打开文件夹 2770 | 2771 | 2772 | 2773 | 2774 | 2775 | 2776 | Image/file.pngImage/file.png 2777 | 2778 | 2779 | 2780 | 50 2781 | 50 2782 | 2783 | 2784 | 2785 | true 2786 | 2787 | 2788 | 2789 | 2790 | 2791 | 110 2792 | 310 2793 | 210 2794 | 31 2795 | 2796 | 2797 | 2798 | 0 2799 | 2800 | 2801 | 100 2802 | 2803 | 2804 | 0 2805 | 2806 | 2807 | true 2808 | 2809 | 2810 | Qt::Horizontal 2811 | 2812 | 2813 | false 2814 | 2815 | 2816 | QProgressBar::TopToBottom 2817 | 2818 | 2819 | %p% 2820 | 2821 | 2822 | 2823 | 2824 | 2825 | 363 2826 | 300 2827 | 50 2828 | 50 2829 | 2830 | 2831 | 2832 | 2833 | 微软雅黑 2834 | 10 2835 | 75 2836 | false 2837 | true 2838 | false 2839 | false 2840 | true 2841 | 2842 | 2843 | 2844 | PointingHandCursor 2845 | 2846 | 2847 | 下载全部音乐 2848 | 2849 | 2850 | 2851 | 2852 | 2853 | 2854 | Image/alldownload.pngImage/alldownload.png 2855 | 2856 | 2857 | 2858 | 50 2859 | 50 2860 | 2861 | 2862 | 2863 | true 2864 | 2865 | 2866 | top_id_Edit 2867 | comboBox 2868 | top_textEdit 2869 | top_lineEdit 2870 | top_pushButton 2871 | top_show_label 2872 | open_Button_2 2873 | top_d_Bar 2874 | top_download_Button 2875 | 2876 | 2877 | 2878 | 评论 2879 | 2880 | 2881 | 2882 | 2883 | 520 2884 | 30 2885 | 601 2886 | 501 2887 | 2888 | 2889 | 2890 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 2891 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 2892 | p, li { white-space: pre-wrap; } 2893 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 2894 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这是一个文本框</p> 2895 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这不仅仅是一个文本框</p> 2896 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 2897 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果你想使用这里的功能</p> 2898 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">请先回到[音乐下载]界面</p> 2899 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">找到对应的序号</p> 2900 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 2901 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击第一个按钮</p> 2902 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">进行网易云音乐评论查看(15条热评+400最新评论)</p> 2903 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果你觉得这样查看不舒服,或者评论数量太少</p> 2904 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 2905 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击第二个按钮</p> 2906 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">生成Excel文件进行查看(15条热评+1000最新评论)</p> 2907 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 2908 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击第三个按钮</p> 2909 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">即可打开刚刚生成的Excel文件</p></body></html> 2910 | 2911 | 2912 | 2913 | 2914 | 2915 | 110 2916 | 30 2917 | 121 2918 | 40 2919 | 2920 | 2921 | 2922 | 2923 | 思源黑体 CN Bold 2924 | 10 2925 | 75 2926 | false 2927 | true 2928 | false 2929 | false 2930 | 2931 | 2932 | 2933 | true 2934 | 2935 | 2936 | false 2937 | 2938 | 2939 | false 2940 | 2941 | 2942 | 输入序号 2943 | 2944 | 2945 | 2946 | 2947 | 2948 | 140 2949 | 100 2950 | 50 2951 | 50 2952 | 2953 | 2954 | 2955 | 2956 | 思源黑体 CN Bold 2957 | 10 2958 | 75 2959 | false 2960 | true 2961 | false 2962 | false 2963 | 2964 | 2965 | 2966 | PointingHandCursor 2967 | 2968 | 2969 | 查看评论 2970 | 2971 | 2972 | 2973 | 2974 | 2975 | 2976 | Image/look.pngImage/look.png 2977 | 2978 | 2979 | 2980 | 50 2981 | 50 2982 | 2983 | 2984 | 2985 | true 2986 | 2987 | 2988 | 2989 | 2990 | 2991 | 140 2992 | 200 2993 | 50 2994 | 50 2995 | 2996 | 2997 | 2998 | 2999 | 思源黑体 CN Bold 3000 | 10 3001 | 75 3002 | false 3003 | true 3004 | false 3005 | false 3006 | 3007 | 3008 | 3009 | PointingHandCursor 3010 | 3011 | 3012 | 生成Excel 3013 | 3014 | 3015 | 3016 | 3017 | 3018 | 3019 | Image/excel.pngImage/excel.png 3020 | 3021 | 3022 | 3023 | 50 3024 | 50 3025 | 3026 | 3027 | 3028 | true 3029 | 3030 | 3031 | 3032 | 3033 | 3034 | 140 3035 | 300 3036 | 50 3037 | 50 3038 | 3039 | 3040 | 3041 | 3042 | 思源黑体 CN Bold 3043 | 10 3044 | 75 3045 | false 3046 | true 3047 | false 3048 | false 3049 | 3050 | 3051 | 3052 | OpenHandCursor 3053 | 3054 | 3055 | 打开Excel 3056 | 3057 | 3058 | 3059 | 3060 | 3061 | 3062 | Image/openexcel.pngImage/openexcel.png 3063 | 3064 | 3065 | 3066 | 50 3067 | 50 3068 | 3069 | 3070 | 3071 | true 3072 | 3073 | 3074 | 3075 | 3076 | 3077 | 110 3078 | 410 3079 | 391 3080 | 40 3081 | 3082 | 3083 | 3084 | 3085 | 微软雅黑 3086 | 12 3087 | 75 3088 | false 3089 | true 3090 | false 3091 | false 3092 | true 3093 | 3094 | 3095 | 3096 | 3097 | 3098 | 3099 | 3100 | 3101 | 3102 | 980 3103 | 430 3104 | 104 3105 | 78 3106 | 3107 | 3108 | 3109 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 3110 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 3111 | p, li { white-space: pre-wrap; } 3112 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 3113 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"><br /></p></body></html> 3114 | 3115 | 3116 | 3117 | 3118 | 3119 | 800 3120 | 470 3121 | 151 3122 | 41 3123 | 3124 | 3125 | 3126 | comment_name_textEdit 3127 | comment_id_Edit 3128 | comment_textEdit 3129 | comment_Edit 3130 | comment_pushButton 3131 | comment_pushButton_2 3132 | comment_pushButton_3 3133 | comment_show_label 3134 | 3135 | 3136 | 3137 | 歌词 3138 | 3139 | 3140 | 3141 | 3142 | 110 3143 | 30 3144 | 121 3145 | 40 3146 | 3147 | 3148 | 3149 | 3150 | 思源黑体 CN Bold 3151 | 10 3152 | 75 3153 | false 3154 | true 3155 | false 3156 | false 3157 | 3158 | 3159 | 3160 | true 3161 | 3162 | 3163 | 输入序号 3164 | 3165 | 3166 | 3167 | 3168 | 3169 | 140 3170 | 100 3171 | 50 3172 | 50 3173 | 3174 | 3175 | 3176 | 3177 | 思源黑体 CN Bold 3178 | 10 3179 | 75 3180 | false 3181 | true 3182 | false 3183 | false 3184 | 3185 | 3186 | 3187 | PointingHandCursor 3188 | 3189 | 3190 | 查看歌词 3191 | 3192 | 3193 | 3194 | 3195 | 3196 | 3197 | Image/lyrics.pngImage/lyrics.png 3198 | 3199 | 3200 | 3201 | 50 3202 | 50 3203 | 3204 | 3205 | 3206 | true 3207 | 3208 | 3209 | 3210 | 3211 | 3212 | 520 3213 | 30 3214 | 601 3215 | 501 3216 | 3217 | 3218 | 3219 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 3220 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 3221 | p, li { white-space: pre-wrap; } 3222 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 3223 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这是一个文本框</p> 3224 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这不仅仅是一个文本框</p> 3225 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 3226 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果你想使用这里的功能</p> 3227 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">请先回到[音乐下载]界面</p> 3228 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">找到对应的序号</p> 3229 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 3230 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击第一个按钮</p> 3231 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">即可查看这首的歌词</p> 3232 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 3233 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">点击第二个按钮</p> 3234 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">即可查看首带时间段的歌词</p></body></html> 3235 | 3236 | 3237 | 3238 | 3239 | 3240 | 140 3241 | 200 3242 | 50 3243 | 50 3244 | 3245 | 3246 | 3247 | 3248 | 思源黑体 CN Bold 3249 | 10 3250 | 75 3251 | false 3252 | true 3253 | false 3254 | false 3255 | 3256 | 3257 | 3258 | PointingHandCursor 3259 | 3260 | 3261 | 查看歌词(T) 3262 | 3263 | 3264 | 3265 | 3266 | 3267 | 3268 | Image/lyrics1.pngImage/lyrics1.png 3269 | 3270 | 3271 | 3272 | 50 3273 | 50 3274 | 3275 | 3276 | 3277 | true 3278 | 3279 | 3280 | 3281 | 3282 | 3283 | 110 3284 | 320 3285 | 391 3286 | 40 3287 | 3288 | 3289 | 3290 | 3291 | 微软雅黑 3292 | 12 3293 | 75 3294 | false 3295 | true 3296 | false 3297 | false 3298 | true 3299 | 3300 | 3301 | 3302 | 3303 | 3304 | 3305 | 3306 | 3307 | 3308 | 说明 3309 | 3310 | 3311 | 3312 | 3313 | 30 3314 | 50 3315 | 561 3316 | 461 3317 | 3318 | 3319 | 3320 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 3321 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 3322 | p, li { white-space: pre-wrap; } 3323 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 3324 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑'; color:#2ad1ff;">Music_Download</span></p> 3325 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3326 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">功能均由Python实现</span></p> 3327 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">-------------------------------------------</span></p> 3328 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2.1.3版本更新</span></p> 3329 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">使用自己写的网易云API接口</span></p> 3330 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">解决了歌单只有三首的限制</span></p> 3331 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2021/01/01</span></p> 3332 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">-------------------------------------------</span></p> 3333 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2.1版本更新</span></p> 3334 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">1:老版本爬取网易云歌单时,限制在20首</span></p> 3335 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">新版本已解决这个问题</span></p> 3336 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2:首页界面增加了切换按钮,可以看到更多的歌单</span></p> 3337 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">3:排行榜、评论、歌词界面,文本框里增加了说明</span></p> 3338 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">4:评论界面,评论显示更加清晰</span></p> 3339 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">5:优化了一些逻辑</span></p> 3340 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2020/06/25</span></p> 3341 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3342 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">-------------------------------------------</span></p> 3343 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2.0版本更新</span></p> 3344 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> 3345 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">1:支持播放网易云音乐、QQ音乐、酷狗音乐的音乐</span></p> 3346 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2:网易云歌单显示以及播放其中的音乐</span></p> 3347 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">3:网易云排行榜显示以及播放其中的音乐</span></p> 3348 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">4:下载正在播放的音乐</span></p> 3349 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">5:可以更换顶部的图片</span></p> 3350 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">6:再次提升界面美观</span></p> 3351 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">-------------------------------------------</span></p> 3352 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">1.2版本更新</span></p> 3353 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3354 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">1:现已支持,网易云,QQ音乐,酷狗音乐(新增)</span></p> 3355 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">2:爬取网易云评论,现已支持热评(15条)第一个版本只支持最新的评论 </span></p> 3356 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">3:支持,通过网易云的歌单ID,专辑ID;进行音乐显示及其下载(ID左边第一个是歌单按钮,第二个是专辑按钮)</span></p> 3357 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">4:支持,批量下载歌单,专辑,排行榜里面的歌曲;而且还有进度条显示</span></p> 3358 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">5:界面再次升级,美观度再次提升</span></p> 3359 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">-------------------------------------------</span></p> 3360 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">1.1</span></p> 3361 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3362 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">支持 网易云,QQ音乐付费音乐下载</span></p> 3363 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">支持 网易云26种排行榜查看以及下载</span></p> 3364 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">支持 网易云所有音乐评论查看,并且可以自动化写入Excel</span></p> 3365 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">支持 网易云所有音乐歌词查看</span></p> 3366 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">使用'评论''歌词'功能需要先到'音乐下载'界面搜索音乐</span></p> 3367 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">-------------------------------------------</span></p> 3368 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">世界因代码而改变!</span></p> 3369 | <p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3370 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">BY:Java_S</span></p></body></html> 3371 | 3372 | 3373 | 3374 | 3375 | 3376 | 672 3377 | 50 3378 | 561 3379 | 461 3380 | 3381 | 3382 | 3383 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 3384 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 3385 | p, li { white-space: pre-wrap; } 3386 | </style></head><body style=" font-family:'思源黑体 CN Bold'; font-size:12pt; font-weight:600; font-style:normal;"> 3387 | <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">《</span><span style=" font-family:'Source Han Sans SC','Noto Sans CJK SC','HanHei SC','-apple-system','BlinkMacSystemFont','system-ui','sans-serif','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji'; font-size:20px; color:#333333; background-color:#ffffff;">中华人民共和国著作权法(2010修正)</span><span style=" font-family:'微软雅黑';">》</span></p> 3388 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:26px; font-family:'微软雅黑'; background-color:#ffffff;"><br /></p> 3389 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">为保护文学、艺术和科学作品作者的著作权,以及与著作权有关的权益,鼓励有益于社会主义精神文明、物质文明建设的作品的创作和传播,促进社会主义文化和科学事业的发展与繁荣,根据宪法制定本法。</span></p> 3390 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3391 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">《著作权法》,加强对音乐作品特别是数字音乐作品的版权保护,严厉打击未经许可传播音乐作品的侵权盗版行为,支持权利人和使用者开展版权合作,推动音乐作品相互授权和广泛传播,鼓励相关单位积极探索网络环境下传播音乐作品的商业模式,推动建立良好的网络音乐版权秩序和运营生态,逐步实现数字音乐的正版化运营。完善反盗版举报和查处奖励机制,加大对网络非法传播、假冒出版单位制作出版等各类侵权盗版行为的打击力度。强化市场监管,坚决依法查处含有有害内容的音乐作品。</span></p> 3392 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3393 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑';"><br /></p> 3394 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'微软雅黑';">请支持正版音乐,本软件仅供参考与学习</span></p></body></html> 3395 | 3396 | 3397 | 3398 | 3399 | 3400 | 605 3401 | 50 3402 | 50 3403 | 50 3404 | 3405 | 3406 | 3407 | 3408 | 微软雅黑 3409 | 11 3410 | 75 3411 | false 3412 | true 3413 | false 3414 | false 3415 | true 3416 | 3417 | 3418 | 3419 | PointingHandCursor 3420 | 3421 | 3422 | 换肤 3423 | 3424 | 3425 | 3426 | 3427 | 3428 | 3429 | 3430 | 3431 | 3432 | Image/换肤.pngImage/换肤.png 3433 | 3434 | 3435 | 3436 | 49 3437 | 49 3438 | 3439 | 3440 | 3441 | false 3442 | 3443 | 3444 | false 3445 | 3446 | 3447 | false 3448 | 3449 | 3450 | false 3451 | 3452 | 3453 | true 3454 | 3455 | 3456 | 3457 | 3458 | 3459 | 3460 | 3461 | 0 3462 | 0 3463 | 1250 3464 | 200 3465 | 3466 | 3467 | 3468 | image: url(./Image/title.png); 3469 | 3470 | 3471 | 3472 | 3473 | 3474 | 3475 | 3476 | 3477 | 3478 | 3479 | 3480 | 3481 | -------------------------------------------------------------------------------- /look over.txt: -------------------------------------------------------------------------------- 1 | 由于上传Github时,不支持上传中文命名的文件,本项目所需要的图片文件请到下面的网址下载,给您造成了不便,十分抱歉 2 | https://wwx.lanzoux.com/b01boa0eb 3 | 个人博客:https://www.syjun.vip 4 | --------------------------------------------------------------------------------