网易云音乐接口封装

因为最近自己的博客需要添加音乐的模块,于是将网易云接口进行封装,觉得不错,分享一下

网易云项目所有接口
封装成函数进行导出,使用 async 处理异步
import api from './instance'
/**
* @method 获取轮播图
*/
export const getBanner = () => api.get('/banner', {})
/**
* @method 获取热搜列表
*/
export const getSearchHot = () => api.get('/search/hot', {})
/**
* @method 搜索
* @param {String} keywords 关键词
* @param {Number} limit 返回数量 , 默认为 30
* @param {Number} offset 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其
中 30 为 limit 的值 , 默认为 0
* @param {Number} type 1: 单曲 , 10: 专辑 , 100: 歌手 , 1000: 歌
单 , 1002: 用户 , 1004: MV, 1006: 歌词 , 1009: 电台 , 1014: 视频 , 1018: 综合
*/
export const search = (keywords, limit, offset, type) =>
api.get(
`/search?keywords=${keywords}&limit=${limit}&offset=${offset}&type=
${type}`,
{}
)
/**
* @method 搜索建议
* @param {String} keywords 关键词
*/
export const searchSuggest = keywords =>
api.get(`/search/suggest?keywords=${keywords}`, {})
/**
* @method 获取推荐歌单
* @params limit 取出数量默认为 30
*/
export const getPersonalized = limit =>
api.get(`/personalized?limit=${limit}`, {})
/**
* @method 获取推荐歌单
*/
export const getNewSongs = () => api.get(`/personalized/newsong`, {})
/**
* @method 获取热门歌手
*/
export const getHotSinger = () => api.get(`/top/artists?offset=0&limit=
30`, {})
/**
* @method 获取歌手分类列表
* @params cat 即 category Code, 歌手类型 , 默认 1001, 返回华语男歌手数据
* @params limit 返回数量 , 默认为 30
* @params offset 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其
中 30 为 limit 的值 , 默认为 0
* @params initial 按首字母索引查找参
数 , 如 /artist/list?type=1&area=96&initial=b 返回内容将以 name 字段开头
为 b 或者拼音开头为 b 为顺序排列 , 热门传 -1,# 传 0
*/
export const getSingerList = params => api.get(`/artist/list`, { params
})
/**
* @method 获取歌手单曲
* @params id 歌手 id
*/
export const getArtists = id => api.get(`/artists?id=${id}`, {})
/**
* @method 获取歌手 mv
* @params id 歌手 id
*/
export const getArtistMv = params => api.get(`/artist/mv`, { params })
/**
* @method 获取歌手专辑
* @params limit 返回数量 , 默认为 30
* @params offset 偏移数量,用于分页 , 如 : 如 :( 页数 -1)*30, 其
中 30 为 limit 的值 , 默认为 0
*/
export const getArtistAlbum = params => api.get(`/artist/album`, { para
ms })
/**
* @method 获取歌手描述
* @params id 歌手 id
*/
export const getArtistDesc = id => api.get(`/artist/desc?id=${id}`, {})
/**
* @method 获取相似歌手
* @params id 歌手 id
*/
export const getArtistSimi = id => api.get(`/simi/artist?id=${id}`, {})
/**
* @method 获取排行榜内容摘要
*/
export const getToplist = () => api.get(`/toplist/detail`, {})
/**
* @method 获取歌单分类
*/
export const getCatList = () => api.get(`/playlist/catlist`, {})
/**
* @method 获取热门歌单分类
*/
export const getHotlist = () => api.get(`/playlist/hot`, {})
/**
* @method 获取歌单
*/
export const getPlayList = params => api.get(`/top/playlist`, { params
})
/**
* @method 获取歌单详情
*/
export const getPlayListDetail = (id, s, time) =>
api.get(`/playlist/detail?id=${id}&s=${s}&timestamp=${time}`, {})
/**
* @method 获取歌曲详情
*/
export const getSongDetail = (ids, time) =>
 api.post(`/song/detail?timestamp=${time}`, { ids })
