php获取QQ音乐直链,微信小程序-获取QQ音乐直链

获取QQ音乐直链-用于微信小程序

补充:以下方法获取的直链会有失效期,如果大家有嗅探等工具可以直接上QQ音乐网站获取资源的直链,此方法仅供参考。

问题起源:

最近在做小程序音频播放这一块的时候发现一个问题,就是微信官方提供的那首歌曲 此时此刻-许巍 真的好难听!测试组件的过程中听了强忍着听了无数遍。最终终于忍不下去决定要改变一下,但是从哪获取其他音频呢(除了从自己后台)。只能从网上了,调用QQ音乐,网易云音乐API等。但是考虑到这是微信小程序,所以保险还是选择调用QQ音乐(毕竟是一家的~)。可是随后却发现想调用QQ音乐APi并没有自己想的那么简单。网上也没有找到一份像样的教程。最后再经过一阵摸索之后,自己终于还是实现了这个功能,这里记下过程,希望能给到大家帮助!!

"http://ws.stream.qqmusic.qq.com/

M500001VfvsJ21xFqb.mp3?

guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46

分析官方提供的API:

这里我们观察微信小程序官方提供的API调用接口可以看到接口构造为:

http://ws.stream.qqmusic.qq.com/

M500001VfvsJ21xFqb.mp3?

一串乱七八糟的东西

分析

首先第一部分:大概是域名我们不用看,后面直接用。后面的乱七八糟的东西但是跟在**?**后面,大概是参数,也不管。中间部分看起来像是ID类似的东西,我们这里猜测中间部分大概就是不同音乐的ID标识字段了。

开始动手

想要调用QQ音乐的API,首先我们的思路肯定是从网站上查有没有提供的官方API。

好像是有,我们点进去看看

里面有一堆说明和方法,并且也没有导航栏和明确点的解释,看起来很费劲(内心感觉QQ音乐官方并不太想让大家调用)。如果这样下去的话估计想写出一个正确的API需要把文档看的差不多才行,太浪费时间!这个方法,暂时PASS掉,留着保底用。

思考

接下来怎么办呢,我们来想一下,既然官方提供的API把标识字段直接写到URL里面,那么说明其他音乐的请求里面可能也是包含这一些字段的,我们可以试着去通过分析他的网络请求去找看有没有这些信息。

既然这样的话我们就去试试,首先打开QQ音乐在线网站:

输入我们想找的歌曲名并搜索

找到歌曲点播放(有的网页可能会弹不出播放页面,这个原因是浏览器的设置问题,在浏览器 设置->高级设置->内容设置->弹出式窗口和重定向 选成允许)

然后弹出播放页面:

这时候我们打开开发者工具(WINDOWS快捷键为F12 mac为option+command+J)

刚打开里面可能会有一些链接,也可能没有,不管,我们这里为了防止干扰先清空数据

获得空白页面

然后我们刷新页面,获取一次完整的网络请求,这一步很重要,因为想要分析他的网络请求,就必须要要获取这个页面完整的请求,防止漏掉请求!

然后获取了完整的一次请求:

这么多的请求看的人眼花缭乱,到底哪些才是我们需要的数据呢。这里我们想一下既然这个请求返回的是音乐流,那么他肯定是比较大的,我们这里看一下哪些请求的Size是最大的

其他的Size大部分是几百b或者几十k,这个有1.2M,看起来应该是最大的,我们点开这个请求看有没有我们想要的东西。

咱们看他的请求头里面的信息:

http://isure.stream.qqmusic.qq.com/C4000029cBQ71C3Gba.m4a?`vkey=E7883557BF711B8996C99307A0E507E1F76B9D5C4CEDF616BD2FE703352655414F5C36DD5C87F856274C6A235214F9143716E2AF50394308&guid=6578063259&uin=76812328&fromtag=66`

这里URL我们也可以分三部分,第一部分

http://isure.stream.qqmusic.qq.com/

C4000029cBQ71C3Gba.m4a?

vkey=E7883557BF711B8996C99307A0E507E1F76B9D5C4CEDF616BD2FE703352655414F5C36DD5C87F856274C6A235214F9143716E2AF50394308&guid=6578063259&uin=76812328&fromtag=66

我们在对比一下之前微信官方提供的API:

http://ws.stream.qqmusic.qq.com/

M500001VfvsJ21xFqb.mp3?

guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46

惊喜的发现他们除了域名之外其他部分惊人的相似,我们这里基本就可以确定域名后面跟的那些就是一个音乐的唯一标识和类ID字段了。不过这还不够,我们还没有得到最后的答案,接下来我们开始求证我们的想法!

我们使用官方API的域名,后面加我们通过 main titles 歌曲解析出来的 类ID字段和参数。 拼成一个新的URL路径

这里也可不拼,本人尝试过直接使用直链放入微信小程序中,也可以访问。

http://ws.stream.qqmusic.qq.com/C4000029cBQ71C3Gba.m4a?vkey=9EB978F0CFD9A7C738E46540141FDE66721FECC8F4F0727938978D9A6074FDA7A09935A44413BFBF04DD1447312044B93CE4058E0D3069E6&guid=6578063259&uin=76812328&fromtag=66

**这里我们先测试一下URL是否有效,打开postman,输入URL,回车

接口的测试没有问题,终于大功告成了!!可以开香槟庆祝了吗? 不对!! 我们还少了关键的一步,我们的最终目的是在微信小程序中引用这个音乐,所以最后我们还要在小程序中测试一下

打开微信小程序,替换原来官方提供的API

编译运行:

运行没问题!可以播放,终于大功告成!这个简单的小案例加深了我对调用API的理解,同时也深刻的理解编码的过程中多思考,遇到陌生的情况,我们要冷静多思考。

参考文章:2018最新版QQ音乐api调用(原创) - CSDN博客

最后,

文中如有错误或问题请大家指正,

感谢阅读!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值