python实现音乐下载器

时间:2021-08-16 05:40:18

本文实例为大家分享了python音乐下载器的具体代码,供大家参考,具体内容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import requests
import urllib
import json
from tkinter import *
import tkinter.messagebox
from tkinter.filedialog import askdirectory
 
class QQMusic():
  def __init__(self):
    self.interface = Tk()
    self.interface.title('QQ音乐下载器')
    self.SavePath = 'C:/Users'
    self.entry = None
    self.label = None
  def DownloadMusic(self):
    res1 = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w='+self.entry.get())
    jm1 = json.loads(res1.text.strip('callback()[]'))['data']['song']['list'][0]
 
    mids=jm1['media_mid']
    songmids=jm1['songmid']
    songnames=jm1['songname']
    singers=jm1['singer'][0]['name']
 
    res2 = requests.get('https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&\
    jsonpCallback=MusicJsonCallback&cid=205361747&songmid='+songmids+'&filename=C400'+mids+'.m4a&guid=6612300644')
    jm2 = json.loads(res2.text)
    vkey = jm2['data']['items'][0]['vkey']
    srcs='http://dl.stream.qqmusic.qq.com/C400'+mids+'.m4a?vkey='+vkey+'&guid=6612300644&uin=0&fromtag=66'
    try:
      urllib.request.urlretrieve(srcs,self.SavePath+'/'+songnames+'-'+singers+'.mp3')#.m4a
      tkinter.messagebox.showinfo('完成','歌曲下载成功\n保存在'+self.SavePath)
    except:
      tkinter.messagebox.showerror('错误','下载出错,请重试!')
  def ChangePath(self):
    self.SavePath = askdirectory()
    self.label["text"] = self.SavePath
  def Run(self):
    button = Button(self.interface,text='下载歌曲',command = self.DownloadMusic)
    button.grid(row=0,column=1,padx=3,pady=2)
    self.entry = Entry(self.interface,width=30)
    self.entry.grid(row=0,column=0,padx=3,pady=2)
    button1 = Button(self.interface,text='保存位置',command = self.ChangePath)
    button1.grid(row=1,column=1,padx=3,pady=2)
    self.label = Label(self.interface,text=self.SavePath)
    self.label.grid(row=1,column=0,padx=3,pady=2)
     
QQ = QQMusic()
QQ.Run()

可以实现音乐的快速制定路径下载。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/Lingdongtianxia/article/details/79835056