吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15261|回复: 34
收起左侧

[其他原创] C# 网易云音乐API 多达100+ 支持登录,无损下载

  [复制链接]
wwh1004 发表于 2019-8-22 15:40
本帖最后由 wwh1004 于 2019-8-22 17:44 编辑

NeteaseCloudMusicApi Build status NuGet

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)

功能特性

  1. 登录
  2. 刷新登录
  3. 发送验证码
  4. 校验验证码
  5. 注册(修改密码)
  6. 获取用户信息 , 歌单,收藏,mv, dj 数量
  7. 获取用户歌单
  8. 获取用户电台
  9. 获取用户关注列表
  10. 获取用户粉丝列表
  11. 获取用户动态
  12. 获取用户播放记录
  13. 获取精品歌单
  14. 获取歌单详情
  15. 搜索
  16. 搜索建议
  17. 获取歌词
  18. 歌曲评论
  19. 收藏单曲到歌单
  20. 专辑评论
  21. 歌单评论
  22. mv 评论
  23. 电台节目评论
  24. banner
  25. 获取歌曲详情
  26. 获取专辑内容
  27. 获取歌手单曲
  28. 获取歌手 mv
  29. 获取歌手专辑
  30. 获取歌手描述
  31. 获取相似歌手
  32. 获取相似歌单
  33. 相似 mv
  34. 获取相似音乐
  35. 获取最近 5 个听了这首歌的用户
  36. 获取每日推荐歌单
  37. 获取每日推荐歌曲
  38. 私人 FM
  39. 签到
  40. 喜欢音乐
  41. 垃圾桶
  42. 歌单 ( 网友精选碟 )
  43. 新碟上架
  44. 热门歌手
  45. 最新 mv
  46. 推荐 mv
  47. 推荐歌单
  48. 推荐新音乐
  49. 推荐电台
  50. 推荐节目
  51. 独家放送
  52. mv 排行
  53. 获取 mv 数据
  54. 播放 mv/视频
  55. 排行榜
  56. 歌手榜
  57. 云盘
  58. 电台 - 推荐
  59. 电台 - 分类
  60. 电台 - 分类推荐
  61. 电台 - 订阅
  62. 电台 - 详情
  63. 电台 - 节目
  64. 给评论点赞
  65. 获取动态
  66. 热搜列表(简略)
  67. 发送私信
  68. 发送私信歌单
  69. 新建歌单
  70. 收藏/取消收藏歌单
  71. 歌单分类
  72. 收藏的歌手列表
  73. 订阅的电台列表
  74. 相关歌单推荐
  75. 付费精选接口
  76. 音乐是否可用检查接口
  77. 登录状态
  78. 获取视频播放地址
  79. 发送/删除评论
  80. 热门评论
  81. 视频评论
  82. 退出登录
  83. 所有榜单
  84. 所有榜单内容摘要
  85. 收藏视频
  86. 收藏 MV
  87. 视频详情
  88. 相关视频
  89. 关注用户
  90. 新歌速递
  91. 喜欢音乐列表(无序)
  92. 收藏的 MV 列表
  93. 获取最新专辑
  94. 听歌打卡
  95. 获取视频标签下的视频
  96. 已收藏专辑列表
  97. 获取动态评论
  98. 歌单收藏者列表
  99. 云盘歌曲删除
  100. 热门话题
  101. 电台 - 推荐类型
  102. 电台 - 非热门类型
  103. 电台 - 今日优选
  104. 心动模式/智能播放
  105. 转发动态
  106. 删除动态
  107. 分享歌曲、歌单、mv、电台、电台节目到动态
  108. 通知-私信
  109. 通知-评论
  110. 通知-@我
  111. 通知-通知
  112. 设置
  113. 云盘数据详情
  114. 私信内容
  115. 我的数字专辑
  116. batch批量请求接口
  117. 获取视频标签列表
  118. 全部mv
  119. 网易出品mv
  120. 收藏/取消收藏专辑
  121. 专辑动态信息
  122. 热搜列表(详细)
  123. 更换绑定手机
  124. 检测手机号码是否已注册
  125. 初始化昵称
  126. 更新歌单描述
  127. 更新歌单名
  128. 更新歌单标签
  129. 默认搜索关键词
  130. 删除歌单
  131. 电台banner
  132. 用户电台
  133. 热门电台
  134. 电台 - 节目详情

样例

实例化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 - 使用本项目自动搜索下载歌词

免费评分

参与人数 13吾爱币 +16 热心值 +12 收起 理由
kesshei + 1 + 1 我很赞同!
Key君 + 1 + 1 用心讨论,共获提升!
gdfyhao + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
袅袅系秋风 + 1 + 1 热心回复!
mengjingting + 1 谢谢@Thanks!
Transmineral + 1 + 1 谢谢@Thanks!
peter336620 + 1 + 1 吊吊吊!API都出来了牛逼
wangls10 + 1 + 1 热心回复!
zHiHz + 1 + 1 我很赞同!
Yuanshen + 1 + 1 谢谢@Thanks!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
非凡公子 + 1 + 1 脱壳大佬写工具也很吊
asq56747277 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 533, 订阅: 84

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wwh1004 发表于 2019-8-24 20:01
Lance_W_Fukt 发表于 2019-8-24 18:21
可以写一下  无损音乐 案例吗  看https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=%e8%8e%b7%e5%8 ...

登录之后调用这个接口就会返回无损音乐的地址了(如果是VIP,而且有无损音源)
Lance_W_Fukt 发表于 2019-8-24 18:21
可以写一下  无损音乐 案例吗  看https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=%e8%8e%b7%e5%8f%96%e9%9f%b3%e4%b9%90-url
把我给看晕了
18671758764 发表于 2019-8-22 15:49
斯国以内! 发表于 2019-8-22 15:56
厉害,摩拜
今夕何兮 发表于 2019-8-22 16:26
感谢分享
hillla 发表于 2019-8-22 16:30
好东西,分享
ibrucekong 发表于 2019-8-22 16:37
好东西,我的C#技能近乎零
lkf2432 发表于 2019-8-22 16:41
牛。收藏了
x903222 发表于 2019-8-22 16:59
好东西。可以不会用
mosou 发表于 2019-8-22 17:02
已star 兄得
zHiHz 发表于 2019-8-22 17:08
good job 兄得
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 15:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表