Android获取歌曲详细信息

Android获取歌曲详细信息

在《Android实现歌词笔记构思》时,构思了如何在笔记中添加歌词笔记。

通过网易云音乐酷狗音乐可以获取到歌词文件,但无法获取到歌曲详情。

现在就来解决这个问题。

一、目标

获取网易云音乐酷狗音乐的歌曲详情。

二、实现方案

  • 理想方案

云音乐平台如果提供开放的数据接口就完美了,直接调用开放API就能获取到数据。

到云音乐平台找了一圈,都没有开放接口。

退而求其次,如果能找到隐藏的数据接口也是可行的。

  • 简单方案

云音乐平台都有歌曲详情的WEB页面,直接从HTML中提取需要的数据。

三、HTML方案

使用手机端的User Agent可以减少数据量。

因此使用iPhone Safari的用户代理进行访问。

1
Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1
网易云音乐 酷狗音乐
地址 https://music.163.com/m/song?id= https://www.kugou.com/song/#hash=
结果 成功!
window.REDUX_STATE包含了详情JSON数据
失败!
未能获取到数据。

酷狗音乐获取失败,无法得到歌曲详情。

四、JSON方案

能够通过数据接口直接获取到详情数据,自然是最完美的解决方案。

云音乐平台并未开放接口。

感谢Github大神,发现了私有的数据接口。

  • 网易云音乐
类别 文章 接口
私有接口 网易云音乐地址解析含官方接口分享 http://music.163.com/api/song/detail/?id={音乐ID}&ids=%5B{音乐ID}%5D&csrf_token=
网易云音乐常用API浅析
网易云音乐API怎么调用
网易云API
简单逆向一款网易云音乐歌词下载器
安卓 网易云音乐能用的API
Android网易云音乐能用的API
网易云音乐API获取分析
第三方 网易云音乐(Cloudmusic)
[网易云音乐 API]
网易云音乐接口
GitHub Binaryify/NeteaseCloudMusicApi
disoul/electron-cloud-music
darknessomi/musicbox
sqaiyan/netmusic-node
  • 酷狗音乐
类别 文章 接口
私有接口 酷狗音乐API接口
Retrofit + Rxjava框架学习使用(举例:酷狗搜索和详情接口)
记一次酷狗音乐API的获取,感兴趣的可以自己封装开发自己的音乐播放器
酷狗音乐API

五、接下来

无法从酷狗音乐的歌曲HTML页面获取到信息。

接下来的实现方案将以JSON方案为主。

毕竟是私有接口,无法保证稳定性,先将就用者吧!

六、Finally

所以者何。 一切贤圣。皆以无为法。而有差别。