C#版 网易云音乐 API
本项目翻译自Node.js项目Binaryify/NeteaseCloudMusicApi
更新与原项目同步
使用方式请参考原项目文档,参数与返回结果与原项目完全一致
本项目需要 .NET Standard 2.0 (.NET Framework 4.6.1+ / .NET Core 2.0+) ,可跨平台使用
wwh1004/NLyric - 使用本项目自动搜索下载歌词
GitHub:
NeteaseCloudMusicApi-netstandard2.0.zip(已编译Dll)
NeteaseCloudMusicApi.Demo-net472.zip(.NET Framework版Demo)
NeteaseCloudMusicApi.Demo-netcoreapp3.1.zip(.NET Core版Demo)
- 登录
- 刷新登录
- 发送验证码
- 校验验证码
- 注册(修改密码)
- 获取用户信息 , 歌单,收藏,mv, dj 数量
- 获取用户歌单
- 获取用户电台
- 获取用户关注列表
- 获取用户粉丝列表
- 获取用户动态
- 获取用户播放记录
- 获取精品歌单
- 获取歌单详情
- 搜索
- 搜索建议
- 获取歌词
- 歌曲评论
- 收藏单曲到歌单
- 专辑评论
- 歌单评论
- mv 评论
- 电台节目评论
- banner
- 获取歌曲详情
- 获取专辑内容
- 获取歌手单曲
- 获取歌手 mv
- 获取歌手专辑
- 获取歌手描述
- 获取相似歌手
- 获取相似歌单
- 相似 mv
- 获取相似音乐
- 获取最近 5 个听了这首歌的用户
- 获取每日推荐歌单
- 获取每日推荐歌曲
- 私人 FM
- 签到
- 喜欢音乐
- 垃圾桶
- 歌单 ( 网友精选碟 )
- 新碟上架
- 热门歌手
- 最新 mv
- 推荐 mv
- 推荐歌单
- 推荐新音乐
- 推荐电台
- 推荐节目
- 独家放送
- mv 排行
- 获取 mv 数据
- 播放 mv/视频
- 排行榜
- 歌手榜
- 云盘
- 电台 - 推荐
- 电台 - 分类
- 电台 - 分类推荐
- 电台 - 订阅
- 电台 - 详情
- 电台 - 节目
- 给评论点赞
- 获取动态
- 热搜列表(简略)
- 发送私信
- 发送私信歌单
- 新建歌单
- 收藏/取消收藏歌单
- 歌单分类
- 收藏的歌手列表
- 订阅的电台列表
- 相关歌单推荐
- 付费精选接口
- 音乐是否可用检查接口
- 登录状态
- 获取视频播放地址
- 发送/删除评论
- 热门评论
- 视频评论
- 退出登录
- 所有榜单
- 所有榜单内容摘要
- 收藏视频
- 收藏 MV
- 视频详情
- 相关视频
- 关注用户
- 新歌速递
- 喜欢音乐列表(无序)
- 收藏的 MV 列表
- 获取最新专辑
- 听歌打卡
- 获取视频标签下的视频
- 已收藏专辑列表
- 获取动态评论
- 歌单收藏者列表
- 云盘歌曲删除
- 热门话题
- 电台 - 推荐类型
- 电台 - 非热门类型
- 电台 - 今日优选
- 心动模式/智能播放
- 转发动态
- 删除动态
- 分享歌曲、歌单、mv、电台、电台节目到动态
- 通知-私信
- 通知-评论
- 通知-@我
- 通知-通知
- 设置
- 云盘数据详情
- 私信内容
- 我的数字专辑
- batch批量请求接口
- 获取视频标签列表
- 全部mv
- 网易出品mv
- 收藏/取消收藏专辑
- 专辑动态信息
- 热搜列表(详细)
- 更换绑定手机
- 检测手机号码是否已注册
- 初始化昵称
- 更新歌单描述
- 更新歌单名
- 更新歌单标签
- 默认搜索关键词
- 删除歌单
- 电台banner
- 用户电台
- 热门电台
- 电台 - 节目详情
- 电台 - 节目榜
- 电台 - 新晋电台榜/热门电台榜
- 类别热门电台
- 云村热评
- 电台24小时节目榜
- 电台24小时主播榜
- 电台最热主播榜
- 电台主播新人榜
- 电台付费精品榜
- 歌手热门50首歌曲
varapi=newCloudMusicApi();varapi=newCloudMusicApi();/******************** 登录 ********************/boolisOk;JObjectjson;do{varqueries=newDictionary<string,object>();Console.WriteLine("请输入账号(邮箱或手机)");stringaccount=Console.ReadLine();boolisPhone=Regex.Match(account,"^[0-9]+$").Success;queries[isPhone?"phone":"email"]=account;Console.WriteLine("请输入密码");queries["password"]=Console.ReadLine();(isOk,json)=awaitapi.RequestAsync(isPhone?CloudMusicApiProviders.LoginCellphone:CloudMusicApiProviders.Login,queries);if(!isOk)Console.WriteLine("登录失败,账号或密码错误");}while(!isOk);Console.WriteLine("登录成功");Console.WriteLine();/******************** 登录 ********************//******************** 获取账号信息 ********************/(isOk,json)=awaitapi.RequestAsync(CloudMusicApiProviders.LoginStatus);if(!isOk)thrownewApplicationException($"获取账号信息失败: {json}");intuid=(int)json["profile"]["userId"];Console.WriteLine($"账号ID: {uid}");Console.WriteLine($"账号昵称: {json["profile"]["nickname"]}");Console.WriteLine();/******************** 获取账号信息 ********************//******************** 获取我喜欢的音乐 ********************/(isOk,json)=awaitapi.RequestAsync(CloudMusicApiProviders.UserPlaylist,newDictionary<string,object>{["uid"]=uid});if(!isOk)thrownewApplicationException($"获取用户歌单失败: {json}");(isOk,json)=awaitapi.RequestAsync(CloudMusicApiProviders.PlaylistDetail,newDictionary<string,object>{["id"]=json["playlist"][0]["id"]});if(!isOk)thrownewApplicationException($"获取歌单详情失败: {json}");int[]trackIds=json["playlist"]["trackIds"].Select(t =>(int)t["id"]).ToArray();(isOk,json)=awaitapi.RequestAsync(CloudMusicApiProviders.SongDetail,newDictionary<string,object>{["ids"]=string.Join(",",trackIds)});if(!isOk)thrownewApplicationException($"获取歌曲详情失败: {json}");Console.WriteLine($"我喜欢的音乐 ({trackIds.Length} 首):");foreach(JObjectsonginjson["songs"])Console.WriteLine($"{string.Join(",",song["ar"].Select(t =>t["name"]))} - {song["name"]}");Console.WriteLine();/******************** 获取我喜欢的音乐 ********************//******************** 退出登录 ********************/(isOk,json)=awaitapi.RequestAsync(CloudMusicApiProviders.Logout);if(!isOk)thrownewApplicationException($"退出登录失败: {json}");Console.WriteLine("退出登录成功");Console.WriteLine();/******************** 退出登录 ********************/