音乐下载器
音乐下载器是一款基于Python开发的简单易用应用程序。该应用采用PyQt5图形界面库开发,具有直观的用户界面和丰富的功能。
主要特点
-
搜索音乐:用户可以通过输入歌曲名称,在应用中进行音乐搜索。搜索结果将以表格形式呈现,包括歌曲的ID、标题、歌手、封面图片和下载按钮。
-
显示搜索结果:搜索结果以表格的形式展示,便于用户浏览和选择。每行的封面图片和下载按钮使得用户可以更直观地了解和操作搜索到的歌曲。
-
下载音乐:用户可以点击下载按钮,将所选歌曲以MP3文件的形式保存到本地。下载过程会在后台进行,不会影响用户继续搜索和操作其他歌曲。
-
快速响应:应用程序采用多线程处理网络请求和文件下载,确保用户能够快速获取搜索结果和下载音乐,提供良好的用户体验。
注意事项
-
请确保您的计算机已经安装了PyQt5库和requests库。
-
下载的音乐文件将保存在根目录下的
PastKing
文件夹中,请确保该文件夹存在或者有写入权限。 -
本程序已用过
pyinstaller
打包,非二次开发双击即可启动!
拓展
本程序的音乐源取自某平台,理论上同类型平台都可以直接替换使用。
部分代码
def search_music(self):
keyword = self.search_input.text()
if keyword:
self.worker = Worker(keyword)
self.worker.result_received.connect(self.show_search_results)
self.worker.start()
def show_search_results(self, result):
self.result_table.setRowCount(0) # 清空表格内容
if result and 'data' in result and len(result['data']) > 0:
for song in result['data']:
row_position = self.result_table.rowCount()
self.result_table.insertRow(row_position)
# 显示歌曲信息
self.result_table.setItem(row_position, 0, QTableWidgetItem(str(song['songid'])))
self.result_table.setItem(row_position, 1, QTableWidgetItem(song['title']))
self.result_table.setItem(row_position, 2, QTableWidgetItem(song['author']))
# 显示封面
pixmap = self.get_cover_image(song['pic'])
label_cover = QLabel(self)
label_cover.setPixmap(pixmap)
label_cover.setAlignment(Qt.AlignCenter)
self.result_table.setCellWidget(row_position, 3, label_cover)
# 下载按钮
download_button = QPushButton('下载', self)
download_button.clicked.connect(lambda _, s=song: self.download_music(s['url'], f"{s['title']}-{s['author']}-{self.get_timestamp()}"))
self.result_table.setCellWidget(row_position, 4, download_button)
下载
关注公众号回复“240118”,即可获得程序和源码!