免费下载QQ音乐付费歌曲

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/apollo_miracle/article/details/84852254

1 下载单个歌曲

1.1 找到符合要求的歌曲

  • 打开QQ音乐官方网站:https://y.qq.com/
  • 找到符合要求的歌曲(点击歌曲下载)

以上两种歌曲不符合本次下载的要求(第一种只需要下载QQ音乐客户端即可下载,第二种下载难度太大)

这种歌曲是我们本次下载的对象(以“回忆总想哭”为例)

1.2 下载歌曲

  • 首先打开播放列表

  • 右击打开开发者工具(勾选Preserve log选项)

  • 刷新网页(查找Type为media的资源,寻找歌曲资源)

  • 点击打开,复制歌曲url

  • 粘贴到搜索框,如图所示

点击最右侧那三个点就可以免费下载了,不过这样做太low了,完全发挥不出来我们程序员的作用嘛

1.3 使用程序进行下载

import requests

# 歌曲url
url = "http://124.203.224.158/amobile.music.tc.qq.com/C400001F3eum3FtG1a.m4a?guid=7208009084&vkey=370981D5164290484F6E757918A40C605492607BDB1A1399C38A3F89162FC0AA9011DC04C4B68992627D12B16EF243AAA92F8C53243C33B5&uin=0&fromtag=66"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
}
# 发送请求,获取响应
resp = requests.get(url, headers=headers)
# 保存文件
with open("a.m4a", "wb") as f:
    f.write(resp.content)
# 下载结束
print("download over!")

1.4 分析歌曲url参数的组成

http://124.203.224.158/amobile.music.tc.qq.com/C400001F3eum3FtG1a.m4a?guid=7208009084&vkey=370981D5164290484F6E757918A40C605492607BDB1A1399C38A3F89162FC0AA9011DC04C4B68992627D12B16EF243AAA92F8C53243C33B5&uin=0&fromtag=66

guid + vkey + uin + fromtog

分析可知(或者用以上方法再查找另一首歌的url做对比):uin 和 fromtog 是固定不变的,所以我们只需要找到 guid 和 vkey就可以了。

另外,C400001F3eum3FtG1a可能是歌曲唯一的代号,相当于歌名。

2 查找guid、vkey

  • 在搜索框输入:C400001F3eum3FtG1a,查找相关资源

  • 点击资源

  • 点击Headers,查找请求url(都是url编码,看不懂)

  • 将编码url进行解码

  • 编写程序查看此url的响应结果
import requests

# 请求url
url = 'https://u.y.qq.com/cgi-bin/musicu.fcg?callback=getplaysongvkey8869238009488773&g_tk=5381&jsonpCallback=getplaysongvkey8869238009488773&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&data={"req":{"module":"CDN.SrfCdnDispatchServer","method":"GetCdnDispatch","param":{"guid":"7208009084","calltype":0,"userip":""}},"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"7208009084","songmid":["001F3eum3FtG1a"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}},"comm":{"uin":0,"format":"json","ct":20,"cv":0}}'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
}
# 发送请求,获取响应
resp = requests.get(url, headers=headers)
# 输出结果
ret = resp.content.decode()
print(ret)
# 输出结果
getplaysongvkey8869238009488773({"req":{"data":{"expiration":86400,"freeflowsip":["http://211.161.127.16/amobile.music.tc.qq.com/","http://211.161.127.17/amobile.music.tc.qq.com/","http://211.161.127.18/amobile.music.tc.qq.com/"],"keepalivefile":"C400004TsFuW2mZbRR.m4a?guid=7208009084&vkey=653BC452C206689968B6A1E4C63B904869E88BEB510A5F8AC3762D511B030DEC0DA7F17AA229B2B6CC41B35DDE030AFEB7CF7CF075F25E7F&uin=0&fromtag=3","msg":"ok","retcode":0,"servercheck":"845f5badc58117c886f3d9442435e920","sip":["http://dl.stream.qqmusic.qq.com/","http://isure.stream.qqmusic.qq.com/","http://211.161.127.16/amobile.music.tc.qq.com/","http://211.161.127.17/amobile.music.tc.qq.com/","http://211.161.127.18/amobile.music.tc.qq.com/"],"testfile2g":"C400003mAan70zUy5O.m4a?guid=7208009084&vkey=5F17E6EA5B8608A3BF5356BD0F060C3380F05D95864F3EC77750A465ED108B122D82D206FA6F705D8DB6CABF81B5614A747603AF020BD2B5&uin=0&fromtag=3","testfilewifi":"C400003mAan70zUy5O.m4a?guid=7208009084&vkey=5F17E6EA5B8608A3BF5356BD0F060C3380F05D95864F3EC77750A465ED108B122D82D206FA6F705D8DB6CABF81B5614A747603AF020BD2B5&uin=0&fromtag=3","uin":"","userip":"175.188.159.212","vkey":"F1FB250CAF94F85342673F7E9C5A0386CA9A87652F8612939A3D4F695F1448217464EE8CE28DD6A2414288984D9A846A76B4A4F1B03F5340"},"code":0},"req_0":{"data":{"expiration":80400,"login_key":"","midurlinfo":[{"common_downfromtag":0,"errtype":"","filename":"C400001F3eum3FtG1a.m4a","flowfromtag":"","flowurl":"","hisbuy":0,"hisdown":0,"isbuy":0,"isonly":0,"onecan":0,"opi128kurl":"","opi192koggurl":"","opi192kurl":"","opi48kurl":"","opi96kurl":"","opiflackurl":"","p2pfromtag":0,"pdl":0,"pneed":0,"pneedbuy":0,"premain":0,"purl":"C400001F3eum3FtG1a.m4a?guid=7208009084&vkey=4A3263FA0D9754C07FF47F81D88E0B656E2041664EFC9F0DD1763E09694FAFCE2622B8C27D14E69D99FFA9C422CC9381559C1D58F168F5D1&uin=0&fromtag=66","qmdlfromtag":0,"result":0,"songmid":"001F3eum3FtG1a","tips":"","uiAlert":0,"vip_downfromtag":0,"vkey":"4A3263FA0D9754C07FF47F81D88E0B656E2041664EFC9F0DD1763E09694FAFCE2622B8C27D14E69D99FFA9C422CC9381559C1D58F168F5D1","wififromtag":"","wifiurl":""}],"msg":"","retcode":0,"servercheck":"845f5badc58117c886f3d9442435e920","sip":["http://dl.stream.qqmusic.qq.com/","http://isure.stream.qqmusic.qq.com/"],"testfile2g":"C400003mAan70zUy5O.m4a?guid=7208009084&vkey=3A587EE531AA3DE4D8473F645DC7D9C46A38036EC82894CB1DDBEFB723D409467ADC22FD0DAD0823448518CCD474AAFD4ABD75061047C4A8&uin=&fromtag=3","testfilewifi":"C400003mAan70zUy5O.m4a?guid=7208009084&vkey=3A587EE531AA3DE4D8473F645DC7D9C46A38036EC82894CB1DDBEFB723D409467ADC22FD0DAD0823448518CCD474AAFD4ABD75061047C4A8&uin=&fromtag=3","thirdip":["",""],"uin":"","verify_type":0},"code":0},"code":0,"ts":1544080738157})
  •  小括号内的内容可能是一个json字符串(对请求url进行清洗,保证小括号的内容不变,(只保留data参数中的“erq_0”))