/**
* @method 相关歌单推荐
*/
export const getRelatedPlaylist = id =>
api.get(`/related/playlist?id=${id}`, {})
/**
* @method 获取相似歌单
*/
export const getSimiPlaylist = id => api.get(`/simi/playlist?id=${id}`,
{})
/**
* @method 歌单评论
* @params id 歌单 id
* @params limit 取出评论数量 默认为 20
* @params offset 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其
中 20 为 limit 的值
* @params before 分页参数 , 取上一页最后一项的 time 获取下一页数据 ( 获取超过
5000 条评论的时候需要用到 )
*/
export const getCommentPlaylist = params =>
api.get(`/comment/playlist`, { params })
/**
* @method 歌单收藏者
* @params id 歌单 id
* @params limit 取出评论数量 默认为 20
* @params offset 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其
中 20 为 limit 的值
*/
export const getSubscribersPlaylist = params =>
api.get(`/playlist/subscribers`, { params })
/**
* @method 获取视频分类列表
*/
export const getVideoCategory = () => api.get(`/video/category/list`, {
})
/**
* @method 获取视频标签列表
 */
export const getVideoTag = () => api.get(`/video/group/list`, {})
/**
* @method 获取全部视频列表
*/
export const getVideoAll = offset =>
api.get(`/video/timeline/all?offset=${offset}`, {})
/**
* @method 获取视频标签 / 分类下的视频
*/
export const getVideoOther = (id, offset) =>
api.get(`/video/group?id=${id}&offset=${offset}`, {})
/**
* @method 获取全部 mv
*/
export const getMvAll = params => api.get(`/mv/all`, { params })
/**
* @method 获取视频播放地址
*/
export const getVideoUrl = id => api.get(`/video/url?id=${id}`, {})
/**
* @method 获取视频详情
*/
export const getVideoDetail = id => api.get(`/video/detail?id=${id}`, {
})
/**
* @method 获取视频点赞转发评论数数据
*/
export const getVideoDetailInfo = (id, time) =>
api.get(`/video/detail/info?vid=${id}&timestamp=${time}`, {})
/**
* @method 相关视频
*/
export const getVideoRelated = id => api.get(`/related/allvideo?id=${id
}`, {})
/**
 * @method 视频评论
*/
export const getVideoComments = params => api.get(`/comment/video`, { p
arams })
/**
* @method 发送评论
* @params t:1 发送 , 2 回复
* @params tpye: 0: 歌曲, 1: mv , 2: 歌单, 3: 专辑, 4: 电台, 5: 视频, 6: 动
态
* @params id: 对应资源 id
* @params content : 要发送的内容
* @params commentId : 回复的评论 id ( 回复评论时必填 )
* @ 调用例子 : /comment?t=1&type=1&id=5436712&content=test ( 往广岛之
恋 mv 发送评论 : test)
* @ 注意:如给动态发送评论,则不需要传 id ,需要传动态的 threadId, 如:
/comment?t=1&type=6&threadId=A_EV_2_6559519868_32953014&content=test
*/
export const sendComment = params => api.get(`/comment`, { params })
/**
* @method 给评论点赞
* @params t:1 点赞 , 2 取消点赞
* @params tpye: 0: 歌曲, 1: mv , 2: 歌单, 3: 专辑, 4: 电台, 5: 视频, 6: 动
态
* @params cid: 评论 id
* @ 调用例子 : /comment/like?id=29178366&cid=12840183&t=1&type=0 对应
给 https://music.163.com/#/song?id=29178366 最热门的评论点赞
*/
export const likeComment = params => api.get(`/comment/like`, { params
})
/**
* @method 资源点赞 ( MV, 电台 , 视频 )
* @params tpye: 1: mv , 4: 电台, 5: 视频, 6: 动态
* @params t:1 点赞 , 2 取消点赞
* @params id :资源 id
*/
export const likeResource = (type, t, id) =>
api.get(`/resource/like?type=${type}&t=${t}&id=${id}`, {})
/**
* @method 获取 mv 详情
*/
export const getMvDetail = id => api.get(`/mv/detail?mvid=${id}`, {})
/**
* @method 获取 mv 点赞转发评论数数据
*/
export const getMvDetailInfo = (id, time) =>
api.get(`/mv/detail/info?mvid=${id}&timestamp=${time}`, {})
/**
* @method 获取 mv 播放地址
*/
export const getMvUrl = id => api.get(`/mv/url?id=${id}`, {})
/**
* @method mv 评论
*/
export const getMvComments = params => api.get(`/comment/mv`, { params
})
/**
* @method 相似 mv
*/
export const getMvRelated = id => api.get(`/simi/mv?mvid=${id}`, {})
/**
* @method 获取歌词
*/
export const getLyric = id => api.get(`/lyric?id=${id}`, {})
/**
* @method 收藏 / 取消收藏歌单
*/
export const collectPlaylist = (t, id) =>
api.get(`/playlist/subscribe?t=${t}&id=${id}`, {})
/**
* @method 获取专辑内容
*/
export const getAlbumData = id => api.get(`/album?id=${id}`, {})
/**
 * @method 获取专辑评论
*/
export const getAlbumComment = params => api.get(`/comment/album`, { pa
rams })

