源码,全部功能说明:https://github.com/MCQTSS/MCQTSS_QQMusic
代码仅用于学习交流!
最近观察QQ音乐网页时发现Sign算法再次更新(开头由zzb变成了zzc)所以就有了这篇文章
开头不卖关子,只需要将原来的var o = ventor(147).default;换成var o = ventor(350).default;即可解决
这次更新似乎修改了sign算法的函数位置以及新的API域名u6.y.qq.com
最后是闲的没事新增的但还没有上传到项目中的新搜索代码:
def search_music_2(self, name, limit=20):
"""
搜索歌曲
本函数使用前请设置Cookie,否则不会返回结果
:param name: 音乐名
:param limit: 搜索页数
:return:
"""
data = json.dumps({"comm": {"cv": 4747474, "ct": 24, "format": "json", "inCharset": "utf-8",
"outCharset": "utf-8", "notice": 0, "platform": "yqq.json", "needNewCode": 1,
"uin": ''.join(random.sample(string.digits, 10))},
"req_0": {"method": "DoSearchForQQMusicDesktop", "module": "music.search.SearchCgiService",
"param": {"remoteplace": "txt.yqq.top",
"searchid": "".join(random.sample(string.digits + string.digits, 17)),
"search_type": 0, "query": name, "page_num": 1, "num_per_page": limit}}},
ensure_ascii=False).encode('utf-8')
return requests.post(
url='https://u6.y.qq.com/cgi-bin/musics.fcg?_={}&sign={}'.format(
int(round(time.time() * 1000)), self.get_sign(data.decode('utf8'))),
headers={
'Referer': 'https://y.qq.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',
'cookie':self._cookies},
data=data).json()['req_0']['data']['body']['song']['list']
注意,使用前请使用set_cookie函数设置Cookie才可使用,否则会因为无返回结果导致报错