mirror of
https://github.com/letian1650/N3RD.git
synced 2025-01-25 04:05:17 +08:00
53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
|
import requests
|
||
|
import execjs
|
||
|
from urllib.parse import quote
|
||
|
import json
|
||
|
import re
|
||
|
|
||
|
|
||
|
class qqmusic:
|
||
|
def __init__(self, url):
|
||
|
self.url = url
|
||
|
self.vid = ""
|
||
|
self.headers = {
|
||
|
"Content-Type": "application/x-www-form-urlencoded",
|
||
|
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36¬"
|
||
|
}
|
||
|
self.js = execjs.compile(open("./js/qqmusic.js").read())
|
||
|
self.get_vid()
|
||
|
|
||
|
def get_vid(self):
|
||
|
res = requests.get(self.url).text
|
||
|
vid = re.findall('"songmid":"(.*?)",', res)[0]
|
||
|
self.vid = vid
|
||
|
|
||
|
def get_data(self):
|
||
|
return json.dumps({"req": {"module": "CDN.SrfCdnDispatchServer", "method": "GetCdnDispatch",
|
||
|
"param": {"guid": "12345678", "calltype": 0, "userip": ""}},
|
||
|
"req_0": {"module": "vkey.GetVkeyServer", "method": "CgiGetVkey",
|
||
|
"param": {"guid": "12345678", "songmid": [self.vid], "songtype": [0],
|
||
|
"loginflag": 1, "platform": "20"}},
|
||
|
"comm": {"format": "json", "ct": 24, "cv": 0}})
|
||
|
|
||
|
def join_url_params(self):
|
||
|
params = {
|
||
|
"sign": self.js.call("getSign", self.get_data()),
|
||
|
# "format": "json",
|
||
|
# "inCharset": "utf8",
|
||
|
# "outCharset": "utf-8",
|
||
|
# "notice": "0",
|
||
|
# "platform": "yqq.json",
|
||
|
# "needNewCode": "0",
|
||
|
"data": quote(str(self.get_data()))
|
||
|
}
|
||
|
return f'https://u.y.qq.com/cgi-bin/musics.fcg?sign={params["sign"]}&data={params["data"]}'
|
||
|
|
||
|
def start(self):
|
||
|
res = requests.get(self.join_url_params())
|
||
|
print(res.text)
|
||
|
return res.json()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
qqmusic().start()
|