希望对各位有所帮助

基于Node.js,提供网易云所有API接口数据,包括:登录,获取用户信息 , 歌单,收藏,mv, dj 数量 获取用户歌单 获取用户电台 获取用户关注列表 获取用户粉丝列表 获取用户动态 获取用户播放记录 获取精品歌单 获取歌单详情 搜索 搜索建议 获取歌词 歌曲评论 收藏单曲到歌单 专辑评论 歌单评论 mv 评论 电台节目评论 banner 获取歌曲详情 获取专辑内容 获取歌手单曲 获取歌手 mv 获取歌手专辑 获取歌手描述 获取相似歌手 获取相似歌单 相似 mv 获取相似音乐 获取最近 5 个听了这首歌的用户 获取每日推荐歌单 获取每日推荐歌曲 私人 FM 签到 喜欢音乐 垃圾桶 歌单 ( 网友精选碟 ) 新碟上架 热门歌手 最新 mv 推荐 mv 推荐歌单 推荐新音乐 推荐电台 推荐节目 独家放送 mv 排行 获取 mv 数据 播放 mv/视频 排行榜 歌手榜 云盘 电台 - 推荐 电台 - 分类 电台 - 分类推荐 电台 - 订阅 电台 - 详情 电台 - 节目 给评论点赞 获取动态 热搜列表(简略) 发送私信 发送私信歌单 新建歌单 收藏/取消收藏歌单 歌单分类 收藏的歌手列表 订阅的电台列表 相关歌单推荐 付费精选接口 音乐是否可用检查接口 登录状态 获取视频播放地址 发送/删除评论 热门评论 视频评论 退出登录 所有榜单 所有榜单内容摘要 收藏视频 收藏 MV 视频详情 相关视频 关注用户 新歌速递 喜欢音乐列表(无序) 收藏的 MV 列表 获取最新专辑 听歌打卡 获取视频标签下的视频 已收藏专辑列表 获取动态评论 歌单收藏者列表 云盘歌曲删除 热门话题 电台 - 推荐类型 电台 - 非热门类型 电台 - 今日优选 心动模式/智能播放 转发动态 删除动态 分享歌曲、歌单、mv、电台、电台节目到动态 通知-私信 通知-评论 通知-@我 通知-通知 设置 云盘数据详情 私信内容 我的数字专辑 batch批量请求接口 获取视频标签列表 全部mv 网易出品mv 收藏/取消收藏专辑 专辑动态信息 热搜列表(详细) 更换绑定手机 检测手机号码是否已注册 初始化昵称 更新歌单描述 更新歌单名 更新歌单标签 默认搜索关键词 删除歌单 电台banner 用户电台 热门电台 电台 - 节目详情 电台 - 节目榜 电台 - 新晋电台榜/热门电台榜 类别热门电台 云村热评 电台24小时节目榜 电台24小时主播榜 电台最热主播榜 电台主播新人榜 电台付费精品榜 歌手热门50首歌曲
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李遇·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值