https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"7208009084","songmid":["001F3eum3FtG1a"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}}}
  • 再次优化程序,查看输出结果
import json
from pprint import pprint
import requests

# 请求url
url = 'https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"7208009084","songmid":["001F3eum3FtG1a"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}}}'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
}
# 发送请求,获取响应
resp = requests.get(url, headers=headers)
# 对结果进行解码
ret_json = resp.content.decode()
# 转化为字典
ret_dict = json.loads(ret_json)
# 格式化输出
pprint(ret_dict)
{'code': 0,
 'req_0': {'code': 0,
           'data': {'expiration': 80400,
                    'login_key': '',
                    'midurlinfo': [{'common_downfromtag': 0,
                                    'errtype': '',
                                    'filename': 'C400001F3eum3FtG1a.m4a',
                                    'flowfromtag': '',
                                    'flowurl': '',
                                    'hisbuy': 0,
                                    'hisdown': 0,
                                    'isbuy': 0,
                                    'isonly': 0,
                                    'onecan': 0,
                                    'opi128kurl': '',
                                    'opi192koggurl': '',
                                    'opi192kurl': '',
                                    'opi48kurl': '',
                                    'opi96kurl': '',
                                    'opiflackurl': '',
                                    'p2pfromtag': 0,
                                    'pdl': 0,
                                    'pneed': 0,
                                    'pneedbuy': 0,
                                    'premain': 0,
                                    'purl': 'C400001F3eum3FtG1a.m4a?guid=7208009084&vkey=EE5A4A24A881C9242C0BF7571B76333981AE34FF3CE8540D92F40B5C8EACCF0786934DF780BFE1C0790FFA0D4DFAEFCCAF93185A85CA94CB&uin=0&fromtag=66',
                                    'qmdlfromtag': 0,
                                    'result': 0,
                                    'songmid': '001F3eum3FtG1a',
                                    'tips': '',
                                    'uiAlert': 0,
                                    'vip_downfromtag': 0,
                                    'vkey': 'EE5A4A24A881C9242C0BF7571B76333981AE34FF3CE8540D92F40B5C8EACCF0786934DF780BFE1C0790FFA0D4DFAEFCCAF93185A85CA94CB',
                                    'wififromtag': '',
                                    'wifiurl': ''}],
                    'msg': '',
                    'retcode': 0,
                    'servercheck': '845f5badc58117c886f3d9442435e920',
                    'sip': ['http://dl.stream.qqmusic.qq.com/',
                            'http://isure.stream.qqmusic.qq.com/'],
                    'testfile2g': 'C400003mAan70zUy5O.m4a?guid=7208009084&vkey=7B9B1C4C4C822F4A5C402A06EC3EABEE98FE991F49A08F547FD2B14E2895DBACEE8616319F88756B5E6836C5A23A80397DD85A8A45807031&uin=&fromtag=3',
                    'testfilewifi': 'C400003mAan70zUy5O.m4a?guid=7208009084&vkey=7B9B1C4C4C822F4A5C402A06EC3EABEE98FE991F49A08F547FD2B14E2895DBACEE8616319F88756B5E6836C5A23A80397DD85A8A45807031&uin=&fromtag=3',
                    'thirdip': ['', ''],
                    'uin': '',
                    'verify_type': 0}},
 'ts': 1544081581392}
  •  获取purl
# 获取purl
purl = ret_dict["req_0"]["data"]["midurlinfo"][0]["purl"]
print(purl)
# C400001F3eum3FtG1a.m4a?guid=7208009084&vkey=CF16F773FC926BCEC50A2C7C2C985BD0DA7989CB1589F06B9FDABCF6E9C9E048CD202C497D0B62A40A0734711010D3894216F6EDFBABB6B9&uin=0&fromtag=66

