1:项目简介
对于我这个经常听歌的人来说,免费的听歌软件总是很有用的。我在网上找到了一款叫做海贝音乐的播放器,这个播放器不提供音乐资源,仅仅是一个播放器,可以播放本地音乐、Onedrive云音乐,以及DLNA局域网里的音乐。对于很多人来说,将好听喜欢的音乐下载下来保存到手机,总归是个麻烦的操作,如果想在线听歌,又需要购买音乐软件的VIP。那么有没有一个方法,可以免费而又在不下载音乐在线听歌呢?
我将利用Onedrive作为音乐储存云盘,并在海贝音乐播放器上,实现在线听歌。将喜欢的音乐下载到Onedrive是个非常麻烦的步骤,为此我将在之后编写一个项目,来实现自动下载热榜音乐至云盘指定目录,并编写一个客户端,用作搜索指定音乐,并保存到云盘的接口。此项目,我将使用python进行编写,并在linux系统上运行。
2:实现原理
2.1 音乐来源
免费音乐接口总是很难获取,甚至很不稳定,为此我们需要合法的获取音乐资源。为此,我考虑从YouTube上获取音乐资源,因为音乐MV和MP3格式的隶属不同版权,而MV往往是不收费的,所以直接从youtube上下载mv的mp4格式文件,这里利用基于python编写的you-get程序即可,然后,利用ffmpeg软件将mp4格式文件转为mp3格式。
2.2 音乐获取
获取音乐当然不能一个一个的获取,我们可以在网上找到网易或者qq音乐的榜单api,获取榜单列表,根据列表内容使用程序来检索音乐。
另外在单独做一个web端,用于搜索音乐。后台根据搜索指令下载音乐。
歌词可以通过歌词迷接口https://hacpai.com/article/1364440883834 获取。
2.3 音乐保存
后台转换后的音乐,可以利用onedrive提供的上传接口,把音乐上传到onedrive目录,比如榜单目录和自行搜索的like目录。
定期使用onedrive接口清除过时的音乐也很重要。
2.4 音乐收听
海贝音乐app提供了从onedrive源收听音乐的功能,因此,直接在海贝音乐上授权onedrive就能够在线收听了,而一个onedrive目录就是一个播放列表。