网易云音乐核心 API 客户端。
这个项目的目的是抽离一个干净的 API Client,便于二次开发和维护。
主要代码来自NetEase-MusicBox,非常感谢每一位该项目的贡献者。
警告,目前 API 尚未稳定,不保证兼容性。万一有新点子说不定就会改。
此外欢迎 code review 和 pull request。
使用 pip 安装
pip install NEMCore
文档生成需要额外依赖项
pip install NEMCore[docs]
单元测试需要额外依赖
pip install NEMCore[test]
from nemcore.api import NetEaseApi
netease = NetEaseApi(cookie_path='./cookies')
netease.login('cloudmusic@163.com', 'password')
# 获取我的歌单
playlists = netease.get_user_playlist()
# 获取日推
recommend = netease.get_recommend_songs()
# 签到
netease.daily_task()
详细的 api 文档和快速开始请参考这里。
- 添加测试用例
- 规范命名和返回值结构
- 提供可配置的缓存(是否持久化,缓存有效时间等)
- 提供文档,挂在readthedocs.io上。
- 重构简化 api 和实现。
- 提供助手函数,实现一些常用操作
- 移除 python2 支持(
__future__
等),迁移到 python3.6+ - 支持异步(考虑
aiohttp
)
- fix ImportError about filelock
BREAKING CHANGE !
- API 返回类型修改和标注
- 修复
login
接口登录失败错误
本版本主要修复影响运行的问题,把包构建从poetry
改为setuptools
。
在poetry
可用性足够之前不会用它了。
- 修复
from cachetools.ttl import default_timer
失败的问题 - 从
poetry
迁移到setuptools
有一些已知的问题如下。
login
会抛出错误代码501
,暂时没找到好办法处理。
本版本主要是对代码进行重构,将核心 Api 类清晰化,解耦无关逻辑,简化了使用。
此外,提供了比较详细的入门文档,帮助使用者快速了解使用方式和 api 的响应内容。
不过 api 文档不是很好,需要改进。
nemcore.netease
模块重命名成nemcore.api
nemcore.netease.NetEase
重命名成nemcore.api.NetEaseApi
- 删除
nemcore.conf
模块 - 删除
nemcore.storage
模块 - 删除
nemcore.parser
模块 - 删除
nemcore.pdict
模块 - 添加 sphinx 文档和快速开始指引,文档已经挂到了 readthedocs.io
- 支持缓存。基于
pickle
和cachetools
实现,可配置缓存时间和是否持久化