QQ音乐的歌曲真实地址解析

article/2025/11/6 23:15:32

以QQ音乐的单曲页面URL https://y.qq.com/n/yqq/song/000YU69H3N55rZ.html 为例,说明如何解析得到真实的音频地址。

打开该页面地址,是这样的:

 

点击页面中的播放按钮,会在新页面的播放器里播放该音乐。在新页面中打开开发者工具的网络探测,重新刷新页面,会发现相关请求如下:

https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=5381&jsonpCallback=MusicJsonCallback39355320624659207&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&cid=205361747&callback=MusicJsonCallback39355320624659207&uin=0&songmid=000YU69H3N55rZ&filename=C400000YU69H3N55rZ.m4a&guid=328569683http://dl.stream.qqmusic.qq.com/C400000YU69H3N55rZ.m4a?vkey=927C721D272189FED484EF874A8D646C6B13C20C53277FB99D496DA6804CDF1B64C33A4F049D24FFC4366605DB4755A6E9AB632AA770C09A&guid=328569683&uin=0&fromtag=66

其中,第二个请求就是音频的真实地址,该地址中主要有如下几个部分:

  • 文件名:C400000YU69H3N55rZ.m4a
  • vkey参数:927C721D272189FED484EF874A8D646C6B13C20C53277FB99D496DA6804CDF1B64C33A4F049D24FFC4366605DB4755A6E9AB632AA770C09A
  • guid参数:328569683
  • uin参数:0
  • fromtag参数:66

第一个请求的响应如下:

MusicJsonCallback39355320624659207({"code":0,"cid":205361747,"data":{"expiration":80400,"items":[{"subcode":0,"songmid":"000YU69H3N55rZ","filename":"C400000YU69H3N55rZ.m4a","vkey":"927C721D272189FED484EF874A8D646C6B13C20C53277FB99D496DA6804CDF1B64C33A4F049D24FFC4366605DB4755A6E9AB632AA770C09A"}]}})

我们发现,vkey参数值就在上述响应内容里面。songmid的值正好出现在单曲页面URL里面,通过字符串拼接可以得到文件名:"C400" + songmid + ".m4a"

只有文件名和vkey是不够的,还需要知道guid参数值是如何得来的,没有guid参数的话请求音频真实地址会返回响应码403。

在js文件 https://y.gtimg.cn/music/portal/js/common/pkg/player_module_b5739d0.js 中,搜索 fcg_music_express_mobile3 可找到如下jsonp请求代码:

r.length > 0 ? MUSIC.jQueryAjax.jsonp({url: location.protocol + "//c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg",data: {cid: 205361747,format: "json",callback: a,uin: g_user.getUin(),songmid: r.join(","),filename: n.join(","),guid: _getGuid()},...}) : t && t()

这段js代码正好写明了请求参数有哪些,guid是通过调用 _getGuid 得到的。_getGuid 方法的代码如下:

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}

由此可见,guid的核心构造代码是如下两行:

var t = (new Date).getUTCMilliseconds()
_guid = Math.round(2147483647 * Math.random()) * t % 1e10

Python代码示例

import re
import json
import time
import random
import requestsdef resolve(url):"""resolve audio url:param url: like 'https://y.qq.com/n/yqq/song/000YU69H3N55rZ.html':return:"""songmid = re.search('/(\w+).html$', url).groups()[0]filename = 'C400' + songmid + '.m4a'guid = int(random.random() * 2147483647) * int(time.time() * 1000) % 10000000000d = {'format': 'json','cid': 205361747,'uin': 0,'songmid': songmid,'filename': filename,'guid': guid,}r = requests.get('https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg', params=d, verify=False)vkey = json.loads(r.content)['data']['items'][0]['vkey']audio_url = 'http://dl.stream.qqmusic.qq.com/%s?vkey=%s&guid=%s&uin=0&fromtag=66' % (filename, vkey, guid)return audio_url

 

 


http://chatgpt.dhexx.cn/article/HS1jLoOC.shtml

相关文章

在线音乐播放地址//歌曲URL地址提取

项目场景: 项目场景:在项目中添加音乐时,无法找到在线音乐的播放地址,即无法定位歌曲URL地址 问题描述: 微信小程序中设置背景音乐的播放时,无法定位歌曲的URL 代码: const backgroundAudioM…

python爬虫qq音乐_Python爬虫-QQ音乐无损音乐地址解析

首先进行申明或提示:我列表中的粉丝可能对这篇文章看不大懂,如有兴趣可继续阅读; 转载时必须署名JTY起风了; 代码纯手打,纯为自己的想法进行编写,如有雷同纯属意外; 此篇文章只作为学习与交流,若将此作为下载音乐的手段,后果自负。 基础步骤 QQ音乐,腾讯旗下的一…

如何获取音乐的地址链接

通过网页打开网易云音乐,搜索想要链接的歌曲 打开开发者工具(快捷键一般为F12) 切换到Network中, 点击F5刷新,加载中Type为media就是音频文件,鼠标移上去就可以看到相应音乐地址链接。下面警告部分也是地址链接。这个方法同样适合…

小程序歌曲播放地址获取方法

