C# 网易云音乐API 多达100+ 支持登录,无损下载
NeteaseCloudMusicApi
C#版 网易云音乐 API
https://github.com/wwh1004/NeteaseCloudMusicApi
简介
本项目翻译自Node.js项目Binaryify/NeteaseCloudMusicApi
更新与原项目同步
使用方式请参考原项目文档,参数与返回结果与原项目完全一致
本项目需要 .NET Standard 2.0 (.NET Framework 4.6.1+ / .NET Core 2.0+) ,可跨平台使用
Dll与Demo下载
GitHub:
NeteaseCloudMusicApi-netstandard2.0.zip(已编译Dll)
NeteaseCloudMusicApi.Demo-net472.zip(.NET Framework版Demo)
NeteaseCloudMusicApi.Demo-netcoreapp2.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
- 用户电台
- 热门电台
- 电台 - 节目详情
样例
实例化API
using (CloudMusicApi api = new CloudMusicApi()) {// code here
}
完整样例-显示"我喜欢的音乐"
using (CloudMusicApi api = new CloudMusicApi()) {try {bool isOk;JObject json;int uid;int[] trackIds;/******************** 登录 ********************/do {Dictionary<string, string> queries;string account;bool isPhone;queries = new Dictionary<string, string>();Console.WriteLine("请输入账号(邮箱或手机)");account = Console.ReadLine();isPhone = Regex.Match(account, "^[0-9]+$").Success;queries[isPhone ? "phone" : "email"] = account;Console.WriteLine("请输入密码");queries["password"] = Console.ReadLine();(isOk, json) = await api.RequestAsync(isPhone ? CloudMusicApiProviders.LoginCellphone : CloudMusicApiProviders.Login, queries);if (!isOk)Console.WriteLine("登录失败,账号或密码错误");} while (!isOk);Console.WriteLine("登录成功");Console.WriteLine();/******************** 登录 ********************//******************** 获取账号信息 ********************/(isOk, json) = await api.RequestAsync(CloudMusicApiProviders.LoginStatus, CloudMusicApi.EmptyQueries);if (!isOk)throw new ApplicationException($"获取账号信息失败: {json}");uid = (int)json["profile"]["userId"];Console.WriteLine($"账号ID: {uid}");Console.WriteLine($"账号昵称: {json["profile"]["nickname"]}");Console.WriteLine();/******************** 获取账号信息 ********************//******************** 获取我喜欢的音乐 ********************/(isOk, json) = await api.RequestAsync(CloudMusicApiProviders.UserPlaylist, new Dictionary<string, string> { { "uid", uid.ToString() } });if (!isOk)throw new ApplicationException($"获取用户歌单失败: {json}");(isOk, json) = await api.RequestAsync(CloudMusicApiProviders.PlaylistDetail, new Dictionary<string, string> { { "id", json["playlist"][0]["id"].ToString() } });if (!isOk)throw new ApplicationException($"获取歌单详情失败: {json}");trackIds = json["playlist"]["trackIds"].Select(t => (int)t["id"]).ToArray();(isOk, json) = await api.RequestAsync(CloudMusicApiProviders.SongDetail, new Dictionary<string, string> { { "ids", string.Join(",", trackIds) } });if (!isOk)throw new ApplicationException($"获取歌曲详情失败: {json}");Console.WriteLine($"我喜欢的音乐 ({trackIds.Length} 首):");foreach (JObject song in json["songs"])Console.WriteLine($"{string.Join(",", song["ar"].Select(t => t["name"]))} - {song["name"]}");Console.WriteLine();/******************** 获取我喜欢的音乐 ********************//******************** 退出登录 ********************/(isOk, json) = await api.RequestAsync(CloudMusicApiProviders.Logout, CloudMusicApi.EmptyQueries);if (!isOk)throw new ApplicationException($"退出登录失败: {json}");Console.WriteLine("退出登录成功");Console.WriteLine();/******************** 退出登录 ********************/}catch (Exception ex) {Console.WriteLine(ex);}
}
样例项目
wwh1004/NLyric - 使用本项目自动搜索下载歌词
C# 网易云音乐API 多达100+ 支持登录,无损下载相关推荐
- Github每日Rank推荐:网易云音乐API
今天要推荐的github开源项目是NeteaseCloudMusicApi,即网易云音乐API,安装所需环境即可实现真实调用网易云音乐 API,包括注册.登录.搜索歌单歌词.歌曲点评等功能,请看客老爷 ...
- 小谈网易云音乐----API
网易云音乐API分析1. 总览本文档是通过对网易云音乐Android客户端(1.5.2)的部分功能进行分析得出的在所有的交互中,均需要在cookie中添加这对键值appver=1.5.2;(Updat ...
- 开源的网易云音乐API项目都是怎么实现的?
上一篇文章这个高颜值的开源第三方网易云音乐播放器你值得拥有介绍了一个开源的第三方网易云音乐播放器,这篇文章我们来详细了解一下其中使用到的网易云音乐api项目NeteaseCloudMusicApi的实 ...
- 网易云音乐api歌单数据获取
网易云音乐api歌单数据获取 网易作为IT大厂,数据可以说 藏的很严实,普通按个f12以为能搞到点东西,结果,看不到要的歌单信息,这可是愁死我了啊. 后来看了看知乎,一帮怪才集中的地方果然迸发了思维的 ...
- 你们要的歌单:网易云音乐收藏量前100的歌单
网易云音乐收藏量前100的歌单,这下不怕不够循环了, 纯音乐居多,国外音乐也多,特别小众的音乐还得靠自己发现. 温暖的假日下午,你手握咖啡看着书,听着轻音乐,多么惬意. 按照收藏量降序排序 90334 ...
- 网易云音乐API使用
网易云音乐API使用 网易云音乐API 1.安装 $ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git 或者 https://gi ...
- 网易云音乐API,的调用方法 ,vue项目中(在本地使用)
1. 在cmd 命令行下:安装并启动: git clone https://github.com/Binaryify/NeteaseCloudMusicApi.git /* 下载 */cd Netea ...
- 网易云音乐API使用教程与遇到的问题
网易云音乐API 简单又好用. 其实他那里面讲是很清楚了,有些地方小白不会,我帮他讲一下 1.在你的项目下 git clone git@github.com:Binaryify/NeteaseClou ...
- Github项目推荐:网易云音乐 API
网易云音乐 API Github项目地址:https://github.com/Binaryify/NeteaseCloudMusicApi Github文档地址:https://binaryify. ...
- 免费稳定 = 网易云音乐API
不知道为什么,自己对音乐比较痴迷,学习前端的时候总喜欢去借鉴什么音乐网站,但苦于没有稳定的后台数据,所以找到了这个基于Node的网易云音乐API,大家对可以直接通过 git clone ----> ...
最新文章
- Cannot find snapshot in models/VGGNet/VOC0712/SSD_300x300
- 2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
- mysql存储的判断if_if在数据库mysql存储中判断
- 简单地发布EJB程序的过程
- rust(28)-具名结构体
- Hive _偏门常用查询函数(二)附带实例(列转行、窗口函数)
- 关于Spring事务tx:annotation-driven/的理解(Controller可以使用@Transactional)
- python3装饰器例子_python 装饰器(三):装饰器实例(一)
- php个人扫码支付,PHP个人发卡网源码,支持MA支付对接,扫码自动发货
- 为什么沿梯度方向,函数变化最快???
- mysql order by子查询_sql子查询 order by失效问题
- Linux ubuntu centos 文件目录是什么意思
- RS-485 接口 EMC 电路设计
- 树莓派超详细基础开发教程
- 第十一章 第三将 项目风险管理
- 2018-8-10-win10-uwp-读取保存WriteableBitmap-、BitmapImage
- java实训报告心得体会,深度好文
- nginx配置路径、跨域、本机自定义server_name
- 献给杭电五十周年校庆的礼物
- 泪目!雷军突然卸任……