Python | QingTingFMParseApi

之前研究了喜马拉雅的音频接口,偶然间想起自己还有个白嫖的蜻蜓FM的会员,不能浪费了啊,必须薅到底。可仔细看了看,发现除了局座和矮大紧以外,几乎没有什么我喜欢的IP,瞬间动力减半,不过还是硬撑着研究研究吧。

常规方法,F12开发者模式,过滤media选项,果不其然,m4a文件。但选择initiator选项,发现是由另一个网址跳转的。

仔细查找那个网址,https://audio.qingting.fm/audiostream/redirect/232855/10104604?access_token=d2d54b7e8bd942f0854c1071e6d807ea&device_id=MOBILESITE&qingting_id=ff1a4a440409028eafaac698c32fc79f&t=1595934503181&sign=b503a248582c60ddc51f05cee9f8897c

感觉参数十分简单,专辑代码、音频代码、access_token、device_id、qingting_id、sign以及时间戳。其中,专辑代码、音频代码和时间戳都是可以直接获取的,device_id是固定不变的,而qingting_id则是用户cookie,只需要搞定access_token和sign即可。

根据经验,这两个参数一定是通过js计算得出的,因此直接去js文件中搜索相关字段。

很明显,sign参数是根据access_token计算得出的,将算法改写成Python语言,这倒不难,引用hmac扩展包即可。此外还可以看出,access_token并非计算得出,而是类似于cookies,直接获得的。

但我又各种搜索,仔细检查,一直没能发现access_token的踪影,没办法,只能去github找一找,但苦于蜻蜓FM过于小众,依旧没有结果。

只能寻求度娘的帮助,度娘把我带到了52pojie的网站,https://www.52pojie.cn/thread-1093291-1-1.html

根据大佬的提示,可以直接通过接口,获取qingting_id和access_token,算是进行一次模拟登陆,简单易用。

至此,所有参数都已集齐,拼凑出目标连接,即可进行下载,下载器会自动重定向至音频文件的真正地址,至于真正地址的生成算法,我们无需关心。

· 后记

和之前喜马拉雅的接口一样,此方法只能下载帐号可播放的音频,不可播放的音频无法下载,连试听都没有。

此外,我还通过其他接口实现了全集解析功能,体验地址api.sometools.online/qingting/

  • 相关资料

GitHub下载器开源代码

接口示意

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注