将上述两个字符串进行拼接即可获得歌曲url进行下载。

分析请求url参数的组成

https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"7208009084","songmid":["001F3eum3FtG1a"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}}}

"guid":"7208009084","songmid":["001F3eum3FtG1a"]

分析可知:

除了guid 和 songmid 外,其他的是固定不变的,所以我们只需要找到 guid 和 songmid 就可以了。

分析下面的JS代码可知,guid就是一个随机值,所以可以不用管:(只需要查找 songmid 参数)

function _getGuid() {
        if (_guid.length > 0)
            return _guid;
        var e = MUSIC.cookie.get("pgv_pvid");
        if (e && e.length > 0)
            return _guid = e;
        var t = (new Date).getUTCMilliseconds();
        return _guid = Math.round(2147483647 * Math.random()) * t % 1e10,
        document.cookie = "pgv_pvid=" + _guid + "; Expires=Sun, 18 Jan 2038 00:00:00 GMT; PATH=/; DOMAIN=qq.com;",
        _guid
    }

3 查找songmid参数

  • 打开歌曲所对应的网页,发现歌曲url中带有songmid参数

  • 可以将songmid参数拷贝下来进行下载(此方法只能下载一首歌曲)
# coding:utf-8
import json
from pprint import pprint
import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
    "referer": "https://y.qq.com/n/yqq/playlist/5836559239.html"
}

# 歌曲songmid参数
songmid = "001F3eum3FtG1a"
# 拼接歌曲music_url
music_url = 'https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"7208009084","songmid":["' + songmid + '"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}}}'
# 发送请求,获取响应
resp = requests.get(music_url, headers=headers)
# 对结果进行解码
ret = resp.content.decode()
# 进json字符串转换为字典
ret_dict = json.loads(ret)
# 格式化输出
pprint(ret_dict)
# 提取purl参数
purl = ret_dict["req_0"]["data"]["midurlinfo"][0]["purl"]
# print(purl)

# 拼接url
url = "http://124.203.224.156/amobile.music.tc.qq.com/" + purl
# print(url)
# 再次发送下载歌曲的url,获取响应
resp = requests.get(url, headers=headers)
# 保存数据
with open("a.m4a", "wb") as f:
    f.write(resp.content)
# 下载结束
print("download over!")

如果想下载列表中的所有歌曲呢?

4 下载歌单中所有歌曲

姜玉阳的歌单为例:https://y.qq.com/n/yqq/singer/003UjO1f3dJMRT.html#tab=song&

  • 右击开发者工具查找相关资源

  • 搜索关键字:001F3eum3FtG1a

  • 点击Headers,查找请求url

  • 编写程序查看此url的响应结果
import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
    "referer": "https://y.qq.com/n/yqq/playlist/5836559239.html"
}

# 获取songmid 的 url
get_songmid_url = "https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg?g_tk=5381&jsonpCallback=MusicJsonCallbacksinger_track&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&singermid=003UjO1f3dJMRT&order=listen&begin=0&num=30&songstatus=1"
# 发送请求,获取响应
resp = requests.get(get_songmid_url, headers=headers)

