13 KiB
NeteaseCloudMusic_PythonSDK
现已同步原项目接口且测试通过的有200多个 👋 👋 ⭐ 求赞 ⭐
基于 NeteaseCloudMusicApi 封装的 Python SDK。 网易云API Python版本。 已发布到PyPi,可直接使用pip安装。项目地址:GitHub
在此感谢
NeteaseCloudMusicApi
项目及其作者Binaryify
当然也感谢史上最最最好用的听歌软件——网易云音乐
项目仅用于学习,还望大家合理使用该项目
🍀项目背景
Binaryify 创建了有趣的项目NeteaseCloudMusicApi提供了较为完善的网易云接口。
但是这个项目是基于Node服务器的,对于不懂Node或是服务器搭建的小伙伴来说不易于上手,而且开发出来的项目开源后也必须依赖于Node后端服务。
这样一来这些衍生的项目在介绍时就离不开告诉使用者“如何搭建后端等等的一系列操作”,增加了项目上手的难度。他人没法快速体验一番你的作品,需要先学习后端的搭建。
事实上,我们知道,除却在网页上独有的限制,只能依赖于服务器转发,在其他平台我们完全可以不需要服务器。
所以这个Python项目诞生了。😂😂😂
❤️作者寄语
本项目使用Python开发,在我影响中这是一门活跃的语言,也有一群拥有许许多多“奇思妙想”的使用者。NeteaseCloudMusicApi项目开源有好多年了,得到了3万颗星,但在此之前,我发现大多都是“前端们”使用前端技术(vue,electron)进行创作,这次我把这个接口项目封装到Python平台,相信小伙伴们一定能为这个优质项目注入新的活力!
希望你们在开心创作的同时能够有不菲的收获。
🍄项目用途
- 仿网易云制作出专属于你的音乐软件
- 赋予你的项目“音乐的力量”
- 嗯,互联网上“下歌”,“获取歌词”,等等的炫酷操作你也能轻松实现了
- 其他有待创新……
💪项目特点
- 完全封装于Python,不含其他知识点,不用自己处理网络请求,小白可用
- 不需要Node后端!!所有内容都封装到了库内部,可以随你的项目直接打包,其他人也可以直接下载体验,无需配置后端
- 发布到PyPI,简单使用
- 基于Python调用ECMScript,没有打包繁重的Node环境,体积小,效率高。
依赖于
项目原理
- 通过
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()})
👀开发
如果想要参与项目开发,或是自己修改源码,请参照开发指南。
测试
测试文件见api_test.py,测试使用了pytest
框架
测试结果请见report.html
🌸功能特性
项目初创,一些涉及上传东西的接口等还未进行支持,具体可见下方未支持的接口(急需某个未支持的接口可以发issue,我会优先解决)
接口文档具体参考原文档NeteaseCloudMusicApi文档
- 登录
- 刷新登录
- 发送验证码
- 校验验证码
- 注册(修改密码)
- 获取用户信息 , 歌单,收藏,mv, dj 数量
- 获取用户歌单
- 获取用户电台
- 获取用户关注列表
- 获取用户粉丝列表
- 获取用户动态
- 获取用户播放记录
- 获取精品歌单
- 获取歌单详情
- 搜索
- 搜索建议
- 获取歌词
- 歌曲评论
- 收藏单曲到歌单
- 专辑评论
- 歌单评论
- mv 评论
- 电台节目评论
- banner
- 获取歌曲详情
- 获取专辑内容
- 获取歌手单曲
- 获取歌手 mv
- 获取歌手专辑
- 获取歌手描述
- 获取相似歌手
- 获取相似歌单
- 相似 mv
- 获取相似音乐
- 获取最近 5 个听了这首歌的用户
- 获取每日推荐歌单
- 获取每日推荐歌曲
- 私人 FM
- 签到
- 喜欢音乐
- 垃圾桶
- 歌单 ( 网友精选碟 )
- 新碟上架
- 热门歌手
- 最新 mv
- 推荐 mv
- 推荐歌单
- 推荐新音乐
- 推荐电台
- 推荐节目
- 独家放送
- mv 排行
- 获取 mv 数据
- 播放 mv/视频
- 排行榜
- 歌手榜
- 云盘
- 电台 - 推荐
- 电台 - 分类
- 电台 - 分类推荐
- 电台 - 订阅
- 电台 - 详情
- 电台 - 节目
- 给评论点赞
- 获取动态
- 热搜列表(简略)
- 发送私信
- 发送私信歌单
- 新建歌单
- 收藏/取消收藏歌单
- 歌单分类
- 收藏的歌手列表
- 订阅的电台列表
- 相关歌单推荐
- 付费精选接口
- 音乐是否可用检查接口
- 登录状态
- 获取视频播放地址
- 发送/删除评论
- 热门评论
- 视频评论
- 退出登录
- 所有榜单
- 所有榜单内容摘要
- 收藏视频
- 收藏 MV
- 视频详情
- 相关视频
- 关注用户
- 新歌速递
- 喜欢音乐列表(无序)
- 收藏的 MV 列表
- 获取最新专辑
- 听歌打卡
- 获取视频标签/分类下的视频
- 已收藏专辑列表
- 获取动态评论
- 歌单收藏者列表
- 云盘歌曲删除
- 热门话题
- 电台 - 推荐类型
- 电台 - 非热门类型
- 电台 - 今日优选
- 心动模式/智能播放
- 转发动态
- 删除动态
- 分享歌曲、歌单、mv、电台、电台节目到动态
- 通知-私信
- 通知-评论
- 通知-@我
- 通知-通知
- 设置
- 云盘数据详情
- 私信内容
- 我的数字专辑
- batch批量请求接口
- 获取视频标签列表
- 全部mv
- 网易出品mv
- 收藏/取消收藏专辑
- 专辑动态信息
- 热搜列表(详细)
- 更换绑定手机
- 检测手机号码是否已注册
- 初始化昵称
- 更新歌单描述
- 更新歌单名
- 更新歌单标签
- 默认搜索关键词
- 删除歌单
- 电台banner
- 用户电台
- 热门电台
- 电台 - 节目详情
- 电台 - 节目榜
- 电台 - 新晋电台榜/热门电台榜
- 类别热门电台
- 云村热评
- 电台24小时节目榜
- 电台24小时主播榜
- 电台最热主播榜
- 电台主播新人榜
- 电台付费精品榜
- 歌手热门50首歌曲
- 购买数字专辑
- 获取 mv 点赞转发评论数数据
- 获取视频点赞转发评论数数据
- 调整歌单顺序
- 调整歌曲顺序
- 独家放送列表
- 获取推荐视频
- 获取视频分类列表
- 获取全部视频列表接口
- 获取历史日推可用日期列表
- 获取历史日推详细数据
- 国家编码列表
- 首页-发现
- 首页-发现-圆形图标入口列表
- 数字专辑-全部新碟
- 数字专辑-热门新碟
- 数字专辑&数字单曲-榜单
- 数字专辑-语种风格馆
- 数字专辑详情
- 更新头像
- 歌单封面上传
- 楼层评论
- 歌手全部歌曲
- 精品歌单标签列表
- 用户等级信息
- 电台个性推荐
- 用户绑定信息
- 用户绑定手机
- 新版评论
- 点赞过的视频
- 收藏视频到视频歌单
- 删除视频歌单里的视频
- 最近播放的视频
- 音乐日历
- 电台订阅者列表
- 云贝签到信息
- 云贝签到
- 云贝所有任务
- 云贝todo任务
- 云贝今日签到信息
- 云贝完成任务
- 云贝收入
- 云贝支出
- 云贝账户信息
- 账号信息
- 最近联系人
- 私信音乐
- 抱一抱评论
- 评论抱一抱列表
- 收藏的专栏
- 关注歌手新歌
- 关注歌手新MV
- 歌手详情
- 云盘上传
- 二维码登录
- 话题详情
- 话题详情热门动态
- 歌单详情动态
- 绑定手机
- 一起听状态
- 用户历史评论
- 云盘歌曲信息匹配纠正
- 云贝推歌
- 云贝推歌历史记录
- 已购单曲
- 获取mlog播放地址
- 将mlog id转为视频id
- vip成长值
- vip成长值获取记录
- vip任务
- 领取vip成长值
- 歌手粉丝
- 数字专辑详情
- 数字专辑销量
- 音乐人数据概况
- 音乐人播放趋势
- 音乐人任务
- 账号云豆数
- 领取云豆
- 获取 VIP 信息
- 音乐人签到
- 发送文本动态
- 获取客户端歌曲下载 url
- 获取歌单所有歌曲
- 乐签信息
- 最近播放-歌曲
- 最近播放-视频
- 最近播放-声音
- 最近播放-歌单
- 最近播放-专辑
- 最近播放-播客
- 签到进度
- 重复昵称检测
- 歌手粉丝数量
- 音乐人任务(新)
- 内部版本接口
- 歌单更新播放量
- 黑胶时光机
- 音乐百科 - 简要信息
- 乐谱列表
- 乐谱内容
- 曲风列表
- 曲风偏好
- 曲风详情
- 曲风-歌曲
- 曲风-专辑
- 曲风-歌单
- 曲风-歌手
- 私信和通知接口
- 回忆坐标
- 播客搜索
- 播客声音上传
- 验证接口-二维码生成
- 验证接口-二维码检测
- 听歌识曲
- 根据nickname获取userid接口
- 播客声音列表
- 专辑简要百科信息
- 歌曲简要百科信息
- 歌手简要百科信息
- mv简要百科信息
- 搜索歌手
- 用户贡献内容
- 用户贡献条目、积分、云贝数量
- 年度听歌报告
- 播客声音搜索
改进
下列API未支持
- 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