
之前研究了喜马拉雅的音频接口,偶然间想起自己还有个白嫖的蜻蜓FM的会员,不能浪费了啊,必须薅到底。可仔细看了看,发现除了局座和矮大紧以外,几乎没有什么我喜欢的IP,瞬间动力减半,不过还是硬撑着研究研究吧。
常规方法,F12开发者模式,过滤media选项,果不其然,m4a文件。但选择initiator选项,发现是由另一个网址跳转的。

感觉参数十分简单,专辑代码、音频代码、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/
-
相关资料