# 将获取结果进行解码
url_str = resp.content.decode()
print(url_str)
# 输出结果
MusicJsonCallbacksinger_track({"code":0,"data":{"list":[{"Flisten_count1":0,"Fupload_time":"2015-07-13 16:13:07","index":1,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":1039931,"albummid":"004Atrnp3U2NrA","albumname":"回忆总想哭","alertid":2,"belongCD":1,"cdIdx":0,"interval":292,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":76988,"tryend":124737,"trysize":0},"rate":31,"singer":[{"id":32370,"mid":"003J0W662mlmyT","name":"南宫嘉骏"},{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4683854,"size320":11709330,"size5_1":0,"sizeape":32071218,"sizeflac":31881928,"sizeogg":6926118,"songid":102871889,"songmid":"001F3eum3FtG1a","songname":"回忆总想哭","songorig":"回忆总想哭","songtype":0,"strMediaMid":"001F3eum3FtG1a","stream":13,"switch":17413891,"type":0,"vid":"c00242xfgxm"},"playurl":"","price":320,"vid":{"Fmv_id":"1366777","Fstatus":"1","Fvid":"c00242xfgxm"}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":2,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":4,"cdIdx":0,"interval":255,"isonly":1,"label":"4611686153727246337","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4095368,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":798363,"songmid":"004DmvlX3mwkkL","songname":"忘不掉的伤","songorig":"忘不掉的伤","songtype":0,"strMediaMid":"002r6Rkf3v1wCh","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2011-12-15 13:10:19","index":3,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":90018,"albummid":"0013JCBu023tkL","albumname":"醉寂寞 金喇叭","alertid":2,"belongCD":3,"cdIdx":0,"interval":210,"isonly":1,"label":"4611686153727246337","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":7,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3362796,"size320":8403175,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":4656895,"songid":1054896,"songmid":"000KTOoS3dOn3h","songname":"秋风落叶","songorig":"秋风落叶","songtype":0,"strMediaMid":"000KTOoS3dOn3h","stream":13,"switch":17413891,"type":0,"vid":"m001674w3v2"},"playurl":"","price":320,"vid":{"Fmv_id":"334139","Fstatus":"1","Fvid":"m001674w3v2"}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":4,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":1,"cdIdx":0,"interval":272,"isonly":1,"label":"4611686018431582209","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4353250,"size320":10882818,"size5_1":0,"sizeape":31904177,"sizeflac":32021216,"sizeogg":6490807,"songid":798365,"songmid":"002iKSnv1OXzty","songname":"丢了幸福的猪","songorig":"丢了幸福的猪","songtype":0,"strMediaMid":"001O0DsC0kw2Js","stream":13,"switch":17413891,"type":0,"vid":"c00132monap"},"playurl":"","price":320,"vid":{"Fmv_id":"39581","Fstatus":"1","Fvid":"c00132monap"}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":5,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":10,"cdIdx":0,"interval":318,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":5092616,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":798367,"songmid":"001qLrWJ2JEIrK","songname":"痛彻心扉","songorig":"痛彻心扉","songtype":0,"strMediaMid":"001EYLvU4C8NoU","stream":13,"switch":17413891,"type":0,"vid":"d0016xyxhau"},"playurl":"","price":320,"vid":{"Fmv_id":"333211","Fstatus":"1","Fvid":"d0016xyxhau"}},{"Flisten_count1":0,"Fupload_time":"2018-04-20 16:02:17","index":6,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":4022248,"albummid":"002SCR5A1nxz6Z","albumname":"回忆总想哭","alertid":2,"belongCD":1,"cdIdx":0,"interval":291,"isonly":0,"label":"0","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4657521,"size320":11643500,"size5_1":0,"sizeape":61091133,"sizeflac":61105881,"sizeogg":6990325,"songid":213773275,"songmid":"000TGzVT0z0hUl","songname":"回忆总想哭","songorig":"回忆总想哭","songtype":0,"strMediaMid":"000TGzVT0z0hUl","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2008-11-24 14:54:14","index":7,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":3,"cdIdx":0,"interval":245,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":23,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3921079,"size320":9802391,"size5_1":0,"sizeape":0,"sizeflac":28388645,"sizeogg":5909185,"songid":454174,"songmid":"002dnVp321QDcn","songname":"爱情惹的祸","songorig":"爱情惹的祸","songtype":0,"strMediaMid":"0016r5Br01yT2C","stream":13,"switch":17413891,"type":0,"vid":"9Km5kDjHeqA"},"playurl":"","price":320,"vid":{"Fmv_id":"11931","Fstatus":"1","Fvid":"9Km5kDjHeqA"}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":8,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":6,"cdIdx":0,"interval":279,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4479058,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":798366,"songmid":"001Glyfr2ciszP","songname":"我想找个女朋友","songorig":"我想找个女朋友","songtype":0,"strMediaMid":"0009xM8e3SbRFL","stream":13,"switch":17413891,"type":0,"vid":"l0022ncwbq1"},"playurl":"","price":320,"vid":{"Fmv_id":"1055731","Fstatus":"1","Fvid":"l0022ncwbq1"}},{"Flisten_count1":0,"Fupload_time":"2012-10-30 18:55:55","index":9,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":8623,"albummid":"001ZaCQY2OxVMg","albumname":"空","alertid":2,"belongCD":5,"cdIdx":0,"interval":221,"isonly":1,"label":"4611686018431582209","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3539470,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":2451149,"songmid":"002jI9Hz2QHtxa","songname":"七滴眼泪","songorig":"七滴眼泪","songtype":0,"strMediaMid":"002f10ml1SsYgi","stream":13,"switch":17413891,"type":0,"vid":"n0014dg8kgw"},"playurl":"","price":320,"vid":{"Fmv_id":"285049","Fstatus":"1","Fvid":"n0014dg8kgw"}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":10,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":9,"cdIdx":0,"interval":311,"isonly":1,"label":"4611686018435776513","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4987293,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":798372,"songmid":"00499Ryi0P4s0q","songname":"刻骨的温柔","songorig":"刻骨的温柔","songtype":0,"strMediaMid":"001ZHDDf2eOvbn","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2012-08-13 16:09:49","index":11,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":1135976,"albummid":"001BucVY1IUWLI","albumname":"回忆里的你","alertid":2,"belongCD":1,"cdIdx":0,"interval":335,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":7,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":5361364,"size320":13403108,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":7202933,"songid":1757945,"songmid":"0023PSYD27EeDj","songname":"回忆里的你","songorig":"回忆里的你","songtype":0,"strMediaMid":"000SC0u63WGPEk","stream":13,"switch":17413891,"type":0,"vid":"y0016fw2qda"},"playurl":"","price":320,"vid":{"Fmv_id":"318601","Fstatus":"1","Fvid":"y0016fw2qda"}},{"Flisten_count1":0,"Fupload_time":"2016-05-20 19:46:46","index":12,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":1039931,"albummid":"004Atrnp3U2NrA","albumname":"回忆总想哭","alertid":2,"belongCD":2,"cdIdx":0,"interval":412,"isonly":0,"label":"4611703473174478849","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":32370,"mid":"003J0W662mlmyT","name":"南宫嘉骏"},{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":6601879,"size320":16504377,"size5_1":0,"sizeape":53974853,"sizeflac":53761416,"sizeogg":10233544,"songid":106528359,"songmid":"000ETJqF1FzzGa","songname":"回忆总想哭 (DJ版)","songorig":"回忆总想哭","songtype":0,"strMediaMid":"000ETJqF1FzzGa","stream":13,"switch":17413891,"type":0,"vid":"f002500yzsy"},"playurl":"","price":320,"vid":{"Fmv_id":"1381069","Fstatus":"1","Fvid":"f002500yzsy"}},{"Flisten_count1":0,"Fupload_time":"2012-12-20 11:22:48","index":13,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":267415,"albummid":"003OfxKx17jBH9","albumname":"圣元音乐疯1 - 爱你需要什么理由","alertid":11,"belongCD":4,"cdIdx":0,"interval":258,"isonly":0,"label":"4611686153718857729","msgid":0,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":0,"payinfo":0,"payplay":0,"paytrackmouth":0,"paytrackprice":0,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":7,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4139693,"size320":10348895,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":5928086,"songid":3230648,"songmid":"002GctIc0oTMwC","songname":"午夜唱情歌","songorig":"午夜唱情歌","songtype":0,"strMediaMid":"00226t1113Ukp1","stream":13,"switch":81683,"type":0,"vid":"m00164bd0tm"},"playurl":"","price":320,"vid":{"Fmv_id":"342480","Fstatus":"1","Fvid":"m00164bd0tm"}},{"Flisten_count1":0,"Fupload_time":"2016-11-25 11:42:06","index":14,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":296093,"albummid":"000z4Gvh1evhZh","albumname":"DJ阿圣舞曲精选集(四)","alertid":2,"belongCD":20,"cdIdx":1,"interval":412,"isonly":1,"label":"4611686018427387905","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":23,"singer":[{"id":159959,"mid":"000RRU8j2wZDjl","name":"DJ 阿圣"},{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"},{"id":15566,"mid":"002A0cpM0SDJXR","name":"嘉骏"}],"size128":6601885,"size320":16504383,"size5_1":0,"sizeape":0,"sizeflac":53761416,"sizeogg":10181034,"songid":109393831,"songmid":"002uO1qd2kZDdu","songname":"回忆总想哭 (DJ版)","songorig":"回忆总想哭","songtype":0,"strMediaMid":"0027Aflh3m2eou","stream":13,"switch":17409795,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2018-09-21 20:20:30","index":15,"isnew":1,"listenCount":0,"musicData":{"albumdesc":"","albumid":4669688,"albummid":"0015HKyt1SqDP2","albumname":"如果最后不是你","alertid":2,"belongCD":1,"cdIdx":0,"interval":233,"isonly":0,"label":"0","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":23,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3738033,"size320":9344746,"size5_1":0,"sizeape":0,"sizeflac":25129618,"sizeogg":5486980,"songid":217474510,"songmid":"001eWZXM33fHsT","songname":"如果最后不是你","songorig":"如果最后不是你","songtype":0,"strMediaMid":"001eWZXM33fHsT","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2008-09-04 18:08:43","index":16,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":8623,"albummid":"001ZaCQY2OxVMg","albumname":"空","alertid":2,"belongCD":-100,"cdIdx":0,"interval":292,"isonly":1,"label":"4611686018431582209","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4685528,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":440672,"songmid":"003by9Ky2fooiZ","songname":"分手了,就不要再想起我","songorig":"分手了,就不要再想起我","songtype":0,"strMediaMid":"001Z77612tmvjo","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":17,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":11,"belongCD":5,"cdIdx":0,"interval":259,"isonly":0,"label":"4611686153727246337","msgid":0,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":0,"payinfo":0,"payplay":0,"paytrackmouth":0,"paytrackprice":0,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":1,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4161516,"size320":0,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":0,"songid":798373,"songmid":"004XxxLC2Mi4F9","songname":"真实一点","songorig":"真实一点","songtype":0,"strMediaMid":"004XxxLC2Mi4F9","stream":13,"switch":81683,"type":0,"vid":"a0017vjjm5m"},"playurl":"","price":320,"vid":{"Fmv_id":"524347","Fstatus":"1","Fvid":"a0017vjjm5m"}},{"Flisten_count1":0,"Fupload_time":"2013-06-25 22:39:17","index":18,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":138243,"albummid":"003vw1no0RKzBp","albumname":"回到遇见你之前","alertid":11,"belongCD":2,"cdIdx":0,"interval":241,"isonly":0,"label":"4611686153723052033","msgid":0,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":0,"payinfo":0,"payplay":0,"paytrackmouth":0,"paytrackprice":0,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3863826,"size320":9658843,"size5_1":0,"sizeape":28712916,"sizeflac":28826175,"sizeogg":5756374,"songid":4957977,"songmid":"004SAeBr4Oy2JF","songname":"如果我不能够爱你","songorig":"如果我不能够爱你","songtype":0,"strMediaMid":"004SAeBr4Oy2JF","stream":13,"switch":605971,"type":0,"vid":"w0025sb1vbh"},"playurl":"","price":320,"vid":{"Fmv_id":"1410366","Fstatus":"1","Fvid":"w0025sb1vbh"}},{"Flisten_count1":0,"Fupload_time":"2012-05-29 12:51:59","index":19,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":116132,"albummid":"004KoNFp3klqWs","albumname":"我们的爱我不放手","alertid":11,"belongCD":25,"cdIdx":1,"interval":211,"isonly":0,"label":"4611686018431582209","msgid":0,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":0,"payinfo":0,"payplay":0,"paytrackmouth":0,"paytrackprice":0,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":7,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3393307,"size320":8479454,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":4600256,"songid":1432167,"songmid":"004dcsit2t7Bd6","songname":"子时过","songorig":"子时过","songtype":0,"strMediaMid":"004dcsit2t7Bd6","stream":13,"switch":81683,"type":0,"vid":"b0016hnvvdp"},"playurl":"","price":320,"vid":{"Fmv_id":"312497","Fstatus":"1","Fvid":"b0016hnvvdp"}},{"Flisten_count1":0,"Fupload_time":"2016-11-24 16:09:46","index":20,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":649854,"albummid":"000KyCiH0tz25u","albumname":"DJ阿圣舞曲精选集(二)","alertid":2,"belongCD":56,"cdIdx":0,"interval":380,"isonly":1,"label":"4611686018427387905","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":159959,"mid":"000RRU8j2wZDjl","name":"DJ 阿圣"},{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":6091585,"size320":15228591,"size5_1":0,"sizeape":50334130,"sizeflac":50485899,"sizeogg":9297909,"songid":109391360,"songmid":"002dll5c2djYQs","songname":"秋风落叶 (DJ版)","songorig":"秋风落叶","songtype":0,"strMediaMid":"002dll5c2djYQs","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2018-07-04 11:41:11","index":21,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":4110958,"albummid":"000ImZDw023akT","albumname":"离杯","alertid":2,"belongCD":1,"cdIdx":0,"interval":222,"isonly":1,"label":"0","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":3562046,"size320":8904818,"size5_1":0,"sizeape":28273593,"sizeflac":28403831,"sizeogg":5455188,"songid":214274095,"songmid":"003OQz6z2x0Os6","songname":"离杯","songorig":"离杯","songtype":0,"strMediaMid":"003OQz6z2x0Os6","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2016-11-24 14:09:57","index":22,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":1200183,"albummid":"002nLX181n8zww","albumname":"DJ阿圣舞曲精选集(一)","alertid":2,"belongCD":61,"cdIdx":0,"interval":363,"isonly":1,"label":"4611686018427387905","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":159959,"mid":"000RRU8j2wZDjl","name":"DJ 阿圣"},{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":5820751,"size320":14550935,"size5_1":0,"sizeape":48008960,"sizeflac":48011641,"sizeogg":8861271,"songid":109389879,"songmid":"002sBqfi2QMbLY","songname":"丢了幸福的猪 (DJ版)","songorig":"丢了幸福的猪","songtype":0,"strMediaMid":"002sBqfi2QMbLY","stream":13,"switch":17409795,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2012-11-23 17:45:40","index":23,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":193516,"albummid":"001nmnNq15wqDH","albumname":"最后一次相依偎","alertid":2,"belongCD":1,"cdIdx":0,"interval":277,"isonly":1,"label":"4611686018431582209","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4444370,"size320":11110233,"size5_1":0,"sizeape":30594715,"sizeflac":30610390,"sizeogg":6578750,"songid":2476203,"songmid":"001ZDveS4f9yV6","songname":"最后一次相依偎","songorig":"最后一次相依偎","songtype":0,"strMediaMid":"001XmuTa0RSNUB","stream":13,"switch":17413891,"type":0,"vid":"w00161zk4e0"},"playurl":"","price":320,"vid":{"Fmv_id":"313487","Fstatus":"1","Fvid":"w00161zk4e0"}},{"Flisten_count1":0,"Fupload_time":"2013-08-08 14:29:41","index":24,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":434588,"albummid":"003JgAxV2ifZfK","albumname":"单思叹","alertid":2,"belongCD":1,"cdIdx":0,"interval":270,"isonly":1,"label":"4611686018431582209","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4330920,"size320":10827426,"size5_1":0,"sizeape":34043955,"sizeflac":34159810,"sizeogg":6403902,"songid":4990660,"songmid":"003YgjoG0ugkie","songname":"单思叹","songorig":"单思叹","songtype":0,"strMediaMid":"0042l0HR1JdNgO","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2011-02-06 11:57:13","index":25,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":35508,"albummid":"004Maxh31tE7EY","albumname":"丢了幸福的猪","alertid":2,"belongCD":8,"cdIdx":0,"interval":302,"isonly":1,"label":"4611686153727246337","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4833066,"size320":12082359,"size5_1":0,"sizeape":35617834,"sizeflac":35694780,"sizeogg":6891740,"songid":798369,"songmid":"000Gx3jA0pnDdf","songname":"破碎的酒杯","songorig":"破碎的酒杯","songtype":0,"strMediaMid":"0024hxj21mu82t","stream":13,"switch":17413891,"type":0,"vid":"c0016fuep9r"},"playurl":"","price":320,"vid":{"Fmv_id":"315444","Fstatus":"1","Fvid":"c0016fuep9r"}},{"Flisten_count1":0,"Fupload_time":"2012-08-15 16:55:49","index":26,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":8623,"albummid":"001ZaCQY2OxVMg","albumname":"空","alertid":11,"belongCD":0,"cdIdx":0,"interval":347,"isonly":0,"label":"4611686153723052033","msgid":0,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":0,"payinfo":0,"payplay":0,"paytrackmouth":0,"paytrackprice":0,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":7,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":5559047,"size320":13897333,"size5_1":0,"sizeape":0,"sizeflac":0,"sizeogg":7920925,"songid":1767543,"songmid":"003UlvS94XN0R3","songname":"风雪夜","songorig":"风雪夜","songtype":0,"strMediaMid":"000kUbRL1ykINa","stream":13,"switch":81683,"type":0,"vid":"b0016y9l020"},"playurl":"","price":320,"vid":{"Fmv_id":"340786","Fstatus":"1","Fvid":"b0016y9l020"}},{"Flisten_count1":0,"Fupload_time":"2015-09-16 10:37:19","index":27,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":1139914,"albummid":"004QA6tI0y9hzD","albumname":"天空挂念","alertid":2,"belongCD":1,"cdIdx":0,"interval":323,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":5174532,"size320":12935851,"size5_1":0,"sizeape":37617045,"sizeflac":37783757,"sizeogg":7213221,"songid":104225453,"songmid":"002z9Sb23nxifk","songname":"天空挂念","songorig":"天空挂念","songtype":0,"strMediaMid":"002MIRLB3qh8G5","stream":13,"switch":17413891,"type":0,"vid":"f00194oedx3"},"playurl":"","price":320,"vid":{"Fmv_id":"666604","Fstatus":"1","Fvid":"f00194oedx3"}},{"Flisten_count1":0,"Fupload_time":"2018-10-30 19:23:40","index":28,"isnew":1,"listenCount":0,"musicData":{"albumdesc":"","albumid":4887261,"albummid":"004aYHub4NKSOt","albumname":"爱情落幕","alertid":2,"belongCD":1,"cdIdx":0,"interval":285,"isonly":0,"label":"0","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":23,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"},{"id":2151765,"mid":"000V34I706GpLn","name":"汤倩"}],"size128":4568511,"size320":11420952,"size5_1":0,"sizeape":0,"sizeflac":33138341,"sizeogg":6467558,"songid":218884007,"songmid":"000aiu2A2170cj","songname":"爱情落幕","songorig":"爱情落幕","songtype":0,"strMediaMid":"000aiu2A2170cj","stream":13,"switch":17413891,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}},{"Flisten_count1":0,"Fupload_time":"2015-08-05 15:42:25","index":29,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":1054822,"albummid":"003WgZpc3s9h0I","albumname":"夜幕缀","alertid":2,"belongCD":1,"cdIdx":0,"interval":258,"isonly":1,"label":"4611686153723052033","msgid":14,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":1,"payinfo":1,"payplay":0,"paytrackmouth":1,"paytrackprice":200,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4144259,"size320":10360357,"size5_1":0,"sizeape":29516249,"sizeflac":29647662,"sizeogg":5933393,"songid":103032253,"songmid":"0031SWbB0J9JBV","songname":"夜幕缀","songorig":"夜幕缀","songtype":0,"strMediaMid":"003SyrdB1iblNb","stream":13,"switch":17413891,"type":0,"vid":"c0025r70s5l"},"playurl":"","price":320,"vid":{"Fmv_id":"1403735","Fstatus":"1","Fvid":"c0025r70s5l"}},{"Flisten_count1":0,"Fupload_time":"2014-10-16 10:57:16","index":30,"isnew":0,"listenCount":0,"musicData":{"albumdesc":"","albumid":138243,"albummid":"003vw1no0RKzBp","albumname":"回到遇见你之前","alertid":11,"belongCD":3,"cdIdx":0,"interval":295,"isonly":0,"label":"4611686018431582209","msgid":0,"pay":{"payalbum":0,"payalbumprice":0,"paydownload":0,"payinfo":0,"payplay":0,"paytrackmouth":0,"paytrackprice":0,"timefree":0},"preview":{"trybegin":0,"tryend":0,"trysize":0},"rate":31,"singer":[{"id":6990,"mid":"003UjO1f3dJMRT","name":"姜玉阳"}],"size128":4727328,"size320":11818006,"size5_1":0,"sizeape":36491517,"sizeflac":36612541,"sizeogg":7137979,"songid":8159539,"songmid":"000WkSi20buikt","songname":"回到遇见你之前","songorig":"回到遇见你之前","songtype":0,"strMediaMid":"003sxkam237A8c","stream":13,"switch":81683,"type":0,"vid":""},"playurl":"","price":320,"vid":{"Fstatus":null}}],"singer_id":"6990","singer_mid":"003UjO1f3dJMRT","singer_name":"姜玉阳","total":92},"message":"succ","subcode":0})
  •  小括号内的内容可能是一个json字符串(对请求url进行清洗,保证小括号的内容不变)
