MergeMusic-自制前端音乐播放器


聚合网易云、QQ音乐、bilibili的单页面音乐播放器。

20200331打开半个月之前写的,这都什么玩意儿?六百多行两万字,乱七八糟后背发凉。昨天经manim群友提醒发现b站现在是音视频分离的m4s格式,而且无需转码,直接改后缀mp3即可。只是会限制referer,所以必须要过服务器的缓存,这点上算不上真正的“单页面”了。不过还是想要加。

所以现在想了想需要的更改有:

  • 统一数据格式,把数据处理尽量移到函数服务上,不在前端做了,否则前端代码一堆特判整不成。
  • 增加专辑、歌单、b站收藏夹的支持。
  • 把音频可视化删了吧,效果也不大看得出来。
  • 增加b站。

需要考虑b站分p应该以什么样的形式呈现,或许应该作为歌单处理,另外b站收藏夹需要通过搜索用户才能得到?

20200403emmm一言的网易云api貌似炸了,换一个吧。找到个好东西,主域名是之前弄live2d的时候见过的那个猫与向日葵的博客,我还特别喜欢它的那个hexo主题。欸不对这个也挂掉了,莫不是全部搜索都挂了?又找到一个,貌似可用。

20200404是一个哀悼的日子。

做完了,用起来还是挺爽的。b站的层级有点多,music是分P的,p是一个稿件,fav是收藏列表,up是up主,user是用户,和up的区别是user是用来检索fav的。网易云用了两个api,b站和QQ音乐都是原生的。QQ和网易托管在阿里云函数计算上,b站的跑在阿里云ECS上,用了个flask

函数计算API

qqsearch/cloudsearch/bilisearch

搜索歌曲。

  • keyword
    搜索关键字
  • type
    搜索类型:music|lrc|list。默认music
  • limit
    每次搜索条数,默认20
  • offset
    搜索偏移,默认0

返回格式

[{
    "type": "格式",
	"mid": "音乐ID,有前缀C/Q/B",
	"name": "音乐名称",
	"album": {
		"name": "专辑名称"
	},
	"artist": [{
		"name": "艺术家名字"
    }]
}]

对于type,可能的取值有: music | list | p

qqmusic/cloudmusic/blimusic

获取歌曲详细信息。

  • type
    类型:music | list | p | fav
  • mid

返回格式
对于music

{
    "src": "音乐直链",
    "lyrics": "",
    "img": "图片链接"
}

对于list
返回一个音乐列表,格式同搜索。


文章作者: 卯婴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 卯婴 !
评论
  目录