PyNCM API速查手册:覆盖歌曲、歌单、用户、搜索、云盘的最全实用接口清单
【免费下载链接】pyncm第三方网易云音乐 Python API + 转储工具项目地址: https://gitcode.com/gh_mirrors/py/pyncm
PyNCM 是一个开箱即用的第三方网易云音乐 Python API 库,它把网易云音乐网页端、PC 端和移动端的加密接口全部封装成了简单直观的函数,让你用几行 Python 代码就能完成歌曲信息获取、歌单管理、用户签到、搜索、云盘上传等操作。这份PyNCM API 速查手册将按模块为你梳理最常用的接口清单,无论你是想写爬虫、做播放器,还是给自己的小工具加个音乐功能,都能快速上手。
PyNCM 是什么?为什么值得用它?
市面上第三方音乐 API 不少,但 PyNCM 有三个突出优势:
- ✅免逆向:接口的 weapi / eapi 加密逻辑已被完整封装,你无需研究任何逆向知识
- ✅覆盖广:歌曲、歌单、专辑、歌手、MV、用户、搜索、云盘、电台应有尽有
- ✅带 CLI:除了 API,还内置命令行下载工具,可直接转储单曲、歌单与整张专辑
它的代码结构非常清晰,按功能拆分为多个模块文件,例如歌曲接口在pyncm/apis/track.py,歌单接口在pyncm/apis/playlist.py,后续查阅源码也很方便。
一键安装与登录:3 分钟跑通第一个接口
安装只需一条命令:
pip install pyncm💡 可选依赖:
mutagen(给下载的音乐打封面)、tqdm(显示下载进度)、coloredlogs(彩色日志)
调用接口前通常需要先登录。PyNCM 提供多种登录方式(见pyncm/apis/login.py):
| 登录方式 | 函数 | 适用场景 |
|---|---|---|
| 手机号登录 | LoginViaCellphone | 最常用,支持密码或验证码 |
| 邮箱登录 | LoginViaEmail | 老用户常用 |
| 二维码登录 | LoginQrcodeUnikey+LoginQrcodeCheck | 免输密码,扫码即登 |
| Cookie 登录 | LoginViaCookie | 传入 MUSIC_U 即可 |
| 匿名登录 | LoginViaAnonymousAccount | 不想要账号时快速体验 |
获取音频 URL 等接口需要登录态,如果暂时没有账号,匿名登录一行就能解决:
from pyncm.apis.login import LoginViaAnonymousAccount LoginViaAnonymousAccount()歌曲接口:获取音频、详情、歌词、评论一气呵成
歌曲相关的接口集中在pyncm/apis/track.py,这是整个手册里使用频率最高的模块:
| 功能 | 函数 | 说明 |
|---|---|---|
| 获取歌曲详情 | GetTrackDetail | 支持批量,一次最多 1000 首 |
| 获取音频地址 | GetTrackAudio | 按比特率取 URL,登录后更稳定 |
| 获取音质音频 V1 | GetTrackAudioV1 | 支持 standard / exhigh / lossless / hires |
| 获取下载直链 | GetTrackDownloadURL | 调用下载 API,注意有额度限制 |
| 获取歌词 | GetTrackLyrics | 可同时取翻译与罗马音版本 |
| 获取评论 | GetTrackComments | 支持翻页与时间戳定位 |
| 收藏 / 取消收藏 | SetLikeTrack | 一键加入「我喜欢的音乐」 |
| 听歌识曲 | GetMatchTrackByFP | 传入音频指纹即可匹配 |
核心用法就三行:
from pyncm import apis apis.track.GetTrackAudio(29732235) # 获取音频 apis.track.GetTrackDetail(29732235) # 获取详情 apis.track.GetTrackLyrics(29732235) # 获取歌词歌单接口:读取、创建、增删歌曲全掌握
歌单是网易云音乐的核心玩法,对应模块pyncm/apis/playlist.py:
| 功能 | 函数 | 说明 |
|---|---|---|
| 获取歌单信息 | GetPlaylistInfo | 含歌单名、trackIds 等 |
| 获取歌单全部歌曲 | GetPlaylistAllTracks | 自动拼装完整曲目列表 |
| 获取歌单评论 | GetPlaylistComments | 支持翻页 |
| 向歌单添加/删除歌曲 | SetManipulatePlaylistTracks | op参数传add或del |
| 新建歌单 | SetCreatePlaylist | 支持创建私享歌单 |
| 删除歌单 | SetRemovePlaylist | 支持批量 |
提示:未登录状态只能获取不完整的歌单内容,登录后才能拿到完整 tracks。
搜索接口:一个函数搜遍全部资源类型
搜索接口集中在pyncm/apis/cloudsearch.py,核心就一个函数GetSearchResult,通过stype参数切换资源类型:
| stype 常量 | 含义 |
|---|---|
SONG = 1 | 歌曲 |
ALBUM = 10 | 专辑 |
ARTIST = 100 | 歌手 |
PLAYLIST = 1000 | 歌单 |
USER = 1002 | 用户 |
MV = 1004 | MV |
LYRICS = 1006 | 歌词 |
DJ = 1009 | 电台 |
VIDEO = 1014 | 视频 |
示例:搜索「周杰伦」的歌曲与歌单:
from pyncm.apis.cloudsearch import GetSearchResult, SONG, PLAYLIST GetSearchResult("周杰伦", stype=SONG) # 搜歌曲 GetSearchResult("周杰伦", stype=PLAYLIST) # 搜歌单用户接口:查资料、看歌单、每日签到
用户模块pyncm/apis/user.py既能查别人,也能管理自己:
| 功能 | 函数 | 说明 |
|---|---|---|
| 获取用户资料 | GetUserDetail | 传入 user_id |
| 获取用户创建的歌单 | GetUserPlaylists | 默认一次取 1001 个 |
| 获取收藏的专辑 | GetUserAlbumSubs | 返回已收藏专辑列表 |
| 获取收藏的歌手 | GetUserArtistSubs | 返回已收藏歌手列表 |
| 每日签到 | SetSignin | 移动端 +4 EXP,网页端 +1 EXP |
| 提交足迹 | SetWeblog | 模拟用户行为记录 |
其中SetSignin是很多「自动签到脚本」的核心,传入SIGNIN_TYPE_MOBILE或SIGNIN_TYPE_WEB即可完成对应端签到。
云盘接口:上传、发布、纠偏一条龙
云盘模块pyncm/apis/cloud.py实现了完整的「个人云盘」流程,这在同类库中相当少见:
| 功能 | 函数 | 说明 |
|---|---|---|
| 获取云盘内容 | GetCloudDriveInfo | 分页拉取云盘歌曲 |
| 获取云盘项目详情 | GetCloudDriveItemInfo | 按 ID 批量查询 |
| 申请上传令牌 | GetNosToken | 上传第一步 |
| 上传文件本体 | SetUploadObject | 支持断点续传 |
| 检查云盘资源 | GetCheckCloudUpload | 通过 MD5 查重 |
| 提交云盘信息 | SetUploadCloudInfo | 填写歌名、歌手、专辑 |
| 发布云盘资源 | SetPublishCloudResource | 上传完成后发布 |
| 歌曲纠偏 | SetRectifySongId | 修正匹配错误的歌曲 ID |
完整的云盘上传流程可参考示例脚本demos/云盘上传.py。
拓展接口:专辑、歌手、MV 与迷你节目
除了上面五大核心模块,还有不少实用接口值得收藏:
- 专辑(
pyncm/apis/album.py):GetAlbumInfo获取专辑详情、GetAlbumComments获取专辑评论 - 歌手(
pyncm/apis/artist.py):GetArtistTracks获取歌手热门歌曲、GetArtistAlbums获取歌手专辑、GetArtistDetails获取歌手资料 - MV(
pyncm/apis/video.py):GetMVDetail获取 MV 详情、GetMVResource按清晰度取 MV 资源 - 电台与场景 FM(
pyncm/apis/miniprograms/目录):radio.py的每日电台推荐与红心/垃圾桶操作、difm.py的频道歌单、sportsfm.py的运动 FM、zonefm.py的场景 FM 都有对应封装
常见问题与避坑指南
Q1:为什么GetTrackAudio拿不到音频 URL?A:绝大多数情况是因为未登录。先调用任意登录函数(包括匿名登录)再取音频即可,原因详见项目 README 的 FAQ 说明。
Q2:批量接口一次能传多少歌曲 ID?A:GetTrackDetail、GetTrackAudio等接口要求 song_ids 数量 ≤ 1000。
Q3:海外用户报错 460「Cheating」怎么办?A:在 Session 中手动添加 Header:X-Real-IP = 118.88.88.88即可解决。
Q4:如何保存并恢复登录态?A:PyNCM 提供了完善的 Session 序列化能力:用DumpSessionAsString()导出登录态字符串,之后用LoadSessionFromString()恢复,配合pyncm/__init__.py中的 Session 管理函数即可实现「一次登录、长期复用」。
结语
这份PyNCM API 速查手册覆盖了歌曲、歌单、用户、搜索、云盘五大核心场景,配合专辑、歌手、MV、电台等拓展接口,已经能满足绝大多数网易云音乐相关的开发需求。上手路径很简单:先pip install pyncm,再跑一个登录接口,然后按本手册的接口清单逐个尝试即可。如果需要更多参考,demos/目录下提供了二维码登录、云盘上传、歌单同步、足迹伪装等完整示例脚本,照着改就能快速出成果。快去试试吧!🚀
【免费下载链接】pyncm第三方网易云音乐 Python API + 转储工具项目地址: https://gitcode.com/gh_mirrors/py/pyncm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考