https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg?singermid=003UjO1f3dJMRT&order=listen&begin=0&num=30&songstatus=1
  • 再次优化程序,查看输出结果(结果太长,不再展示)
import json
from pprint import pprint

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
    "referer": "https://y.qq.com/n/yqq/playlist/5836559239.html"
}

# 获取songmid 的 url
get_songmid_url = "https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg?singermid=003UjO1f3dJMRT&order=listen&begin=0&num=30&songstatus=1"
# 发送请求,获取响应
resp = requests.get(get_songmid_url, headers=headers)

# 将获取结果进行解码
url_str = resp.content.decode()
print(url_str)

# 转化为字典格式
dict_str = json.loads(url_str)
# 格式化输出
pprint(dict_str)
  •  获取songmid、songname

# 获取歌单列表
song_list = dict_str["data"]["list"]
# pprint(song_list)

# 遍历歌单获取songmid、songname
name_mid_list = []
for name_mid in song_list:
    name_mid_dict = {}
    name_mid_dict["song_name"] = name_mid["musicData"]["songname"]
    name_mid_dict["song_mid"] = name_mid["musicData"]["songmid"]
    name_mid_list.append(name_mid_dict)
pprint(name_mid_list)
# 输出结果
[{'song_mid': '001F3eum3FtG1a', 'song_name': '回忆总想哭'},
 {'song_mid': '004DmvlX3mwkkL', 'song_name': '忘不掉的伤'},
 {'song_mid': '000KTOoS3dOn3h', 'song_name': '秋风落叶'},
 {'song_mid': '002iKSnv1OXzty', 'song_name': '丢了幸福的猪'},
 {'song_mid': '001qLrWJ2JEIrK', 'song_name': '痛彻心扉'},
 {'song_mid': '000TGzVT0z0hUl', 'song_name': '回忆总想哭'},
 {'song_mid': '002dnVp321QDcn', 'song_name': '爱情惹的祸'},
 {'song_mid': '001Glyfr2ciszP', 'song_name': '我想找个女朋友'},
 {'song_mid': '002jI9Hz2QHtxa', 'song_name': '七滴眼泪'},
 {'song_mid': '00499Ryi0P4s0q', 'song_name': '刻骨的温柔'},
 {'song_mid': '0023PSYD27EeDj', 'song_name': '回忆里的你'},
 {'song_mid': '000ETJqF1FzzGa', 'song_name': '回忆总想哭 (DJ版)'},
 {'song_mid': '002GctIc0oTMwC', 'song_name': '午夜唱情歌'},
 {'song_mid': '002uO1qd2kZDdu', 'song_name': '回忆总想哭 (DJ版)'},
 {'song_mid': '001eWZXM33fHsT', 'song_name': '如果最后不是你'},
 {'song_mid': '003by9Ky2fooiZ', 'song_name': '分手了,就不要再想起我'},
 {'song_mid': '004XxxLC2Mi4F9', 'song_name': '真实一点'},
 {'song_mid': '004SAeBr4Oy2JF', 'song_name': '如果我不能够爱你'},
 {'song_mid': '004dcsit2t7Bd6', 'song_name': '子时过'},
 {'song_mid': '002dll5c2djYQs', 'song_name': '秋风落叶 (DJ版)'},
 {'song_mid': '003OQz6z2x0Os6', 'song_name': '离杯'},
 {'song_mid': '002sBqfi2QMbLY', 'song_name': '丢了幸福的猪 (DJ版)'},
 {'song_mid': '001ZDveS4f9yV6', 'song_name': '最后一次相依偎'},
 {'song_mid': '003YgjoG0ugkie', 'song_name': '单思叹'},
 {'song_mid': '000Gx3jA0pnDdf', 'song_name': '破碎的酒杯'},
 {'song_mid': '003UlvS94XN0R3', 'song_name': '风雪夜'},
 {'song_mid': '002z9Sb23nxifk', 'song_name': '天空挂念'},
 {'song_mid': '000aiu2A2170cj', 'song_name': '爱情落幕'},
 {'song_mid': '0031SWbB0J9JBV', 'song_name': '夜幕缀'},
 {'song_mid': '000WkSi20buikt', 'song_name': '回到遇见你之前'}]