2020.12.26测试有效(但失效很快) 打开网易云歌曲打开Network播放 找v1开头(其他另说) 使用 /*** 当小程序启动,或从后台进入前台显示,会触发 onShow*/onShow: function (options) {this.innerAudioContext…

6个免费的音乐下载网站,一键下载MP3歌曲

分享6个免费下载音乐的网站,个个音乐资源丰富,想听的各种风格音乐都能在这里找到,而且还能在线播放以及直接下载MP3格式,喜欢听歌的朋友一定不能错过! 1、Myfreemp3 https://tool.liumingye.cn/music/ 一个超好用的…

如何在在网站上下载视频

如何下载视频 现在很多的视频网站都不支持下载(毕竟怕你把人家辛辛苦苦拍的视频弄走),但是有时你又想去下载一些视频做一些私人用途。如果是商业用途不建议下载,应该去购买视频的版权。 大多数视频网站都做了很多工作去限制下载…

网页视频下载

网页视频下载 程序准备安装步骤下载视频剪切视频 程序准备 下载Firefox浏览器并安装 下载VideoDownloadHelper合作应用并安装 下载视频剪切合并器并安装 安装步骤 打开Firefox,开始安装组件 输入“Video DownloadHelper” 搜索点进去安装 安装完成后,在这里有一…

如何下载网站的在线视频

欢迎访问我的个人博客: luomuxiaoxiao.com 文章目录 一、工具准备1.1 FFmpeg安装1.2 youtube-dl安装 二、使用方法2.1 查看支持的网站2.2 查看下载源的文件及其清晰度 多年来看视频形成了一个习惯:只要是能下载下来看的绝不在线看。这样做主要有几个原因…

4个简单有效的网页视频下载方法,超级简单好用

有很多网站的视频是没有下载功能的,想要下载视频怎么办呢?今天就分享给大家4个简单有效的网页视频下载方法,多个平台都适用,而且操作简单,一看就会! 一、审查元素下载 一个简单快速的网页视频下载的方法&…

使用Chrome下载网站视频

引论 在现实生活中,我们经常需要下载一些视频,但是这些视频又没有提供下载的链接或者需要下载客户端。怎么办呢?使用Chrome可以下载大部分网站上的视频,让我们一起学习一下 流程 使用Chrome打开需要下载视频的网站按F12&#xf…

下载网页视频方法

Google 方法一 F12或者点击视频里面设置保存 打开网页点击F12 会弹出下图的页面里的弹框 我们可以在搜索栏里面输入视频后缀名进行搜索文件 常见的视频后缀名 avi flv mp4 vo dat avi rm rmvb mpg mov mkv然后我们可以根据视频大小来判断哪个是自己需要下载的文件 方法…

8个视频素材网站,免费可商用,视频剪辑必备。

本期给大家推荐8个免费、商用的视频素材网站,且4K、高清无水印,建议收藏起来! 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 菜鸟图库主要提供设计素材为主,自媒体等相关素材也很多,像商用图片、背景图、视频素材…

网页视频下载:怎么批量下载网页上的视频

如何批量下载网页视频?虽然说市场上有很多网页视频下载器和插件,但是真正支持批量下载网页视频 (尤其是4K和8K超高清视频)的工具确很少,下面我来分享一个有效的网页视频下载工具,希望能帮你轻松将喜欢的网页视频保存到…

10大免费视频素材网站

对于Web设计师和视频编辑者来说,免费视频素材是一种非常宝贵的资源。一段全景拍摄视频可以为网站的设置背景,或者很好地填充视频中的过渡效果。但是当然,大多数人买不起录制此类镜头的设备。 视频素材是您在需要时查找简短,高质量…

如何下载网页中的视频?

使用chrome浏览器 1.进入想下载的视频界面。 2.按下F12,再按F5刷新。 3.点开“网络”或Network,点击视频播放按钮,就会发现有一个任务正在下载(蓝色进度条不断变长),右键这个任务选择新窗口打开。 4.在新…

5个超实用视频素材网站,免费下载~

推荐几个高清无水印的视频素材网站,重点是可以免费下载使用,建议收藏! 菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 可以称之为最大素材库,在这里你可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有…

免费国外视频素材网站

这里自己收藏几个可以免费下载国外视频的网站,希望大家喜欢[可以的话给个关注哟] Pexels Videos https://videos.pexels.com/ Pexels 是一个著名的免费图片平台,每天都会有大量的设计师和博客写手来这里为他们的网站和项目找图片素材。而今天我们要说的…

下载网页视频

在网页上如何下载视频呢,请试着操作一下呢。 1、我用的是GoogleChrome浏览器,打开有一个视频的网页后,在空白处鼠标右键点击,在弹出的窗口里选择【检查】,如下图所示: 2、在弹出的窗口里选择【Network】&am…

全球26个主流视频网站全搞定,都可以用这个神器下载原版高清视频!

大家在视频网站上观看视频的时候,有时候需要把一个视频下载下载,却不知道怎么弄,因为目前99%的网站,都没有现成的下载方法,今天我就来安利一个特别特别香的开源神器 annie , 目前已经收获 star 11k 之所以要给童鞋们安…

5个高清/4K视频素材网站,免费下载。

本期跟大家分享5个超好用的视频素材网站,4K质量,免费可商用。 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库主要提供设计素材为主,自媒体相关素材也很多,像商用图片、背景图、视频素材、音频素材都很齐…