# NeteaseCloudMusic_PythonSDK
> 基于 [ NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) 封装的 Python SDK。
> 网易云API Python版本。
> 现已同步原项目接口且测试通过的有200多个
> 已发布到PyPi,可直接使用pip安装
> 项目地址:[GitHub](https://github.com/2061360308/NeteaseCloudMusic_PythonSDK)


### 依赖于
- [ NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi)
- [ NeteaseCloudMusicApi_V8 ](https://github.com/2061360308/NeteaseCloudMusicApi_V8)
### 原理
- 通过 `py_mini_racer` 调用 `NeteaseCloudMusicApi_V8` 的 `js` 方法。进一步进行了简单封装。
### 使用
- 安装 `pip install NeteaseCloudMusic`
- 导入API进行使用(具体查看`test.py`中的示例)
```python
from NeteaseCloudMusic import NeteaseCloudMusicApi, api_help, api_list
import os
netease_cloud_music_api = NeteaseCloudMusicApi() # 初始化API
netease_cloud_music_api.cookie = os.getenv("COOKIE") # 设置cookie
response = netease_cloud_music_api.request("song_url_v1", {"id": 33894312, "level": "exhigh"}) # 调用API
# 获取帮助
print(api_help())
print(api_help('song_url_v1'))
# 获取API列表
print(api_list())
```
> 注意: request(self, name, query=None) 的第一个参数为API名称,第二个参数为API参数,具体API名称和参数请参考 [NeteaseCloudMusicApi文档](https://docs.neteasecloudmusicapi.binaryify.com),name支持`/song/url/v1`和`song_url_v1`两种写法。
### 开发
- 克隆项目 `git clone git@github.com:2061360308/NeteaseCloudMusic_PythonSDK.git`
- 安装依赖 `pip install -r requirements.txt`
- 目录/文件说明
├── package 项目包根目录
├── test_gender 生成测试代码的脚本
├── test.py 手动测试/ 使用示例
### 改进
> 下列API未支持
>
- apicache.js
- memory-cache.js
- request_reference.js
- avatar_upload.js
- cloud.js
- playlist_cover_update.js
- voice_upload.js
- register_anonimous.js
- verify_getQr.js
> 以下api未测试(这些接口测试起来比较繁琐)
>
- /user/replacephone
- /audio/match
- /rebind
- /nickname/check
- /activate/init/profile
- /cellphone/existence/check
- /register/cellphone
- /captcha/verify
- /captcha/sent
- /login/refresh
- /logout
- /user/update
- /pl/count
- /playlist/update
- /playlist/desc/update
- /playlist/name/update
- /playlist/tags/update
- /event/forward
- /event/del
- /share/resource
- /send/text
- /send/playlist
- /playlist/create
- /playlist/tracks
- /daily_signin
- /fm_trash
### 欢迎提交PR
Raw data
{
"_id": null,
"home_page": "https://github.com/me/myproject",
"name": "NeteaseCloudMusicApi",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6.0",
"maintainer_email": "",
"keywords": "",
"author": "Awesome Soul",
"author_email": "me@example.com",
"download_url": "https://files.pythonhosted.org/packages/95/3d/90bf62fd476144b2a5679bfe9e7b3f66cb85b36f85ac6f85200a4e86ef35/NeteaseCloudMusicApi-0.1.2.tar.gz",
"platform": null,
"description": "\r\n# NeteaseCloudMusic_PythonSDK\r\n> \u57fa\u4e8e [ NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) \u5c01\u88c5\u7684 Python SDK\u3002\r\n> \u7f51\u6613\u4e91API Python\u7248\u672c\u3002\r\n> \u73b0\u5df2\u540c\u6b65\u539f\u9879\u76ee\u63a5\u53e3\u4e14\u6d4b\u8bd5\u901a\u8fc7\u7684\u6709200\u591a\u4e2a\r\n> \u5df2\u53d1\u5e03\u5230PyPi\uff0c\u53ef\u76f4\u63a5\u4f7f\u7528pip\u5b89\u88c5\r\n> \u9879\u76ee\u5730\u5740\uff1a[GitHub](https://github.com/2061360308/NeteaseCloudMusic_PythonSDK)\r\n\r\n\r\n\r\n\r\n### \u4f9d\u8d56\u4e8e\r\n- [ NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi)\r\n- [ NeteaseCloudMusicApi_V8 ](https://github.com/2061360308/NeteaseCloudMusicApi_V8)\r\n\r\n### \u539f\u7406\r\n- \u901a\u8fc7 `py_mini_racer` \u8c03\u7528 `NeteaseCloudMusicApi_V8` \u7684 `js` \u65b9\u6cd5\u3002\u8fdb\u4e00\u6b65\u8fdb\u884c\u4e86\u7b80\u5355\u5c01\u88c5\u3002\r\n\r\n### \u4f7f\u7528\r\n- \u5b89\u88c5 `pip install NeteaseCloudMusic`\r\n- \u5bfc\u5165API\u8fdb\u884c\u4f7f\u7528(\u5177\u4f53\u67e5\u770b`test.py`\u4e2d\u7684\u793a\u4f8b)\r\n```python\r\nfrom NeteaseCloudMusic import NeteaseCloudMusicApi, api_help, api_list\r\nimport os\r\n\r\nnetease_cloud_music_api = NeteaseCloudMusicApi() # \u521d\u59cb\u5316API\r\nnetease_cloud_music_api.cookie = os.getenv(\"COOKIE\") # \u8bbe\u7f6ecookie\r\nresponse = netease_cloud_music_api.request(\"song_url_v1\", {\"id\": 33894312, \"level\": \"exhigh\"}) # \u8c03\u7528API\r\n\r\n# \u83b7\u53d6\u5e2e\u52a9\r\nprint(api_help())\r\nprint(api_help('song_url_v1'))\r\n# \u83b7\u53d6API\u5217\u8868\r\nprint(api_list())\r\n```\r\n\r\n> \u6ce8\u610f\uff1a request(self, name, query=None) \u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3aAPI\u540d\u79f0\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u4e3aAPI\u53c2\u6570\uff0c\u5177\u4f53API\u540d\u79f0\u548c\u53c2\u6570\u8bf7\u53c2\u8003 [NeteaseCloudMusicApi\u6587\u6863](https://docs.neteasecloudmusicapi.binaryify.com)\uff0cname\u652f\u6301`/song/url/v1`\u548c`song_url_v1`\u4e24\u79cd\u5199\u6cd5\u3002\r\n\r\n\r\n### \u5f00\u53d1\r\n- \u514b\u9686\u9879\u76ee `git clone git@github.com:2061360308/NeteaseCloudMusic_PythonSDK.git`\r\n- \u5b89\u88c5\u4f9d\u8d56 `pip install -r requirements.txt`\r\n- \u76ee\u5f55/\u6587\u4ef6\u8bf4\u660e\r\n\u251c\u2500\u2500 package \u9879\u76ee\u5305\u6839\u76ee\u5f55\r\n\u251c\u2500\u2500 test_gender \u751f\u6210\u6d4b\u8bd5\u4ee3\u7801\u7684\u811a\u672c\r\n\u251c\u2500\u2500 test.py \u624b\u52a8\u6d4b\u8bd5/ \u4f7f\u7528\u793a\u4f8b\r\n\r\n\r\n### \u6539\u8fdb\r\n> \u4e0b\u5217API\u672a\u652f\u6301\r\n>\r\n- apicache.js\r\n- memory-cache.js\r\n- request_reference.js\r\n- avatar_upload.js\r\n- cloud.js\r\n- playlist_cover_update.js\r\n- voice_upload.js\r\n- register_anonimous.js\r\n- verify_getQr.js\r\n\r\n> \u4ee5\u4e0bapi\u672a\u6d4b\u8bd5(\u8fd9\u4e9b\u63a5\u53e3\u6d4b\u8bd5\u8d77\u6765\u6bd4\u8f83\u7e41\u7410)\r\n> \r\n- /user/replacephone\r\n- /audio/match\r\n- /rebind\r\n- /nickname/check\r\n- /activate/init/profile\r\n- /cellphone/existence/check\r\n- /register/cellphone\r\n- /captcha/verify\r\n- /captcha/sent\r\n- /login/refresh\r\n- /logout\r\n- /user/update\r\n- /pl/count\r\n- /playlist/update\r\n- /playlist/desc/update\r\n- /playlist/name/update\r\n- /playlist/tags/update\r\n- /event/forward\r\n- /event/del\r\n- /share/resource\r\n- /send/text\r\n- /send/playlist\r\n- /playlist/create\r\n- /playlist/tracks\r\n- /daily_signin\r\n- /fm_trash\r\n\r\n### \u6b22\u8fce\u63d0\u4ea4PR\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\u7f51\u6613\u4e91\u97f3\u4e50API NeteaseCloudMusicApi\u9879\u76ee\u7684 Python SDK",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/me/myproject"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e1130c94fcae8a3253bf593bf26dd02516d22f2e52884959a623f93fd782917a",
"md5": "cb041163dd380dacdab8647b09cfb26f",
"sha256": "9cd4778cbfceba1e054abbe645f43e7e59ac8ba7b7564e51f596bdc388733b3a"
},
"downloads": -1,
"filename": "NeteaseCloudMusicApi-0.1.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "cb041163dd380dacdab8647b09cfb26f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6.0",
"size": 1347768,
"upload_time": "2023-12-11T15:28:31",
"upload_time_iso_8601": "2023-12-11T15:28:31.207465Z",
"url": "https://files.pythonhosted.org/packages/e1/13/0c94fcae8a3253bf593bf26dd02516d22f2e52884959a623f93fd782917a/NeteaseCloudMusicApi-0.1.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "953d90bf62fd476144b2a5679bfe9e7b3f66cb85b36f85ac6f85200a4e86ef35",
"md5": "d28d7d1663287876c5887fa5eca9d68d",
"sha256": "3b59e68fce10926b88aea2e79a32d209e7ad072120e62f4942aeae36758fa186"
},
"downloads": -1,
"filename": "NeteaseCloudMusicApi-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "d28d7d1663287876c5887fa5eca9d68d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 1274177,
"upload_time": "2023-12-11T15:28:34",
"upload_time_iso_8601": "2023-12-11T15:28:34.469805Z",
"url": "https://files.pythonhosted.org/packages/95/3d/90bf62fd476144b2a5679bfe9e7b3f66cb85b36f85ac6f85200a4e86ef35/NeteaseCloudMusicApi-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-11 15:28:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "me",
"github_project": "myproject",
"github_not_found": true,
"lcname": "neteasecloudmusicapi"
}