将上述列表遍历拼接,即可获得歌曲url进行下载。

5 面向对象进行编程

import json

import requests


class QQMusic(object):
    def __init__(self):
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
            "referer": "https://y.qq.com/n/yqq/playlist/5836559239.html"
        }
        # 获取songmid 的 url
        self.get_songmid_url = "https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg?singermid=003UjO1f3dJMRT&order=listen&begin=0&num=30&songstatus=1"
        # 获取purl 的 url
        self.purl_temp = 'https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"7208009084","songmid":["%s"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}}}'
        # 获取歌曲 的 url
        self.url_temp = "http://124.203.224.158/amobile.music.tc.qq.com/"

    def get_songmid(self):
        """获取songmid参数"""
        # 发送请求,获取响应
        resp = requests.get(self.get_songmid_url, headers=self.headers)
        # 将获取结果进行解码
        url_str = resp.content.decode()
        # 转化为字典格式
        dict_str = json.loads(url_str)
        # 获取数据信息列表
        song_list = dict_str["data"]["list"]
        # 遍历列表获取songmid、songname
        name_mid_list = []
        for name_mid in song_list:
            name_mid_dict = {}
            name_mid_dict["song_name"] = name_mid["musicData"]["songname"]
            name_mid_dict["song_mid"] = name_mid["musicData"]["songmid"]
            name_mid_list.append(name_mid_dict)
        return name_mid_list

    def get_purl(self, songmid):
        """获取purl参数"""
        # 拼接purl
        purl = self.purl_temp % songmid
        # 发送请求,获取响应
        resp = requests.get(purl, headers=self.headers)
        # 对结果进行解码
        ret_json = resp.content.decode()
        # 转化为字典
        ret_dict = json.loads(ret_json)
        # 获取purl
        purl = ret_dict["req_0"]["data"]["midurlinfo"][0]["purl"]
        # 返回数据
        return purl

    def parse_url(self, purl):
        """下载数据"""
        # 拼接url
        url = self.url_temp + purl
        # 发送请求,获取响应
        resp = requests.get(url, headers=self.headers)
        # 返回数据
        return resp.content

    def save_music(self, songname, content):
        """保存歌曲"""
        with open("./music/" + songname + ".m4a", "wb") as f:
            f.write(content)
        # 下载结束
        print(songname, "download over!")

    def run(self):  # 实现主要逻辑
        # 1.获取songmid、songname等参数
        name_mid_list = self.get_songmid()
        # 2.遍历获取purl
        for name_mid in name_mid_list:
            songname = name_mid["song_name"]
            songmid = name_mid["song_mid"]
            purl = self.get_purl(songmid)
            # 3.发送请求,获取响应
            content = self.parse_url(purl)
            # 4.保存数据
            self.save_music(songname, content)


if __name__ == '__main__':
    music = QQMusic()
    music.run()

点击查看升级版代码 ☞ https://blog.csdn.net/apollo_miracle/article/details/84865350

猜你喜欢

转载自blog.csdn.net/apollo_miracle/article/details/84852254
今日推荐