网易云音乐API NeteaseCloudMusicApi项目的 Python SDK
Project description
更新信息
0.1.10 (2023-12-19)
Misc
- workflow_update
NeteaseCloudMusic_PythonSDK
基于 NeteaseCloudMusicApi 封装的 Python SDK。 网易云API Python版本。 现已同步原项目接口且测试通过的有200多个 已发布到PyPi,可直接使用pip安装 项目地址:GitHub
依赖于
原理
- 通过
py_mini_racer
调用NeteaseCloudMusicApi_V8
的js
方法。进一步进行了简单封装。
使用
- 安装
pip install NeteaseCloudMusic
- 导入API进行使用(具体查看
example.py
中的示例)
from NeteaseCloudMusic import NeteaseCloudMusicApi, api_help, api_list
import os
netease_cloud_music_api = NeteaseCloudMusicApi() # 初始化API
netease_cloud_music_api.cookie = "你的cookie" # 设置cookie, 如果没有cookie需要先登录 具体见example.py
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文档,name支持
/song/url/v1
和song_url_v1
两种写法。
api已加入自动缓存,在测试接口时,如果频繁调用获取结果在query里应该加上timestamp参数来区分,例如
response = netease_cloud_music_api.request("song_url_v1", {"id": 33894312, "level": "exhigh", "timestamp": time.time()})
开发
- 克隆项目
git clone git@github.com:2061360308/NeteaseCloudMusic_PythonSDK.git
- 安装依赖
pip install -r requirements.txt
- 目录/文件说明
├── package 项目包根目录
├── test_gender 生成测试代码的脚本
├── test.py 手动测试/ 使用示例
更新
项目使用towncrier自动生成更新日志
在 newsfragments 目录下,创建一个新的文本文件。这个文件的名字应该是一个唯一的编号,后缀是 .rst。 例如,如果你正在处理编号为 123 的问题,你可以创建一个名为 123.feature.rst 的文件。
注意在 towncrier 中,新闻片段的类型通常由文件名的后缀决定。以下是一些常见的新闻片段类型:
- .feature: 用于描述新的特性或者功能。
- .bugfix: 用于描述一个 bug 修复。
- .doc: 用于描述文档的更改。
- .removal: 用于描述移除的特性或者功能。
- .misc: 用于描述其他类型的更改。
在这个文件中,写下你的更改的描述。这个描述应该是简短的,通常只有一到两句话。
例如Added support for the XYZ feature.
发布新版本
自动: 运行 python publish.py
手动: 使用bumpversion自动更新版本号,提交并发布标签 你需要安装bumpversion然后执行
bumpversion patch # for a patch level increase (e.g., 1.0.0 to 1.0.1)
bumpversion minor # for a minor level increase (e.g., 1.0.0 to 1.1.0)
bumpversion major # for a major level increase (e.g., 1.0.0 to 2.0.0)
接下来会自动更新版本号并提交到远程仓库,然后发布一个新的标签 workflow会依据标签自动发布相应资源并且发布到pypi
改进
下列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
更正request库返回多个cookie时自动用分号拼接导致后续cookie不好解析的问题 添加了对cookie中Max-Age为0的处理 改进判断cookie是否过期的逻辑 添加了自动处理cookie的更新操作
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file NeteaseCloudMusic-0.1.10.tar.gz
.
File metadata
- Download URL: NeteaseCloudMusic-0.1.10.tar.gz
- Upload date:
- Size: 294.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8f820f69aa157c29e2ea0c67ba0d7c3356dac855e0d659ed9e12269863ec23b |
|
MD5 | 1d793c1f89f8be64fef15a03ff6ae8a5 |
|
BLAKE2b-256 | 434592f6b32687202ab379a3339a0b58b78a66ef8d900ce8871d85835fec73a1 |
File details
Details for the file NeteaseCloudMusic-0.1.10-py2.py3-none-any.whl
.
File metadata
- Download URL: NeteaseCloudMusic-0.1.10-py2.py3-none-any.whl
- Upload date:
- Size: 295.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91a96f2e48a66130ff691028907a897ce8edf9848b3dcd4bfddcab4b09a2678d |
|
MD5 | 345b2fdaf3eb6ca6644364e0f7f166d4 |
|
BLAKE2b-256 | a33788118a849b6e979342a227b49301ab67feef2168ed92b820f0b4655cfb20 |