NCM API Rust SDK 接口文档
March 11, 2026 · View on GitHub
本文档对应 NeteaseCloudMusicApi Enhanced 的 Rust SDK 版本,涵盖所有已实现的接口。
所有接口方法均挂载在
ApiClient上,通过Query对象传参。使用前请先阅读 README 了解基本用法。
目录
- 登录相关
- 用户相关
- 歌曲相关
- 搜索相关
- 歌单相关
- 评论相关
- 歌手相关
- 专辑相关
- MV 相关
- 视频相关
- 电台相关
- 推荐相关
- 排行榜相关
- 云盘相关
- 私信相关
- VIP/会员
- 云贝
- 听歌足迹
- 风格/曲风
- 数字专辑
- 声音/播客
- 音乐人
- 粉丝中心
- UGC 百科
- 一起听
- 广播电台
- 其他
登录相关
邮箱登录
说明 : 登录有三个接口,不要频繁调用登录接口,不然可能会被风控,登录状态还存在就不要重复调用登录接口
必选参数 : email : 163 网易邮箱 ; password : 密码
可选参数 : md5_password : md5 加密后的密码,传入后 password 将失效
方法名 : login
调用例子 :
let query = Query::new()
.param("email", "xxx@163.com")
.param("password", "yyy");
let result = client.login(&query).await?;
手机登录
说明 : 手机号码登录
必选参数 : phone : 手机号码
可选参数 :
password: 密码countrycode: 国家码,用于国外手机号登录,例如美国传入1md5_password: md5 加密后的密码,传入后password参数将失效captcha: 验证码,使用captcha_sent接口传入手机号获取验证码,调用此接口传入验证码可使用验证码登录,传入后password参数将失效
方法名 : login_cellphone
调用例子 :
let query = Query::new()
.param("phone", "13xxx")
.param("password", "yyy");
let result = client.login_cellphone(&query).await?;
// 或使用验证码登录
let query = Query::new()
.param("phone", "13xxx")
.param("captcha", "1234");
let result = client.login_cellphone(&query).await?;
二维码 key 生成
说明 : 调用此接口可生成一个二维码登录用的 key
方法名 : login_qr_key
调用例子 :
let query = Query::new();
let result = client.login_qr_key(&query).await?;
二维码生成
说明 : 调用此接口传入上一个接口生成的 key 可生成二维码图片的 base64 和二维码信息,可使用 base64 展示图片,或者使用二维码信息内容自行使用第三方二维码生成库渲染二维码
必选参数 : key : 由 login_qr_key 接口生成
可选参数 : qrimg : 传入后会额外返回二维码图片 base64 编码
方法名 : login_qr_create
调用例子 :
let query = Query::new()
.param("key", "xxx")
.param("qrimg", "true");
let result = client.login_qr_create(&query).await?;
二维码检测扫码状态
说明 : 轮询此接口可获取二维码扫码状态,800 为二维码过期,801 为等待扫码,802 为待确认,803 为授权登录成功(803 状态码下会返回 cookies)
必选参数 : key : 由 login_qr_key 接口生成
方法名 : login_qr_check
调用例子 :
let query = Query::new().param("key", "xxx");
let result = client.login_qr_check(&query).await?;
游客登录
说明 : 直接调用此接口,可获取游客 cookie,如果遇到其他接口未登录状态报 400 状态码需要验证的错误,可使用此接口获取游客 cookie 避免报错
方法名 : register_anonimous
调用例子 :
let query = Query::new();
let result = client.register_anonimous(&query).await?;
刷新登录
说明 : 调用此接口,可刷新登录状态,返回内容包含新的 cookie(不支持刷新二维码登录的 cookie)
方法名 : login_refresh
调用例子 :
let query = Query::new();
let result = client.login_refresh(&query).await?;
登录状态
说明 : 调用此接口,可获取登录状态
方法名 : login_status
调用例子 :
let query = Query::new();
let result = client.login_status(&query).await?;
退出登录
说明 : 调用此接口,可退出登录
方法名 : logout
调用例子 :
let query = Query::new();
let result = client.logout(&query).await?;
发送验证码
说明 : 调用此接口,传入手机号码,可发送验证码
必选参数 : phone : 手机号码
可选参数 : ctcode : 国家区号,默认 86 即中国
方法名 : captcha_sent
调用例子 :
let query = Query::new().param("phone", "13xxx");
let result = client.captcha_sent(&query).await?;
验证验证码
说明 : 调用此接口,传入手机号码和验证码,可校验验证码是否正确
必选参数 : phone : 手机号码 ; captcha : 验证码
可选参数 : ctcode : 国家区号,默认 86 即中国
方法名 : captcha_verify
调用例子 :
let query = Query::new()
.param("phone", "13xxx")
.param("captcha", "1597");
let result = client.captcha_verify(&query).await?;
注册(修改密码)
说明 : 调用此接口,传入手机号码和验证码、密码、昵称,可注册网易云音乐账号(同时可修改密码)
必选参数 : captcha : 验证码 ; phone : 手机号码 ; password : 密码 ; nickname : 昵称
可选参数 : countrycode : 国家码,用于国外手机号,例如美国传入 1,默认 86 即中国
方法名 : register_cellphone
调用例子 :
let query = Query::new()
.param("phone", "13xxx")
.param("password", "xxxxx")
.param("captcha", "1234")
.param("nickname", "binary1345");
let result = client.register_cellphone(&query).await?;
检测手机号码是否已注册
说明 : 调用此接口,可检测手机号码是否已注册
必选参数 : phone : 手机号码
可选参数 : countrycode : 国家码,用于国外手机号,例如美国传入 1,默认 86 即中国
方法名 : cellphone_existence_check
调用例子 :
let query = Query::new().param("phone", "13xxx");
let result = client.cellphone_existence_check(&query).await?;
初始化昵称
说明 : 刚注册的账号(需登录),调用此接口,可初始化昵称
必选参数 : nickname : 昵称
方法名 : activate_init_profile
调用例子 :
let query = Query::new().param("nickname", "testUser2019");
let result = client.activate_init_profile(&query).await?;
重复昵称检测
说明 : 调用此接口,可检测昵称是否重复,并提供备用昵称
必选参数 : nickname : 昵称
方法名 : nickname_check
调用例子 :
let query = Query::new().param("nickname", "binaryify");
let result = client.nickname_check(&query).await?;
更换绑定手机
说明 : 调用此接口,可更换绑定手机(流程:先发送验证码到原手机号码,再发送验证码到新手机号码然后再调用此接口)
必选参数 : oldcaptcha : 原手机验证码 ; captcha : 新手机验证码 ; phone : 手机号码 ; ctcode : 国家区号,默认 86 即中国
方法名 : rebind
调用例子 :
let query = Query::new()
.param("phone", "xxx")
.param("oldcaptcha", "1234")
.param("captcha", "5678");
let result = client.rebind(&query).await?;
用户相关
获取用户详情
说明 : 登录后调用此接口,传入用户 id,可以获取用户详情
必选参数 : uid : 用户 id
方法名 : user_detail
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_detail(&query).await?;
获取用户详情(新版)
说明 : 登录后调用此接口,传入用户 id,可以获取用户详情(新版接口,返回更全面的信息)
必选参数 : uid : 用户 id
方法名 : user_detail_new
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_detail_new(&query).await?;
获取账号信息
说明 : 登录后调用此接口,可获取用户账号信息
方法名 : user_account
调用例子 :
let query = Query::new();
let result = client.user_account(&query).await?;
获取用户信息 , 歌单,收藏,mv, dj 数量
说明 : 登录后调用此接口,可以获取用户信息
方法名 : user_subcount
调用例子 :
let query = Query::new();
let result = client.user_subcount(&query).await?;
获取用户等级信息
说明 : 登录后调用此接口,可以获取用户等级信息,包含当前登录天数,听歌次数,下一等级需要的登录天数和听歌次数,当前等级进度
方法名 : user_level
调用例子 :
let query = Query::new();
let result = client.user_level(&query).await?;
获取用户绑定信息
说明 : 登录后调用此接口,可以获取用户绑定信息
必选参数 : uid : 用户 id
方法名 : user_binding
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_binding(&query).await?;
用户绑定手机
说明 : 登录后调用此接口,可以绑定手机号码
必选参数 : phone : 手机号码 ; captcha : 验证码
可选参数 : password : 密码 ; countrycode : 国家地区代码,默认 86
方法名 : user_bindingcellphone
调用例子 :
let query = Query::new()
.param("phone", "13xxx")
.param("captcha", "1234");
let result = client.user_bindingcellphone(&query).await?;
用户更换绑定手机
说明 : 登录后调用此接口,可以更换绑定手机
必选参数 : phone : 手机号码 ; oldcaptcha : 原手机号码的验证码 ; captcha : 新手机号码的验证码
可选参数 : countrycode : 国家地区代码,默认 86
方法名 : user_replacephone
调用例子 :
let query = Query::new()
.param("phone", "xxx")
.param("captcha", "1234")
.param("oldcaptcha", "2345");
let result = client.user_replacephone(&query).await?;
更新用户信息
说明 : 登录后调用此接口,传入相关信息,可以更新用户信息
必选参数 : gender : 性别 0:保密 1:男性 2:女性 ; birthday : 出生日期,时间戳 unix timestamp ; nickname : 用户昵称 ; province : 省份 id ; city : 城市 id ; signature : 用户签名
方法名 : user_update
调用例子 :
let query = Query::new()
.param("gender", "0")
.param("signature", "测试签名")
.param("city", "440300")
.param("nickname", "binary")
.param("birthday", "1525918298004")
.param("province", "440000");
let result = client.user_update(&query).await?;
更新头像
说明 : 登录后调用此接口,可更新头像
可选参数 : imgSize : 图片尺寸,默认为 300 ; imgX : 水平裁剪偏移,方形图片可不传,默认为 0 ; imgY : 垂直裁剪偏移,方形图片可不传,默认为 0
方法名 : avatar_upload
调用例子 :
let query = Query::new().param("imgSize", "200");
let result = client.avatar_upload(&query).await?;
获取用户歌单
说明 : 登录后调用此接口,传入用户 id,可以获取用户歌单
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,用于分页,默认为 0
方法名 : user_playlist
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_playlist(&query).await?;
用户的创建歌单列表
说明 : 调用此接口,传入用户 id,获取用户的创建歌单列表
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 100 ; offset : 偏移数量,用于分页,默认为 0
方法名 : user_playlist_create
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_playlist_create(&query).await?;
用户的收藏歌单列表
说明 : 调用此接口,传入用户 id,获取用户的收藏歌单列表
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 100 ; offset : 偏移数量,用于分页,默认为 0
方法名 : user_playlist_collect
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_playlist_collect(&query).await?;
获取用户关注列表
说明 : 登录后调用此接口,传入用户 id,可以获取用户关注列表
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,用于分页,默认为 0
方法名 : user_follows
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_follows(&query).await?;
获取用户粉丝列表
说明 : 登录后调用此接口,传入用户 id,可以获取用户粉丝列表
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,用于分页,默认为 0
方法名 : user_followeds
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_followeds(&query).await?;
当前账号关注的用户/歌手
说明 : 调用此接口,可获得当前账号关注的用户/歌手
可选参数 : size : 返回数量,默认为 30 ; cursor : 返回数据的 cursor,默认为 0,传入上一次返回结果的 cursor 将会返回下一页的数据 ; scene : 场景,0 表示所有关注,1 表示关注的歌手,2 表示关注的用户,默认为 0
方法名 : user_follow_mixed
调用例子 :
let query = Query::new().param("scene", "1");
let result = client.user_follow_mixed(&query).await?;
用户是否互相关注
说明 : 登录后调用此接口,传入用户 id,可判断用户是否互相关注
必选参数 : uid : 用户 id
方法名 : user_mutualfollow_get
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_mutualfollow_get(&query).await?;
获取用户动态
说明 : 登录后调用此接口,传入用户 id,可以获取用户动态
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 30 ; lasttime : 返回数据的 lasttime,默认 -1,传入上一次返回结果的 lasttime,将会返回下一页的数据
方法名 : user_event
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_event(&query).await?;
获取用户播放记录
说明 : 登录后调用此接口,传入用户 id,可获取用户播放记录
必选参数 : uid : 用户 id
可选参数 : type : type=1 时只返回 weekData,type=0 时返回 allData
方法名 : user_record
调用例子 :
let query = Query::new()
.param("uid", "32953014")
.param("type", "1");
let result = client.user_record(&query).await?;
获取用户电台
说明 : 登录后调用此接口,传入用户 id,可以获取用户电台
必选参数 : uid : 用户 id
方法名 : user_dj
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_dj(&query).await?;
用户电台
说明 : 调用此接口,传入用户 id 可获取用户创建的电台
必选参数 : uid : 用户 id
方法名 : user_audio
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_audio(&query).await?;
获取用户历史评论
说明 : 登录后调用此接口,传入用户 id,可以获取用户历史评论
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 10 ; time : 上一条数据的 time,第一页不需要传,默认为 0
方法名 : user_comment_history
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_comment_history(&query).await?;
用户徽章
说明 : 调用此接口,传入用户 id,获取用户徽章
必选参数 : uid : 用户 id
方法名 : user_medal
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_medal(&query).await?;
用户状态
说明 : 登录后调用此接口,传入用户 id,获取用户社交状态
必选参数 : uid : 用户 id
方法名 : user_social_status
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.user_social_status(&query).await?;
用户状态 - 编辑
说明 : 登录后调用此接口,编辑当前用户状态,所需参数可在 user_social_status_support 接口获取
方法名 : user_social_status_edit
调用例子 :
let query = Query::new();
let result = client.user_social_status_edit(&query).await?;
用户状态 - 相同状态的用户
说明 : 登录后调用此接口,获取相同状态的用户
方法名 : user_social_status_rcmd
调用例子 :
let query = Query::new();
let result = client.user_social_status_rcmd(&query).await?;
用户状态 - 支持设置的状态
说明 : 登录后调用此接口,获取支持设置的状态
方法名 : user_social_status_support
调用例子 :
let query = Query::new();
let result = client.user_social_status_support(&query).await?;
关注/取消关注用户
说明 : 登录后调用此接口,传入用户 id 和操作 t,可关注/取消关注用户
必选参数 : id : 用户 id ; t : 1 为关注,其他为取消关注
方法名 : follow
调用例子 :
let query = Query::new()
.param("id", "32953014")
.param("t", "1");
let result = client.follow(&query).await?;
私信和通知接口
说明 : 登录后调用此接口,可获取私信和通知数量信息
方法名 : pl_count
调用例子 :
let query = Query::new();
let result = client.pl_count(&query).await?;
国家编码列表
说明 : 调用此接口,可获取国家编码列表
方法名 : countries_code_list
调用例子 :
let query = Query::new();
let result = client.countries_code_list(&query).await?;
设置
说明 : 登录后调用此接口,可获取用户设置
方法名 : setting
调用例子 :
let query = Query::new();
let result = client.setting(&query).await?;
根据 nickname 获取 userid
说明 : 使用此接口,传入用户昵称,可获取对应的用户 id,支持批量获取,多个昵称用分号(;)隔开
必选参数 : nicknames : 用户昵称,多个用分号(;)隔开
方法名 : get_userids
调用例子 :
let query = Query::new().param("nicknames", "test1;test2");
let result = client.get_userids(&query).await?;
歌曲相关
获取歌曲详情
说明 : 调用此接口,传入音乐 id(支持多个 id,用逗号隔开),可获得歌曲详情
必选参数 : ids : 音乐 id,如 ids=347230 或者 ids=347230,347231
方法名 : song_detail
调用例子 :
let query = Query::new().param("ids", "347230,347231");
let result = client.song_detail(&query).await?;
获取音乐 url
说明 : 使用歌单详情接口后,能得到的音乐的 id,但不能得到的音乐 url,调用此接口,传入的音乐 id(可多个,用逗号隔开),可以获取对应的音乐的 url,未登录状态或者非会员返回试听片段
必选参数 : id : 音乐 id
可选参数 : br : 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
方法名 : song_url
调用例子 :
let query = Query::new().param("id", "1969519579");
let result = client.song_url(&query).await?;
获取音乐 url - 新版
说明 : 使用注意事项同上
必选参数 : id : 音乐 id ; level : 播放音质等级,分为 standard => 标准,higher => 较高,exhigh => 极高,lossless => 无损,hires => Hi-Res,jyeffect => 高清环绕声,sky => 沉浸环绕声,dolby => 杜比全景声,jymaster => 超清母带
方法名 : song_url_v1
调用例子 :
let query = Query::new()
.param("id", "1969519579")
.param("level", "exhigh");
let result = client.song_url_v1(&query).await?;
302 到音乐 url - 新版
说明 : 只允许传入单个 id,会使用 302 重定向请求到目标 url
必选参数 : id : 音乐 id ; level : 播放音质等级(同 song_url_v1)
方法名 : song_url_v1_302
调用例子 :
let query = Query::new()
.param("id", "1969519579")
.param("level", "exhigh");
let result = client.song_url_v1_302(&query).await?;
歌曲播放链接 (ncmget)
说明 : ncmget 占位接口,始终返回空数据
方法名 : song_url_ncmget
调用例子 :
let query = Query::new();
let result = client.song_url_ncmget(&query).await?;
直接获取灰色歌曲链接
说明 : 网易云歌曲解灰功能。注意:此功能依赖外部 unblockmusic-utils,Rust SDK 暂不支持,调用会返回不支持的错误。
必选参数 : id : 音乐 id
可选参数 : source : 选择要解灰的音源,不支持多音源
方法名 : song_url_match
调用例子 :
let query = Query::new().param("id", "1969519579");
let result = client.song_url_match(&query).await?;
// 注意: Rust SDK 暂不支持此功能,会返回 500 状态码
获取客户端歌曲下载 url
说明 : 使用 /song/url 接口获取的是歌曲试听 url,但存在部分歌曲在非 VIP 账号上可以下载无损音质而不能试听无损音质,使用此接口可使非 VIP 账号获取这些歌曲的无损音频
必选参数 : id : 音乐 id(仅支持单首歌曲)
可选参数 : br : 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
方法名 : song_download_url
调用例子 :
let query = Query::new().param("id", "1969519579");
let result = client.song_download_url(&query).await?;
获取客户端歌曲下载链接 - 新版
说明 : 使用 song_url_v1 接口获取的是歌曲试听 url,非 VIP 账号最高只能获取极高音质,但免费类型的歌曲(fee == 0)使用本接口可最高获取 Hi-Res 音质的 url
必选参数 : id : 音乐 id ; level : 播放音质等级(同 song_url_v1)
方法名 : song_download_url_v1
调用例子 :
let query = Query::new()
.param("id", "2155423468")
.param("level", "hires");
let result = client.song_download_url_v1(&query).await?;
音乐是否可用
说明 : 调用此接口,传入歌曲 id,可获取音乐是否可用,返回 { success: true, message: 'ok' } 或者 { success: false, message: '亲爱的,暂无版权' }
必选参数 : id : 歌曲 id
可选参数 : br : 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
方法名 : check_music
调用例子 :
let query = Query::new().param("id", "1969519579");
let result = client.check_music(&query).await?;
获取歌词
说明 : 调用此接口,传入音乐 id 可获得对应音乐的歌词(不需要登录)
必选参数 : id : 音乐 id
方法名 : lyric
调用例子 :
let query = Query::new().param("id", "33894312");
let result = client.lyric(&query).await?;
获取逐字歌词
说明 : 此接口的 yrc 字段即为逐字歌词(可能有歌曲不包含逐字歌词)
必选参数 : id : 音乐 id
方法名 : lyric_new
调用例子 :
let query = Query::new().param("id", "1824020871");
let result = client.lyric_new(&query).await?;
喜欢音乐
说明 : 调用此接口,传入音乐 id,可喜欢该音乐
必选参数 : id : 歌曲 id
可选参数 : like : 布尔值,默认为 true 即喜欢,若传 false 则取消喜欢
方法名 : like
调用例子 :
let query = Query::new().param("id", "347230");
let result = client.like(&query).await?;
喜欢音乐列表
说明 : 调用此接口,传入用户 id,可获取已喜欢音乐 id 列表(id 数组)
必选参数 : uid : 用户 id
方法名 : likelist
调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.likelist(&query).await?;
歌曲是否喜爱
说明 : 调用此接口,传入歌曲 id 列表,可检查歌曲是否被喜爱
必选参数 : ids : 歌曲 id 列表,如 [2058263032,1497529942]
方法名 : song_like_check
调用例子 :
let query = Query::new().param("ids", "[2058263032,1497529942]");
let result = client.song_like_check(&query).await?;
听歌打卡
说明 : 调用此接口,传入音乐 id,来源 id,歌曲时间 time,更新听歌排行数据
必选参数 : id : 歌曲 id ; sourceid : 歌单或专辑 id
可选参数 : time : 歌曲播放时间,单位为秒
方法名 : scrobble
调用例子 :
let query = Query::new()
.param("id", "518066366")
.param("sourceid", "36780169")
.param("time", "291");
let result = client.scrobble(&query).await?;
调整歌曲顺序
说明 : 登录后调用此接口,可以根据歌曲 id 顺序调整歌曲顺序
必选参数 : pid : 歌单 id ; ids : 歌曲 id 列表
方法名 : song_order_update
调用例子 :
let query = Query::new()
.param("pid", "2039116066")
.param("ids", "[5268328,1219871]");
let result = client.song_order_update(&query).await?;
副歌时间
说明 : 调用此接口,传入歌曲 id,获取副歌时间
必选参数 : id : 歌曲 id
方法名 : song_chorus
调用例子 :
let query = Query::new().param("id", "2058263032");
let result = client.song_chorus(&query).await?;
歌曲百科摘要
说明 : 调用此接口,传入歌曲 id,可获取歌曲百科摘要信息
必选参数 : id : 歌曲 id
方法名 : song_wiki_summary
调用例子 :
let query = Query::new().param("id", "1958384591");
let result = client.song_wiki_summary(&query).await?;
歌曲音质详情
说明 : 调用此接口获取歌曲各个音质的文件信息,与获取歌曲详情接口相比,多出高清环绕声、沉浸环绕声、超清母带等音质的信息
必选参数 : id : 歌曲 id
方法名 : song_music_detail
调用例子 :
let query = Query::new().param("id", "2082700997");
let result = client.song_music_detail(&query).await?;
歌曲红心数量
说明 : 调用此接口获取歌曲的红心用户数量
必选参数 : id : 歌曲 id
方法名 : song_red_count
调用例子 :
let query = Query::new().param("id", "186016");
let result = client.song_red_count(&query).await?;
歌曲动态封面
说明 : 登录后调用此接口,传入歌曲 id,获取歌曲动态封面
必选参数 : id : 歌曲 id
方法名 : song_dynamic_cover
调用例子 :
let query = Query::new().param("id", "2101179024");
let result = client.song_dynamic_cover(&query).await?;
会员下载歌曲记录
说明 : 调用此接口,可获得当前账号会员下载歌曲记录
可选参数 : limit : 返回数量,默认为 20 ; offset : 偏移数量,用于分页,默认为 0
方法名 : song_downlist
调用例子 :
let query = Query::new();
let result = client.song_downlist(&query).await?;
会员本月下载歌曲记录
说明 : 调用此接口,可获得当前账号会员本月下载歌曲记录
可选参数 : limit : 返回数量,默认为 20 ; offset : 偏移数量,用于分页,默认为 0
方法名 : song_monthdownlist
调用例子 :
let query = Query::new();
let result = client.song_monthdownlist(&query).await?;
已购买单曲下载记录
说明 : 调用此接口,可获得当前账号已购买单曲下载记录
可选参数 : limit : 返回数量,默认为 20 ; offset : 偏移数量,用于分页,默认为 0
方法名 : song_singledownlist
调用例子 :
let query = Query::new();
let result = client.song_singledownlist(&query).await?;
已购单曲
说明 : 登录后调用此接口可获取已购买的单曲
可选参数 : limit : 返回数量,默认为 20 ; offset : 偏移数量,用于分页,默认为 0
方法名 : song_purchased
调用例子 :
let query = Query::new().param("limit", "10");
let result = client.song_purchased(&query).await?;
歌词摘录 - 歌词摘录信息
说明 : 登录后调用此接口,传入歌曲 id,获取歌词摘录信息
必选参数 : id : 歌曲 id
方法名 : song_lyrics_mark
调用例子 :
let query = Query::new().param("id", "2058263032");
let result = client.song_lyrics_mark(&query).await?;
歌词摘录 - 添加/修改摘录歌词
说明 : 登录后调用此接口,传入歌曲 id,可以添加/修改摘录歌词
必选参数 : id : 歌曲 id ; data : 存储歌词摘录信息的对象数组的字符串
可选参数 : markId : 若需要修改摘录信息,则需要填入此参数
方法名 : song_lyrics_mark_add
调用例子 :
let query = Query::new()
.param("id", "2058263032")
.param("data", "[{\"translateType\":1,\"startTimeStamp\":800,\"translateLyricsText\":\"让我逃走吧\",\"originalLyricsText\":\"逃がしてくれって声を枯らした\"}]");
let result = client.song_lyrics_mark_add(&query).await?;
歌词摘录 - 删除摘录歌词
说明 : 登录后调用此接口,传入摘录歌词 id,删除摘录歌词
必选参数 : id : 摘录歌词 id
方法名 : song_lyrics_mark_del
调用例子 :
let query = Query::new().param("id", "2083850");
let result = client.song_lyrics_mark_del(&query).await?;
歌词摘录 - 我的歌词本
说明 : 登录后调用此接口,获取我的歌词本
可选参数 : limit : 返回数量,默认为 20 ; offset : 偏移数量,用于分页,默认为 0
方法名 : song_lyrics_mark_user_page
调用例子 :
let query = Query::new();
let result = client.song_lyrics_mark_user_page(&query).await?;
听歌识曲
说明 : 使用此接口,上传音频文件或者麦克风采集声音可识别对应歌曲信息
必选参数 : duration : 音频时长,单位秒 ; audioFP : 音频指纹
方法名 : audio_match
调用例子 :
let query = Query::new()
.param("duration", "30")
.param("audioFP", "...");
let result = client.audio_match(&query).await?;
搜索相关
搜索
说明 : 调用此接口,传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户,关键词可以多个,以空格隔开(不需要登录),可通过 song_url 接口传入歌曲 id 获取具体的播放链接
必选参数 : keywords : 关键词
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,用于分页,默认为 0 ; type : 搜索类型,默认为 1 即单曲,取值意义:1: 单曲,10: 专辑,100: 歌手,1000: 歌单,1002: 用户,1004: MV,1006: 歌词,1009: 电台,1014: 视频,1018: 综合,2000: 声音
方法名 : search
调用例子 :
let query = Query::new()
.param("keywords", "海阔天空")
.param("type", "1")
.param("limit", "30");
let result = client.search(&query).await?;
搜索(综合)
说明 : 调用此接口,传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户(返回结果更全面)
必选参数 : keywords : 关键词
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,用于分页,默认为 0 ; type : 搜索类型(同 search)
方法名 : cloudsearch
调用例子 :
let query = Query::new()
.param("keywords", "海阔天空");
let result = client.cloudsearch(&query).await?;
默认搜索关键词
说明 : 调用此接口,可获取默认搜索关键词
方法名 : search_default
调用例子 :
let query = Query::new();
let result = client.search_default(&query).await?;
热搜列表(简略)
说明 : 调用此接口,可获取热门搜索列表
方法名 : search_hot
调用例子 :
let query = Query::new();
let result = client.search_hot(&query).await?;
热搜列表(详细)
说明 : 调用此接口,可获取热门搜索列表(详细版)
方法名 : search_hot_detail
调用例子 :
let query = Query::new();
let result = client.search_hot_detail(&query).await?;
搜索建议
说明 : 调用此接口,传入搜索关键词可获得搜索建议,搜索结果同时包含单曲、歌手、歌单信息
必选参数 : keywords : 关键词
可选参数 : type : 如果传 mobile 则返回移动端数据
方法名 : search_suggest
调用例子 :
let query = Query::new().param("keywords", "海阔天空");
let result = client.search_suggest(&query).await?;
搜索多重匹配
说明 : 调用此接口,传入搜索关键词可获得搜索结果
必选参数 : keywords : 关键词
方法名 : search_multimatch
调用例子 :
let query = Query::new().param("keywords", "海阔天空");
let result = client.search_multimatch(&query).await?;
本地歌曲文件匹配网易云歌曲信息
说明 : 调用此接口可以为本地歌曲文件搜索匹配歌曲 ID、专辑封面等信息
必选参数 : title : 文件的标题信息 ; album : 文件的专辑信息 ; artist : 文件的艺术家信息 ; duration : 文件的时长,单位为秒 ; md5 : 文件的 md5
方法名 : search_match
调用例子 :
let query = Query::new()
.param("title", "富士山下")
.param("album", "")
.param("artist", "陈奕迅")
.param("duration", "259.21")
.param("md5", "bd708d006912a09d827f02e754cf8e56");
let result = client.search_match(&query).await?;
歌单相关
新建歌单
说明 : 调用此接口 , 传入歌单名字可新建歌单
必选参数 : name : 歌单名
可选参数 : privacy : 是否设置为隐私歌单,默认否,传'10'则设置成隐私歌单
type : 歌单类型,默认'NORMAL',传 'VIDEO'则为视频歌单,传 'SHARED'则为共享歌单
方法名 : playlist_create
调用例子 :
let query = Query::new().param("name", "测试歌单");
let result = client.playlist_create(&query).await?;
// 创建视频歌单
let query = Query::new().param("name", "test").param("type", "VIDEO");
let result = client.playlist_create(&query).await?;
删除歌单
说明 : 调用此接口 , 传入歌单 id 可删除歌单
必选参数 : id : 歌单 id,可多个,用逗号隔开
方法名 : playlist_delete
调用例子 :
let query = Query::new().param("id", "2947311456");
let result = client.playlist_delete(&query).await?;
收藏/取消收藏歌单
说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单
必选参数 : t : 类型,1:收藏,2:取消收藏
id : 歌单 id
方法名 : playlist_subscribe
调用例子 :
let query = Query::new().param("t", "1").param("id", "106697785");
let result = client.playlist_subscribe(&query).await?;
歌单收藏者
说明 : 调用此接口 , 传入歌单 id 可获取歌单的所有收藏者
必选参数 : id : 歌单 id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
方法名 : playlist_subscribers
调用例子 :
let query = Query::new().param("id", "544215255").param("limit", "30");
let result = client.playlist_subscribers(&query).await?;
获取歌单详情
说明 : 歌单能看到歌单名字, 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id, 可以获取对应歌单内的所有的音乐(未登录状态只能获取不完整的歌单,登录后是完整的),但是返回的 trackIds 是完整的,tracks 则是不完整的,可拿全部 trackIds 请求一次 song/detail 接口获取所有歌曲的详情
必选参数 : id : 歌单 id
可选参数 : s : 歌单最近的 s 个收藏者,默认为 8
方法名 : playlist_detail
调用例子 :
let query = Query::new().param("id", "24381616");
let result = client.playlist_detail(&query).await?;
歌单详情动态
说明 : 调用后可获取歌单详情动态部分,如评论数,是否收藏,播放数
必选参数 : id : 歌单 id
方法名 : playlist_detail_dynamic
调用例子 :
let query = Query::new().param("id", "24381616");
let result = client.playlist_detail_dynamic(&query).await?;
相关歌单推荐
说明 : 调用此接口, 传入歌单 id, 获取相关歌单推荐
必选参数 : id : 歌单 id
方法名 : playlist_detail_rcmd_get
调用例子 :
let query = Query::new().param("id", "8039587836");
let result = client.playlist_detail_rcmd_get(&query).await?;
获取歌单所有歌曲
说明 : 由于网易云接口限制,歌单详情只会提供 10 首歌,通过调用此接口,传入对应的歌单 id,即可获得对应的所有歌曲
必选参数 : id : 歌单 id
可选参数 : limit : 限制获取歌曲的数量,默认值为当前歌单的歌曲数量
offset : 默认值为 0
方法名 : playlist_track_all
调用例子 :
let query = Query::new().param("id", "24381616").param("limit", "10").param("offset", "0");
let result = client.playlist_track_all(&query).await?;
对歌单添加或删除歌曲
说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 )
必选参数 : op : 从歌单增加单曲为 add, 删除为 del
pid : 歌单 id
tracks : 歌曲 id,可多个,用逗号隔开
方法名 : playlist_tracks
调用例子 :
let query = Query::new()
.param("op", "add")
.param("pid", "24381616")
.param("tracks", "347231");
let result = client.playlist_tracks(&query).await?;
收藏视频到视频歌单
说明 : 调用此接口 , 可收藏视频到视频歌单 ( 需要登录 )
必选参数 : pid : 歌单 id
ids : 视频 id,支持多个,用逗号隔开
方法名 : playlist_track_add
调用例子 :
let query = Query::new().param("pid", "5271999357").param("ids", "186041");
let result = client.playlist_track_add(&query).await?;
删除视频歌单里的视频
说明 : 调用此接口 , 可删除视频歌单里的视频 ( 需要登录 )
必选参数 : pid : 歌单 id
ids : 视频 id,支持多个,用逗号隔开
方法名 : playlist_track_delete
调用例子 :
let query = Query::new().param("pid", "5271999357").param("ids", "186041");
let result = client.playlist_track_delete(&query).await?;
更新歌单
说明 : 登录后调用此接口,可以更新用户歌单
必选参数 : id : 歌单 id
name : 歌单名字
desc : 歌单描述
tags : 歌单 tag ,多个用 ; 隔开,只能用官方规定标签
方法名 : playlist_update
调用例子 :
let query = Query::new()
.param("id", "24381616")
.param("name", "新歌单")
.param("desc", "描述")
.param("tags", "欧美");
let result = client.playlist_update(&query).await?;
更新歌单描述
说明 : 登录后调用此接口,可以单独更新用户歌单描述
必选参数 : id : 歌单 id
desc : 歌单描述
方法名 : playlist_desc_update
调用例子 :
let query = Query::new().param("id", "24381616").param("desc", "描述");
let result = client.playlist_desc_update(&query).await?;
更新歌单名
说明 : 登录后调用此接口,可以单独更新用户歌单名
必选参数 : id : 歌单 id
name : 歌单名
方法名 : playlist_name_update
调用例子 :
let query = Query::new().param("id", "24381616").param("name", "歌单名");
let result = client.playlist_name_update(&query).await?;
更新歌单标签
说明 : 登录后调用此接口,可以单独更新用户歌单标签
必选参数 : id : 歌单 id
tags : 歌单标签
方法名 : playlist_tags_update
调用例子 :
let query = Query::new().param("id", "24381616").param("tags", "学习");
let result = client.playlist_tags_update(&query).await?;
歌单封面上传
说明 : 登录后调用此接口,使用 'Content-Type': 'multipart/form-data' 上传图片 formData(name 为'imgFile'),可更新歌单封面
必选参数 : id : 歌单 id
可选参数 : imgSize : 图片尺寸,默认为 300
imgX : 水平裁剪偏移,方形图片可不传,默认为 0
imgY : 垂直裁剪偏移,方形图片可不传,默认为 0
方法名 : playlist_cover_update
调用例子 :
let query = Query::new().param("id", "3143833470").param("imgSize", "200");
let result = client.playlist_cover_update(&query).await?;
调整歌单顺序
说明 : 登录后调用此接口,可以根据歌单 id 顺序调整歌单顺序
必选参数 : ids : 歌单 id 列表
方法名 : playlist_order_update
调用例子 :
let query = Query::new().param("ids", "[111,222]");
let result = client.playlist_order_update(&query).await?;
歌单更新播放量
说明 : 调用后可更新歌单播放量
必选参数 : id : 歌单 id
方法名 : playlist_update_playcount
调用例子 :
let query = Query::new().param("id", "24381616");
let result = client.playlist_update_playcount(&query).await?;
歌单分类
说明 : 调用此接口,可获取歌单分类,包含 category 信息
方法名 : playlist_catlist
调用例子 :
let query = Query::new();
let result = client.playlist_catlist(&query).await?;
热门歌单分类
说明 : 调用此接口,可获取歌单分类,包含 category 信息
方法名 : playlist_hot
调用例子 :
let query = Query::new();
let result = client.playlist_hot(&query).await?;
歌单分类列表
说明 : 调用此接口,可获取歌单分类列表
可选参数 : cat : 分类标签, 默认为 "全部"
limit : 返回数量 , 默认为 24
方法名 : playlist_category_list
调用例子 :
let query = Query::new().param("cat", "华语").param("limit", "10");
let result = client.playlist_category_list(&query).await?;
精品歌单标签列表
说明 : 调用此接口 , 可获取精品歌单标签列表
方法名 : playlist_highquality_tags
调用例子 :
let query = Query::new();
let result = client.playlist_highquality_tags(&query).await?;
公开隐私歌单
说明 : 可以调用此接口将当前用户的隐私歌单公开
必选参数 : id : 歌单 ID
方法名 : playlist_privacy
调用例子 :
let query = Query::new().param("id", "12345678");
let result = client.playlist_privacy(&query).await?;
获取点赞过的视频
说明 : 调用此接口, 可获取获取点赞过的视频
方法名 : playlist_mylike
调用例子 :
let query = Query::new();
let result = client.playlist_mylike(&query).await?;
最近播放的视频
说明 : 调用此接口 , 可获取最近播放的视频 ( 需要登录 )
方法名 : playlist_video_recent
调用例子 :
let query = Query::new();
let result = client.playlist_video_recent(&query).await?;
歌单导入 - 元数据/文字/链接导入
说明 : 登录后调用此接口, 支持通过元数据/文字/链接三种方式生成歌单; 三种方式不可同时调用
可选参数 : local : json 类型的字符串 (元数据导入)
text : 导入的文字 (文字导入)
link : 存有歌单链接的数组类型的字符串 (链接导入)
importStarPlaylist : 是否导入"我喜欢的音乐", 此项为 true 则不生成新的歌单
playlistName : 生成的歌单名, 仅文字导入和链接导入支持
方法名 : playlist_import_name_task_create
调用例子 :
// 文字导入
let query = Query::new().param("text", "海阔天空 Beyond");
let result = client.playlist_import_name_task_create(&query).await?;
歌单导入 - 任务状态
说明 : 调用此接口, 传入导入歌单任务 id, 获取任务状态
必选参数 : id : 任务 id
方法名 : playlist_import_task_status
调用例子 :
let query = Query::new().param("id", "123834369");
let result = client.playlist_import_task_status(&query).await?;
相关歌单
说明 : 请替换为相关歌单推荐接口(playlist_detail_rcmd_get); 本接口通过 html 抓取内容, 现已无法抓取歌单
必选参数 : id : 歌单 id
方法名 : related_playlist
调用例子 :
let query = Query::new().param("id", "1");
let result = client.related_playlist(&query).await?;
评论相关
歌曲评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该音乐的所有评论 ( 不需要登录 )
必选参数 : id : 音乐 id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_music
调用例子 :
let query = Query::new().param("id", "186016").param("limit", "1");
let result = client.comment_music(&query).await?;
专辑评论
说明 : 调用此接口 , 传入专辑 id 和 limit 参数 , 可获得该专辑的所有评论 ( 不需要登录 )
必选参数 : id : 专辑 id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_album
调用例子 :
let query = Query::new().param("id", "32311");
let result = client.comment_album(&query).await?;
歌单评论
说明 : 调用此接口 , 传入歌单 id 和 limit 参数 , 可获得该歌单的所有评论 ( 不需要登录 )
必选参数 : id : 歌单 id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_playlist
调用例子 :
let query = Query::new().param("id", "705123491");
let result = client.comment_playlist(&query).await?;
mv 评论
说明 : 调用此接口 , 传入 mv id 和 limit 参数 , 可获得该 mv 的所有评论 ( 不需要登录 )
必选参数 : id : mv id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_mv
调用例子 :
let query = Query::new().param("id", "5436712");
let result = client.comment_mv(&query).await?;
电台节目评论
说明 : 调用此接口 , 传入电台节目 id 和 limit 参数 , 可获得该电台节目的所有评论 ( 不需要登录 )
必选参数 : id : 电台节目的 id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_dj
调用例子 :
let query = Query::new().param("id", "794062371");
let result = client.comment_dj(&query).await?;
视频评论
说明 : 调用此接口 , 传入视频 id 和 limit 参数 , 可获得该视频的所有评论 ( 不需要登录 )
必选参数 : id : 视频的 id
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_video
调用例子 :
let query = Query::new().param("id", "89ADDE33C0AAE8EC14B99F6750DB954D");
let result = client.comment_video(&query).await?;
获取动态评论
说明 : 登录后调用此接口 , 可以获取动态下评论
必选参数 : threadId : 动态 id,可通过 /event,/user/event 接口获取
方法名 : comment_event
调用例子 :
let query = Query::new().param("threadId", "A_EV_2_6559519868_32953014");
let result = client.comment_event(&query).await?;
楼层评论
说明 : 调用此接口 , 传入资源 parentCommentId 和资源类型 type 和资源 id 参数, 可获得该资源的歌曲楼层评论
必选参数 : parentCommentId : 楼层评论 id
id : 资源 id
type : 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型: 0: 歌曲, 1: mv, 2: 歌单, 3: 专辑, 4: 电台节目, 5: 视频, 6: 动态, 7: 电台
可选参数 : limit : 取出评论数量 , 默认为 20
time : 分页参数,取上一页最后一项的 time 获取下一页数据
方法名 : comment_floor
调用例子 :
let query = Query::new()
.param("parentCommentId", "1438569889")
.param("id", "29764564")
.param("type", "0");
let result = client.comment_floor(&query).await?;
热门评论
说明 : 调用此接口 , 传入 type, 资源 id 可获得对应资源热门评论 ( 不需要登录 )
必选参数 : id : 资源 id
type : 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型: 0: 歌曲, 1: mv, 2: 歌单, 3: 专辑, 4: 电台节目, 5: 视频, 6: 动态, 7: 电台
可选参数 : limit : 取出评论数量 , 默认为 20
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
before : 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
方法名 : comment_hot
调用例子 :
let query = Query::new().param("id", "186016").param("type", "0");
let result = client.comment_hot(&query).await?;
给评论点赞
说明 : 调用此接口 , 传入 type, 资源 id, 和评论 id cid 和 是否点赞参数 t 即可给对应评论点赞 ( 需要登录 )
必选参数 : id : 资源 id, 如歌曲 id,mv id
cid : 评论 id
t : 是否点赞 , 1 为点赞 ,0 为取消点赞
type : 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型: 0: 歌曲, 1: mv, 2: 歌单, 3: 专辑, 4: 电台节目, 5: 视频, 6: 动态, 7: 电台
方法名 : comment_like
调用例子 :
let query = Query::new()
.param("id", "29178366")
.param("cid", "12840183")
.param("t", "1")
.param("type", "0");
let result = client.comment_like(&query).await?;
新版评论接口
说明 : 调用此接口 , 传入资源类型和资源 id,以及排序方式,可获取对应资源的评论
必选参数 : id : 资源 id, 如歌曲 id,mv id
type : 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型: 0: 歌曲, 1: mv, 2: 歌单, 3: 专辑, 4: 电台节目, 5: 视频, 6: 动态, 7: 电台
可选参数 : pageNo : 分页参数,第 N 页,默认为 1
pageSize : 分页参数,每页多少条数据,默认 20
sortType : 排序方式, 1:按推荐排序, 2:按热度排序, 3:按时间排序
cursor : 当 sortType 为 3 时且页数不是第一页时需传入,值为上一条数据的 time
方法名 : comment_new
调用例子 :
let query = Query::new()
.param("type", "0")
.param("id", "1407551413")
.param("sortType", "3");
let result = client.comment_new(&query).await?;
评论抱一抱列表
说明 : 调用此接口,可获取评论抱一抱列表
必选参数 : uid : 用户 id
cid : 评论 id
sid : 资源 id
可选参数 : page : 页数
cursor : 上一页返回的 cursor,默认-1,第一页不需要传
idCursor : 上一页返回的 idCursor,默认-1,第一页不需要传
pageSize : 每页页数,默认 100
方法名 : comment_hug_list
调用例子 :
let query = Query::new()
.param("uid", "285516405")
.param("cid", "1167145843")
.param("sid", "863481066")
.param("pageSize", "2")
.param("page", "1");
let result = client.comment_hug_list(&query).await?;
评论统计数据
说明 : 调用此接口 , 传入资源类型和资源 id 列表 , 可批量获取对应资源的评论统计数据 ( 不需要登录 )
必选参数 : type : 数字 , 资源类型 , 对应以下类型: 0: 歌曲, 1: mv, 2: 歌单, 3: 专辑, 4: 电台节目, 5: 视频, 6: 动态, 7: 电台
ids : 资源 id 列表 , 多个 id 用逗号分隔 , 如 186016,347230
方法名 : comment_info_list
调用例子 :
let query = Query::new().param("type", "0").param("ids", "186016,347230");
let result = client.comment_info_list(&query).await?;
抱一抱评论
说明 : 调用此接口,可抱一抱评论
必选参数 : uid : 用户 id
cid : 评论 id
sid : 资源 id
方法名 : hug_comment
调用例子 :
let query = Query::new()
.param("uid", "285516405")
.param("cid", "1167145843")
.param("sid", "863481066");
let result = client.hug_comment(&query).await?;
云村星评馆 - 简要评论
说明 : 调用此接口可以获取首页推荐的星评馆评论信息
方法名 : starpick_comments_summary
调用例子 :
let query = Query::new();
let result = client.starpick_comments_summary(&query).await?;
歌手相关
获取歌手单曲
说明 : 调用此接口 , 传入歌手 id, 可获得歌手部分信息和热门歌曲
必选参数 : id : 歌手 id, 可由搜索接口获得
方法名 : artists
调用例子 :
let query = Query::new().param("id", "6452");
let result = client.artists(&query).await?;
获取歌手详情
说明 : 调用此接口 , 传入歌手 id, 可获得获取歌手详情
必选参数 : id : 歌手 id
方法名 : artist_detail
调用例子 :
let query = Query::new().param("id", "11972054");
let result = client.artist_detail(&query).await?;
歌手详情动态
说明 : 调用后可获取歌手详情动态部分,如是否关注,视频数
必选参数 : id : 歌手 id
方法名 : artist_detail_dynamic
调用例子 :
let query = Query::new().param("id", "15396");
let result = client.artist_detail_dynamic(&query).await?;
歌手全部歌曲
说明 : 调用此接口,可获取歌手全部歌曲
必选参数 : id : 歌手 id
可选参数 : order : hot ,time 按照热门或者时间排序
limit : 取出歌单数量 , 默认为 50
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值
方法名 : artist_songs
调用例子 :
let query = Query::new().param("id", "6452");
let result = client.artist_songs(&query).await?;
获取歌手专辑
说明 : 调用此接口 , 传入歌手 id, 可获得歌手专辑内容
必选参数 : id : 歌手 id
可选参数 : limit : 取出数量 , 默认为 30
offset : 偏移数量 , 用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
方法名 : artist_album
调用例子 :
let query = Query::new().param("id", "6452").param("limit", "5");
let result = client.artist_album(&query).await?;
获取歌手描述
说明 : 调用此接口 , 传入歌手 id, 可获得歌手描述
必选参数 : id : 歌手 id
方法名 : artist_desc
调用例子 :
let query = Query::new().param("id", "6452");
let result = client.artist_desc(&query).await?;
获取歌手 mv
说明 : 调用此接口 , 传入歌手 id, 可获得歌手 mv 信息 , 具体 mv 播放地址可调用 mv_detail 传入此接口获得的 mvid 来拿到
必选参数 : id : 歌手 id, 可由搜索接口获得
方法名 : artist_mv
调用例子 :
let query = Query::new().param("id", "6452");
let result = client.artist_mv(&query).await?;
歌手分类列表
说明 : 调用此接口,可获取歌手分类列表
可选参数 : limit : 返回数量 , 默认为 30
offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
initial : 按首字母索引查找参数, 热门传-1,#传 0
type : 取值: -1:全部, 1:男歌手, 2:女歌手, 3:乐队
area : 取值: -1:全部, 7:华语, 96:欧美, 8:日本, 16:韩国, 0:其他
方法名 : artist_list
调用例子 :
let query = Query::new()
.param("type", "1")
.param("area", "96")
.param("initial", "b");
let result = client.artist_list(&query).await?;
收藏/取消收藏歌手
说明 : 调用此接口,可收藏歌手
必选参数 : id : 歌手 id
t : 操作,1 为收藏,其他为取消收藏
方法名 : artist_sub
调用例子 :
let query = Query::new().param("id", "6452").param("t", "1");
let result = client.artist_sub(&query).await?;
收藏的歌手列表
说明 : 调用此接口,可获取收藏的歌手列表
可选参数 : limit : 取出数量 , 默认为 25
offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*25, 其中 25 为 limit 的值
方法名 : artist_sublist
调用例子 :
let query = Query::new();
let result = client.artist_sublist(&query).await?;
歌手热门 50 首歌曲
说明 : 调用此接口,可获取歌手热门 50 首歌曲
必选参数 : id : 歌手 id
方法名 : artist_top_song
调用例子 :
let query = Query::new().param("id", "6452");
let result = client.artist_top_song(&query).await?;
歌手粉丝
说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝
必选参数 : id : 歌手 id
可选参数 : limit : 取出数量 , 默认为 20
offset : 偏移数量 , 用于分页
方法名 : artist_fans
调用例子 :
let query = Query::new().param("id", "2116").param("limit", "10").param("offset", "0");
let result = client.artist_fans(&query).await?;
歌手粉丝数量
说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝数量
必选参数 : id : 歌手 id
方法名 : artist_follow_count
调用例子 :
let query = Query::new().param("id", "2116");
let result = client.artist_follow_count(&query).await?;
关注歌手新 MV
说明 : 登录后调用此接口可获取关注歌手新 MV
可选参数 : limit : 取出数量 , 默认为 20
before : 上一页数据返回的 publishTime 的数据
方法名 : artist_new_mv
调用例子 :
let query = Query::new().param("limit", "1");
let result = client.artist_new_mv(&query).await?;
关注歌手新歌
说明 : 登录后调用此接口可获取关注歌手新歌
可选参数 : limit : 取出数量 , 默认为 20
before : 上一页数据返回的 publishTime 的数据
方法名 : artist_new_song
调用例子 :
let query = Query::new().param("limit", "1");
let result = client.artist_new_song(&query).await?;
获取歌手视频
说明 : 调用此接口 , 传入歌手 id, 可获得歌手视频
必选参数 : id : 歌手 id
可选参数 : size : 返回数量 , 默认为 10
cursor : 返回数据的 cursor, 默认为 0 , 传入上一次返回结果的 cursor,将会返回下一页的数据
order : 排序方法, 0 表示按时间排序, 1 表示按热度排序, 默认为 0
方法名 : artist_video
调用例子 :
let query = Query::new().param("id", "2116");
let result = client.artist_video(&query).await?;
专辑相关
获取专辑内容
说明 : 调用此接口 , 传入专辑 id, 可获得专辑内容
必选参数 : id : 专辑 id
方法名 : album
调用例子 :
let query = Query::new().param("id", "32311");
let result = client.album(&query).await?;
数字专辑详情
说明 : 调用此接口 , 传入数字专辑 id 可获取数字专辑详情(和歌单详情有差异)
必选参数 : id : 专辑 id
方法名 : album_detail
调用例子 :
let query = Query::new().param("id", "84547195");
let result = client.album_detail(&query).await?;
专辑动态信息
说明 : 调用此接口 , 传入专辑 id, 可获得专辑动态信息,如是否收藏,收藏数,评论数,分享数
必选参数 : id : 专辑 id
方法名 : album_detail_dynamic
调用例子 :
let query = Query::new().param("id", "32311");
let result = client.album_detail_dynamic(&query).await?;
收藏/取消收藏专辑
说明 : 调用此接口,可收藏/取消收藏专辑
必选参数 : id : 专辑 id
t : 1 为收藏,其他为取消收藏
方法名 : album_sub
调用例子 :
let query = Query::new().param("id", "32311").param("t", "1");
let result = client.album_sub(&query).await?;
获取已收藏专辑列表
说明 : 调用此接口 , 可获得已收藏专辑列表
可选参数 : limit : 取出数量 , 默认为 25
offset : 偏移数量 , 用于分页 , 如 :( 页数 -1)*25, 其中 25 为 limit 的值 , 默认为 0
方法名 : album_sublist
调用例子 :
let query = Query::new();
let result = client.album_sublist(&query).await?;
最新专辑
说明 : 调用此接口 ,获取云音乐首页新碟上架数据
方法名 : album_newest
调用例子 :
let query = Query::new();
let result = client.album_newest(&query).await?;
全部新碟
说明 : 登录后调用此接口 ,可获取全部新碟
可选参数 : limit : 返回数量 , 默认为 30
offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
area : ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本
方法名 : album_new
调用例子 :
let query = Query::new().param("area", "KR").param("limit", "10");
let result = client.album_new(&query).await?;
数字专辑-新碟上架
说明 : 调用此接口 ,可获取数字专辑-新碟上架
可选参数 : limit : 返回数量 , 默认为 30
offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
方法名 : album_list
调用例子 :
let query = Query::new().param("limit", "10");
let result = client.album_list(&query).await?;
数字专辑-语种风格馆
说明 : 调用此接口 ,可获取语种风格馆数字专辑列表
可选参数 : limit : 返回数量 , 默认为 30
offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
area : 地区 Z_H:华语,E_A:欧美,KR:韩国,JP:日本
方法名 : album_list_style
调用例子 :
let query = Query::new().param("area", "Z_H").param("offset", "2");
let result = client.album_list_style(&query).await?;
获取专辑歌曲的音质
说明 : 调用后可获取专辑歌曲的音质
必选参数 : id : 专辑 id
方法名 : album_privilege
调用例子 :
let query = Query::new().param("id", "168223858");
let result = client.album_privilege(&query).await?;
数字专辑&数字单曲-榜单
说明 : 调用此接口 ,可获取数字专辑&数字单曲-榜单
可选参数 : limit : 返回数量 , 默认为 30
offset : 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
albumType : 0 为数字专辑, 1 为数字单曲
type : daily:日榜,week:周榜,year:年榜,total:总榜
方法名 : album_songsaleboard
调用例子 :
let query = Query::new()
.param("type", "year")
.param("year", "2020")
.param("albumType", "0");
let result = client.album_songsaleboard(&query).await?;
MV 相关
全部 mv
说明 : 调用此接口 , 可获取全部 mv
可选参数 : area : 地区,可选值为全部,内地,港台,欧美,日本,韩国,不填则为全部
type : 类型,可选值为全部,官方版,原生,现场版,网易出品,不填则为全部
order : 排序,可选值为上升最快,最热,最新,不填则为上升最快
limit : 取出数量 , 默认为 30
offset : 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认为 0
方法名 : mv_all
调用例子 :
let query = Query::new().param("area", "港台");
let result = client.mv_all(&query).await?;
最新 mv
说明 : 调用此接口 , 可获取最新 mv
可选参数 : area : 地区,可选值为全部,内地,港台,欧美,日本,韩国,不填则为全部
limit : 取出数量 , 默认为 30
方法名 : mv_first
调用例子 :
let query = Query::new().param("limit", "10");
let result = client.mv_first(&query).await?;
网易出品 mv
说明 : 调用此接口 , 可获取网易出品 mv
可选参数 : limit : 取出数量 , 默认为 30
offset : 偏移数量 , 用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
方法名 : mv_exclusive_rcmd
调用例子 :
let query = Query::new().param("limit", "10");
let result = client.mv_exclusive_rcmd(&query).await?;
获取 mv 数据
说明 : 调用此接口 , 传入 mvid ( 在搜索音乐的时候传 type=1004 获得 ) , 可获取对应 MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等数据 , 其中 mv 视频网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 mv_url 接口
必选参数 : mvid : mv 的 id
方法名 : mv_detail
调用例子 :
let query = Query::new().param("mvid", "5436712");
let result = client.mv_detail(&query).await?;
获取 mv 点赞转发评论数数据
说明 : 调用此接口 , 传入 mvid ( 在搜索音乐的时候传 type=1004 获得 ) , 可获取对应 MV 点赞转发评论数数据
必选参数 : mvid : mv 的 id
方法名 : mv_detail_info
调用例子 :
let query = Query::new().param("mvid", "5436712");
let result = client.mv_detail_info(&query).await?;
mv 地址
说明 : 调用此接口 , 传入 mv id,可获取 mv 播放地址
必选参数 : id : mv id
可选参数 : r : 分辨率,默认 1080,可从 mv_detail 接口获取分辨率列表
方法名 : mv_url
调用例子 :
let query = Query::new().param("id", "5436712");
let result = client.mv_url(&query).await?;
// 指定分辨率
let query = Query::new().param("id", "10896407").param("r", "1080");
let result = client.mv_url(&query).await?;
收藏/取消收藏 MV
说明 : 调用此接口,可收藏/取消收藏 MV
必选参数 : mvid : MV id
t : 1 为收藏,其他为取消收藏
方法名 : mv_sub
调用例子 :
let query = Query::new().param("mvid", "5436712").param("t", "1");
let result = client.mv_sub(&query).await?;
收藏的 MV 列表
说明 : 调用此接口,可获取收藏的 MV 列表
方法名 : mv_sublist
调用例子 :
let query = Query::new();
let result = client.mv_sublist(&query).await?;
推荐 mv
说明 : 调用此接口 , 可获取推荐 mv
方法名 : personalized_mv
调用例子 :
let query = Query::new();
let result = client.personalized_mv(&query).await?;
mv 排行
说明 : 调用此接口 , 可获取 mv 排行
可选参数 : limit : 取出数量 , 默认为 30
area : 地区,可选值为内地,港台,欧美,日本,韩国,不填则为全部
offset : 偏移数量 , 用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
方法名 : top_mv
调用例子 :
let query = Query::new().param("limit", "10");
let result = client.top_mv(&query).await?;
视频相关
获取视频标签列表
说明 : 调用此接口 , 可获取视频标签列表
方法名 : video_group_list
调用例子 :
let query = Query::new();
let result = client.video_group_list(&query).await?;
获取视频分类列表
说明 : 调用此接口 , 可获取视频分类列表
方法名 : video_category_list
调用例子 :
let query = Query::new();
let result = client.video_category_list(&query).await?;
获取视频标签/分类下的视频
说明 : 调用此接口 , 传入标签/分类 id,可获取到相关的视频,分页参数只能传入 offset
必选参数 : id : videoGroup 的 id
可选参数 : offset : 默认 0
方法名 : video_group
调用例子 :
let query = Query::new().param("id", "9104");
let result = client.video_group(&query).await?;
获取全部视频列表
说明 : 调用此接口,可获取视频分类列表,分页参数只能传入 offset
可选参数 : offset : 默认 0
方法名 : video_timeline_all
调用例子 :
let query = Query::new();
let result = client.video_timeline_all(&query).await?;
获取推荐视频
说明 : 调用此接口, 可获取推荐视频,分页参数只能传入 offset
可选参数 : offset : 默认 0
方法名 : video_timeline_recommend
调用例子 :
let query = Query::new().param("offset", "10");
let result = client.video_timeline_recommend(&query).await?;
视频详情
说明 : 调用此接口 , 可获取视频详情
必选参数 : id : 视频 的 id
方法名 : video_detail
调用例子 :
let query = Query::new().param("id", "89ADDE33C0AAE8EC14B99F6750DB954D");
let result = client.video_detail(&query).await?;
获取视频点赞转发评论数数据
说明 : 调用此接口 , 传入 vid ( 视频 id ) , 可获取对应视频点赞转发评论数数据
必选参数 : vid : 视频 id
方法名 : video_detail_info
调用例子 :
let query = Query::new().param("vid", "89ADDE33C0AAE8EC14B99F6750DB954D");
let result = client.video_detail_info(&query).await?;
获取视频播放地址
说明 : 调用此接口 , 传入视频 id,可获取视频播放地址
必选参数 : id : 视频 的 id
方法名 : video_url
调用例子 :
let query = Query::new().param("id", "89ADDE33C0AAE8EC14B99F6750DB954D");
let result = client.video_url(&query).await?;
收藏视频
说明 : 调用此接口,可收藏视频
必选参数 : id : 视频 id
t : 1 为收藏,其他为取消收藏
方法名 : video_sub
调用例子 :
let query = Query::new()
.param("id", "89ADDE33C0AAE8EC14B99F6750DB954D")
.param("t", "1");
let result = client.video_sub(&query).await?;
相关视频
说明 : 调用此接口 , 可获取相关视频
必选参数 : id : 视频 的 id
方法名 : related_allvideo
调用例子 :
let query = Query::new().param("id", "89ADDE33C0AAE8EC14B99F6750DB954D");
let result = client.related_allvideo(&query).await?;
获取 mlog 播放地址
说明 : 调用此接口 , 传入 mlog id, 可获取 mlog 播放地址
必选参数 : id : mlog id
可选参数 : res : 分辨率 , 默认为 1080
方法名 : mlog_url
调用例子 :
let query = Query::new().param("id", "a1qOVPTWKS1ZrK8");
let result = client.mlog_url(&query).await?;
将 mlog id 转为视频 id
说明 : 调用此接口 , 传入 mlog id, 可获取 video id,然后通过 video_url 获取播放地址
必选参数 : id : mlog id
方法名 : mlog_to_video
调用例子 :
let query = Query::new().param("id", "a1qOVPTWKS1ZrK8");
let result = client.mlog_to_video(&query).await?;
歌曲相关视频
说明 : 可以调用此接口获取歌曲相关视频 (区别于 MV), 有些歌曲没有 MV 但是有用户上传的与此歌曲相关的 Mlog。此功能仅在网易云音乐 APP 上存在。请注意:此接口偶尔会在相关视频后返回不相关视频,请合理使用。
必选参数 : songid : 歌曲 ID
可选参数 : mvid : 如果定义,此 mvid 对应的 MV 将会作为第一个返回
limit : 取出的 Mlog 数量, 不包含第一个 mvid
方法名 : mlog_music_rcmd
调用例子 :
let query = Query::new().param("songid", "186016");
let result = client.mlog_music_rcmd(&query).await?;
电台相关
dj_banner - 电台 banner
说明 : 调用此接口,可获取电台 banner
方法名 : dj_banner
Rust 调用例子 :
let query = Query::new();
let result = client.dj_banner(&query).await.unwrap();
dj_personalize_recommend - 电台个性推荐
说明 : 调用此接口,可获取电台个性推荐列表
可选参数 : limit : 返回数量,默认为 6,总条数最多 6 条
方法名 : dj_personalize_recommend
Rust 调用例子 :
let query = Query::new().param("limit", "5");
let result = client.dj_personalize_recommend(&query).await.unwrap();
dj_subscriber - 电台订阅者列表
说明 : 调用此接口,可获取电台订阅者列表
必选参数 : id : 电台 id
可选参数 : time : 分页参数,默认 -1 ; limit : 返回数量,默认为 20
方法名 : dj_subscriber
Rust 调用例子 :
let query = Query::new().param("id", "335425050");
let result = client.dj_subscriber(&query).await.unwrap();
// 分页
let query = Query::new()
.param("id", "335425050")
.param("time", "1602761825390");
let result = client.dj_subscriber(&query).await.unwrap();
dj_catelist - 电台分类
说明 : 登录后调用此接口,可获得电台类型
方法名 : dj_catelist
Rust 调用例子 :
let query = Query::new();
let result = client.dj_catelist(&query).await.unwrap();
dj_category_excludehot - 电台非热门类型
说明 : 登录后调用此接口,可获得电台非热门类型
方法名 : dj_category_excludehot
Rust 调用例子 :
let query = Query::new();
let result = client.dj_category_excludehot(&query).await.unwrap();
dj_category_recommend - 电台推荐类型
说明 : 登录后调用此接口,可获得电台推荐类型
方法名 : dj_category_recommend
Rust 调用例子 :
let query = Query::new();
let result = client.dj_category_recommend(&query).await.unwrap();
dj_detail - 电台详情
说明 : 登录后调用此接口,传入 rid,可获得对应电台的详情介绍
必选参数 : rid : 电台的 id
方法名 : dj_detail
Rust 调用例子 :
let query = Query::new().param("rid", "336355127");
let result = client.dj_detail(&query).await.unwrap();
dj_hot - 热门电台
说明 : 调用此接口,可获取热门电台
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0
方法名 : dj_hot
Rust 调用例子 :
let query = Query::new();
let result = client.dj_hot(&query).await.unwrap();
dj_radio_hot - 类别热门电台
说明 : 调用此接口,可获取类别热门电台
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0 ; cateId : 类别 id,可通过 /dj/category/recommend 接口获取
方法名 : dj_radio_hot
Rust 调用例子 :
let query = Query::new().param("cateId", "2001");
let result = client.dj_radio_hot(&query).await.unwrap();
dj_program - 电台节目
说明 : 登录后调用此接口,传入 rid,可查看对应电台的电台节目以及对应的 id。注意此接口返回的 mp3Url 已经无效,需通过 /song/url 接口传入节目 mainTrackId 获取音频
必选参数 : rid : 电台的 id
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0 ; asc : 排序方式,默认为 false (新 => 老),设置 true 可改为 老 => 新
方法名 : dj_program
Rust 调用例子 :
let query = Query::new()
.param("rid", "336355127")
.param("limit", "40");
let result = client.dj_program(&query).await.unwrap();
dj_program_detail - 电台节目详情
说明 : 调用此接口传入电台节目 id,可获得电台节目详情
必选参数 : id : 电台节目的 id
方法名 : dj_program_detail
Rust 调用例子 :
let query = Query::new().param("id", "1367665101");
let result = client.dj_program_detail(&query).await.unwrap();
dj_program_toplist - 电台节目榜
说明 : 登录后调用此接口,可获得电台节目榜
可选参数 : limit : 返回数量,默认为 100 ; offset : 偏移数量,默认为 0
方法名 : dj_program_toplist
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.dj_program_toplist(&query).await.unwrap();
dj_program_toplist_hours - 24 小时节目榜
说明 : 调用此接口,可获取 24 小时节目榜
可选参数 : limit : 返回数量,默认为 100 (不支持 offset)
方法名 : dj_program_toplist_hours
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.dj_program_toplist_hours(&query).await.unwrap();
dj_recommend - 电台推荐
说明 : 登录后调用此接口,可获得推荐电台
方法名 : dj_recommend
Rust 调用例子 :
let query = Query::new();
let result = client.dj_recommend(&query).await.unwrap();
dj_recommend_type - 电台分类推荐
说明 : 登录后调用此接口,传入分类,可获得对应类型电台列表
必选参数 : type : 电台类型,数字,可通过 dj_catelist 获取,id 对应此接口的 type
方法名 : dj_recommend_type
Rust 调用例子 :
let query = Query::new().param("type", "1"); // 明星做主播
let result = client.dj_recommend_type(&query).await.unwrap();
dj_sub - 电台订阅
说明 : 登录后调用此接口,传入 rid,可订阅/取消订阅电台
必选参数 : rid : 电台的 id ; t : 1 为订阅,0 为取消订阅
方法名 : dj_sub
Rust 调用例子 :
// 订阅
let query = Query::new()
.param("rid", "336355127")
.param("t", "1");
let result = client.dj_sub(&query).await.unwrap();
// 取消订阅
let query = Query::new()
.param("rid", "336355127")
.param("t", "0");
let result = client.dj_sub(&query).await.unwrap();
dj_sublist - 电台订阅列表
说明 : 登录后调用此接口,可获取订阅的电台列表
方法名 : dj_sublist
Rust 调用例子 :
let query = Query::new();
let result = client.dj_sublist(&query).await.unwrap();
dj_toplist - 新晋电台榜/热门电台榜
说明 : 登录后调用此接口,可获得新晋电台榜/热门电台榜
可选参数 : limit : 返回数量,默认为 100 ; offset : 偏移数量,默认为 0 ; type : 榜单类型,new 为新晋电台榜,hot 为热门电台榜
方法名 : dj_toplist
Rust 调用例子 :
let query = Query::new().param("type", "hot");
let result = client.dj_toplist(&query).await.unwrap();
let query = Query::new()
.param("type", "new")
.param("limit", "1");
let result = client.dj_toplist(&query).await.unwrap();
dj_toplist_hours - 24 小时主播榜
说明 : 调用此接口,可获取 24 小时主播榜
可选参数 : limit : 返回数量,默认为 100 (不支持 offset)
方法名 : dj_toplist_hours
Rust 调用例子 :
let query = Query::new().param("limit", "30");
let result = client.dj_toplist_hours(&query).await.unwrap();
dj_toplist_newcomer - 主播新人榜
说明 : 调用此接口,可获取主播新人榜
可选参数 : limit : 返回数量,默认为 100 (不支持 offset)
方法名 : dj_toplist_newcomer
Rust 调用例子 :
let query = Query::new().param("limit", "30");
let result = client.dj_toplist_newcomer(&query).await.unwrap();
dj_toplist_pay - 付费精品电台
说明 : 调用此接口,可获取付费精品电台
可选参数 : limit : 返回数量,默认为 100 (不支持 offset)
方法名 : dj_toplist_pay
Rust 调用例子 :
let query = Query::new().param("limit", "30");
let result = client.dj_toplist_pay(&query).await.unwrap();
dj_toplist_popular - 最热主播榜
说明 : 调用此接口,可获取最热主播榜
可选参数 : limit : 返回数量,默认为 100 (不支持 offset)
方法名 : dj_toplist_popular
Rust 调用例子 :
let query = Query::new().param("limit", "30");
let result = client.dj_toplist_popular(&query).await.unwrap();
dj_paygift - 付费精选
说明 : 可以获取付费精选的电台列表
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0
方法名 : dj_paygift
Rust 调用例子 :
let query = Query::new()
.param("limit", "10")
.param("offset", "20");
let result = client.dj_paygift(&query).await.unwrap();
dj_today_perfered - 电台今日优选
说明 : 登录后调用此接口,可获得电台今日优选
方法名 : dj_today_perfered
Rust 调用例子 :
let query = Query::new();
let result = client.dj_today_perfered(&query).await.unwrap();
dj_radio_top - 电台排行榜
说明 : 调用此接口可以获取电台排行榜
可选参数 : djRadioId : 电台 id ; sortIndex : 排序 1:播放数 2:点赞数 3:评论数 4:分享数 5:收藏数,默认 1 ; dataGapDays : 天数 7:一周 30:一个月 90:三个月,默认 7 ; dataType : 默认 3
方法名 : dj_radio_top
Rust 调用例子 :
let query = Query::new()
.param("djRadioId", "336355127")
.param("sortIndex", "1")
.param("dataGapDays", "7");
let result = client.dj_radio_top(&query).await.unwrap();
🎯 推荐相关
personalized - 推荐歌单
说明 : 调用此接口,可获取推荐歌单
可选参数 : limit : 取出数量,默认为 30 (不支持 offset)
方法名 : personalized
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.personalized(&query).await.unwrap();
personalized_newsong - 推荐新音乐
说明 : 调用此接口,可获取推荐新音乐
可选参数 : limit : 取出数量,默认为 10 (不支持 offset)
方法名 : personalized_newsong
Rust 调用例子 :
let query = Query::new();
let result = client.personalized_newsong(&query).await.unwrap();
personalized_djprogram - 推荐电台
说明 : 调用此接口,可获取推荐电台
方法名 : personalized_djprogram
Rust 调用例子 :
let query = Query::new();
let result = client.personalized_djprogram(&query).await.unwrap();
personalized_privatecontent - 独家放送(入口列表)
说明 : 调用此接口,可获取独家放送
方法名 : personalized_privatecontent
Rust 调用例子 :
let query = Query::new();
let result = client.personalized_privatecontent(&query).await.unwrap();
personalized_privatecontent_list - 独家放送列表
说明 : 调用此接口,可获取独家放送列表
可选参数 : limit : 返回数量,默认为 60 ; offset : 偏移数量,默认为 0
方法名 : personalized_privatecontent_list
Rust 调用例子 :
let query = Query::new()
.param("limit", "1")
.param("offset", "2");
let result = client.personalized_privatecontent_list(&query).await.unwrap();
recommend_songs - 每日推荐歌曲
说明 : 调用此接口,可获得每日推荐歌曲 (需要登录)
方法名 : recommend_songs
Rust 调用例子 :
let query = Query::new();
let result = client.recommend_songs(&query).await.unwrap();
recommend_resource - 每日推荐歌单
说明 : 调用此接口,可获得每日推荐歌单 (需要登录)
方法名 : recommend_resource
Rust 调用例子 :
let query = Query::new();
let result = client.recommend_resource(&query).await.unwrap();
recommend_songs_dislike - 每日推荐歌曲不感兴趣
说明 : 日推歌曲标记为不感兴趣 (同时会返回一个新推荐歌曲,需要登录)
必选参数 : id : 歌曲 id
方法名 : recommend_songs_dislike
Rust 调用例子 :
let query = Query::new().param("id", "168091");
let result = client.recommend_songs_dislike(&query).await.unwrap();
history_recommend_songs - 获取历史日推可用日期列表
说明 : 调用此接口,可获得历史日推可用日期列表
方法名 : history_recommend_songs
Rust 调用例子 :
let query = Query::new();
let result = client.history_recommend_songs(&query).await.unwrap();
history_recommend_songs_detail - 获取历史日推详情数据
说明 : 调用此接口,传入当日日期,可获得当日历史日推数据
必选参数 : date : 日期,通过历史日推可用日期列表接口获取,不能任意日期
方法名 : history_recommend_songs_detail
Rust 调用例子 :
let query = Query::new().param("date", "2020-06-21");
let result = client.history_recommend_songs_detail(&query).await.unwrap();
program_recommend - 推荐节目
说明 : 调用此接口,可获取推荐电台节目
可选参数 : limit : 取出数量,默认为 10 ; offset : 偏移数量,默认为 0
方法名 : program_recommend
Rust 调用例子 :
let query = Query::new().param("limit", "5");
let result = client.program_recommend(&query).await.unwrap();
homepage_block_page - 首页-发现
说明 : 调用此接口,可获取 APP 首页信息
可选参数 : refresh : 是否刷新数据,默认为 false ; cursor : 上一条数据返回的 cursor
方法名 : homepage_block_page
Rust 调用例子 :
let query = Query::new();
let result = client.homepage_block_page(&query).await.unwrap();
homepage_dragon_ball - 首页圆形图标入口列表
说明 : 调用此接口,可获取 APP 首页圆形图标入口列表
方法名 : homepage_dragon_ball
Rust 调用例子 :
let query = Query::new();
let result = client.homepage_dragon_ball(&query).await.unwrap();
banner - 首页 Banner
说明 : 调用此接口,可获取 banner(轮播图)数据
可选参数 : type : 资源类型, 0: pc, 1: android, 2: iphone, 3: ipad,默认为 0
方法名 : banner
Rust 调用例子 :
let query = Query::new();
let result = client.banner(&query).await.unwrap();
let query = Query::new().param("type", "2");
let result = client.banner(&query).await.unwrap();
daily_signin - 签到
说明 : 调用此接口,可签到 (需要登录)。安卓端签到可获得 3 点经验,web/PC 端签到可获得 2 点经验
可选参数 : type : 签到类型,默认 0(安卓端签到),1 为 web/PC 签到
方法名 : daily_signin
Rust 调用例子 :
let query = Query::new();
let result = client.daily_signin(&query).await.unwrap();
personal_fm - 私人 FM
说明 : 私人 FM (需要登录)
方法名 : personal_fm
Rust 调用例子 :
let query = Query::new();
let result = client.personal_fm(&query).await.unwrap();
personal_fm_mode - 私人 FM 模式选择
说明 : 调用此接口返回私人 FM 内容,并可以选择模式
必选参数 : mode : 模式 (aidj, DEFAULT, FAMILIAR, EXPLORE, SCENE_RCMD)
可选参数 : submode : 当 mode 为 SCENE_RCMD 时可为 (EXERCISE, FOCUS, NIGHT_EMO)
方法名 : personal_fm_mode
Rust 调用例子 :
let query = Query::new().param("mode", "FAMILIAR");
let result = client.personal_fm_mode(&query).await.unwrap();
fm_trash - 垃圾桶
说明 : 调用此接口,传入音乐 id,可把该音乐从私人 FM 中移除至垃圾桶
必选参数 : id : 歌曲 id
方法名 : fm_trash
Rust 调用例子 :
let query = Query::new().param("id", "347230");
let result = client.fm_trash(&query).await.unwrap();
playmode_intelligence_list - 心动模式/智能播放
说明 : 登录后调用此接口,可获取心动模式/智能播放列表
必选参数 : id : 歌曲 id ; pid : 歌单 id
可选参数 : sid : 要开始播放的歌曲的 id
方法名 : playmode_intelligence_list
Rust 调用例子 :
let query = Query::new()
.param("id", "33894312")
.param("pid", "24381616");
let result = client.playmode_intelligence_list(&query).await.unwrap();
let query = Query::new()
.param("id", "33894312")
.param("pid", "24381616")
.param("sid", "36871368");
let result = client.playmode_intelligence_list(&query).await.unwrap();
playmode_song_vector - 歌曲向量
说明 : 调用此接口,可获取歌曲向量数据
方法名 : playmode_song_vector
Rust 调用例子 :
let query = Query::new();
let result = client.playmode_song_vector(&query).await.unwrap();
simi_song - 相似歌曲
说明 : 调用此接口,传入歌曲 id,可获得相似歌曲
必选参数 : id : 歌曲 id
方法名 : simi_song
Rust 调用例子 :
let query = Query::new().param("id", "347230");
let result = client.simi_song(&query).await.unwrap();
simi_artist - 相似歌手
说明 : 调用此接口,传入歌手 id,可获得相似歌手
必选参数 : id : 歌手 id
方法名 : simi_artist
Rust 调用例子 :
let query = Query::new().param("id", "6452");
let result = client.simi_artist(&query).await.unwrap();
simi_playlist - 相似歌单
说明 : 调用此接口,传入歌曲 id,可获得相似歌单
必选参数 : id : 歌曲 id
方法名 : simi_playlist
Rust 调用例子 :
let query = Query::new().param("id", "347230");
let result = client.simi_playlist(&query).await.unwrap();
simi_mv - 相似 MV
说明 : 调用此接口,传入 mvid,可获取相似 MV
必选参数 : mvid : MV id
方法名 : simi_mv
Rust 调用例子 :
let query = Query::new().param("mvid", "5436712");
let result = client.simi_mv(&query).await.unwrap();
simi_user - 最近听了这首歌的用户
说明 : 调用此接口,传入歌曲 id,可获取最近 5 个听了这首歌的用户
必选参数 : id : 歌曲 id
方法名 : simi_user
Rust 调用例子 :
let query = Query::new().param("id", "347230");
let result = client.simi_user(&query).await.unwrap();
🏆 排行榜相关
toplist - 所有榜单
说明 : 调用此接口,可获取所有榜单
方法名 : toplist
Rust 调用例子 :
let query = Query::new();
let result = client.toplist(&query).await.unwrap();
toplist_detail - 所有榜单内容摘要
说明 : 调用此接口,可获取所有榜单内容摘要
方法名 : toplist_detail
Rust 调用例子 :
let query = Query::new();
let result = client.toplist_detail(&query).await.unwrap();
toplist_detail_v2 - 所有榜单内容摘要 V2
说明 : 调用此接口,可获取所有榜单内容摘要(V2 版本)
方法名 : toplist_detail_v2
Rust 调用例子 :
let query = Query::new();
let result = client.toplist_detail_v2(&query).await.unwrap();
toplist_artist - 歌手榜
说明 : 调用此接口,可获取排行榜中的歌手榜
可选参数 : type : 地区, 1: 华语, 2: 欧美, 3: 韩国, 4: 日本
方法名 : toplist_artist
Rust 调用例子 :
let query = Query::new();
let result = client.toplist_artist(&query).await.unwrap();
top_song - 新歌速递
说明 : 调用此接口,可获取新歌速递
必选参数 : type : 地区类型 id, 全部:0, 华语:7, 欧美:96, 日本:8, 韩国:16
方法名 : top_song
Rust 调用例子 :
let query = Query::new().param("type", "96");
let result = client.top_song(&query).await.unwrap();
top_album - 新碟上架
说明 : 调用此接口,可获取新碟上架列表
可选参数 : area : ALL/ZH/EA/KR/JP ; type : new(全部)/hot(热门),默认 new ; year : 年 ; month : 月 ; limit / offset
方法名 : top_album
Rust 调用例子 :
let query = Query::new()
.param("offset", "0")
.param("limit", "30")
.param("year", "2019")
.param("month", "6");
let result = client.top_album(&query).await.unwrap();
top_artists - 热门歌手
说明 : 调用此接口,可获取热门歌手数据
可选参数 : limit : 取出数量,默认为 50 ; offset : 偏移数量,默认为 0
方法名 : top_artists
Rust 调用例子 :
let query = Query::new()
.param("offset", "0")
.param("limit", "30");
let result = client.top_artists(&query).await.unwrap();
top_mv - MV 排行
说明 : 调用此接口,可获取 MV 排行
可选参数 : limit : 取出数量,默认为 30 ; area : 地区(内地/港台/欧美/日本/韩国) ; offset : 偏移数量
方法名 : top_mv
Rust 调用例子 :
let query = Query::new().param("limit", "10");
let result = client.top_mv(&query).await.unwrap();
top_playlist - 歌单 (网友精选碟)
说明 : 调用此接口,可获取网友精选碟歌单
可选参数 : order : 可选值 'new' 和 'hot',默认 'hot' ; cat : tag,如"华语"/"古风"等,默认"全部" ; limit / offset
方法名 : top_playlist
Rust 调用例子 :
let query = Query::new()
.param("limit", "10")
.param("order", "new");
let result = client.top_playlist(&query).await.unwrap();
top_playlist_highquality - 获取精品歌单
说明 : 调用此接口,可获取精品歌单
可选参数 : cat : tag,如"华语"/"古风"等,默认"全部" ; limit : 取出歌单数量,默认为 50 ; before : 分页参数,取上一页最后一个歌单的 updateTime 获取下一页数据
方法名 : top_playlist_highquality
Rust 调用例子 :
let query = Query::new()
.param("before", "1503639064232")
.param("limit", "3");
let result = client.top_playlist_highquality(&query).await.unwrap();
top_list - 排行榜详情 (旧版)
说明 : 调用此接口,传入榜单 id,可获取不同排行榜数据。推荐使用歌单详情接口 playlist_detail 传入排行榜 id 获取排行榜详情
必选参数 : id : 榜单 id,通过所有榜单接口获取
方法名 : top_list
Rust 调用例子 :
let query = Query::new().param("id", "2809577409");
let result = client.top_list(&query).await.unwrap();
云盘相关
user_cloud - 云盘数据
说明 : 登录后调用此接口,可获取云盘数据,获取的数据没有对应 url,需要再调用一次 song_url_v1 获取 url
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0
方法名 : user_cloud
Rust 调用例子 :
let query = Query::new();
let result = client.user_cloud(&query).await.unwrap();
user_cloud_detail - 云盘数据详情
说明 : 登录后调用此接口,传入云盘歌曲 id,可获取云盘数据详情
必选参数 : id : 歌曲 id,可多个,用逗号隔开
方法名 : user_cloud_detail
Rust 调用例子 :
let query = Query::new().param("id", "5374627");
let result = client.user_cloud_detail(&query).await.unwrap();
user_cloud_del - 云盘歌曲删除
说明 : 登录后调用此接口,可删除云盘歌曲
必选参数 : id : 歌曲 id,可多个,用逗号隔开
方法名 : user_cloud_del
Rust 调用例子 :
let query = Query::new().param("id", "5374627");
let result = client.user_cloud_del(&query).await.unwrap();
cloud - 云盘上传
说明 : 登录后调用此接口,使用 multipart/form-data 上传 mp3,可上传歌曲到云盘
方法名 : cloud
Rust 调用例子 :
let query = Query::new();
let result = client.cloud(&query).await.unwrap();
cloud_import - 云盘导入歌曲
说明 : 登录后调用此接口,可云盘导入歌曲而无需上传文件。以下情况可导入成功: 1.文件已经有用户上传至云盘 2.文件是网易云音乐自己的音源
必选参数 : song : 歌名/文件名 ; fileType : 文件后缀 ; fileSize : 文件大小 ; bitrate : 文件比特率 ; md5 : 文件 MD5
可选参数 : id : 歌曲 ID(情况 2 时必须正确填写) ; artist : 歌手,默认为未知 ; album : 专辑,默认为未知
方法名 : cloud_import
Rust 调用例子 :
let query = Query::new()
.param("song", "最伟大的作品")
.param("artist", "周杰伦")
.param("album", "最伟大的作品")
.param("fileType", "flac")
.param("fileSize", "50412168")
.param("bitrate", "1652")
.param("md5", "d02b8ab79d91c01167ba31e349fe5275");
let result = client.cloud_import(&query).await.unwrap();
cloud_match - 云盘歌曲信息匹配纠正
说明 : 登录后调用此接口,可对云盘歌曲信息匹配纠正,如需取消匹配,asid 需要传 0
必选参数 : uid : 用户 id ; sid : 云盘的歌曲 id ; asid : 要匹配的歌曲 id
方法名 : cloud_match
Rust 调用例子 :
let query = Query::new()
.param("uid", "32953014")
.param("sid", "aaa")
.param("asid", "bbb");
let result = client.cloud_match(&query).await.unwrap();
// 取消匹配
let query = Query::new()
.param("uid", "32953014")
.param("sid", "bbb")
.param("asid", "0");
let result = client.cloud_match(&query).await.unwrap();
cloud_lyric_get - 获取云盘歌词
说明 : 调用此接口,获取云盘歌曲的歌词,歌词来自此文件的音乐元数据 LYRICS 标签
可选参数 : uid : 用户 id ; sid : 云盘的歌曲 id
方法名 : cloud_lyric_get
Rust 调用例子 :
let query = Query::new()
.param("uid", "1")
.param("sid", "aaa");
let result = client.cloud_lyric_get(&query).await.unwrap();
cloud_upload_token - 获取上传凭证
说明 : 客户端直传模式下,调用此接口获取上传凭证
必选参数 : md5 : 文件 MD5 值 ; fileSize : 文件大小(字节) ; filename : 文件名
方法名 : cloud_upload_token
Rust 调用例子 :
let query = Query::new()
.param("md5", "d02b8ab79d91c01167ba31e349fe5275")
.param("fileSize", "50412168")
.param("filename", "song.mp3");
let result = client.cloud_upload_token(&query).await.unwrap();
cloud_upload_complete - 完成上传导入
说明 : 客户端直传模式下,上传文件后调用此接口完成导入
必选参数 : songId : 歌曲 ID ; resourceId : 资源 ID ; md5 : 文件 MD5 ; filename : 文件名
可选参数 : song : 歌曲名 ; artist : 艺术家 ; album : 专辑名
方法名 : cloud_upload_complete
Rust 调用例子 :
let query = Query::new()
.param("songId", "123456")
.param("resourceId", "res_123")
.param("md5", "d02b8ab79d91c01167ba31e349fe5275")
.param("filename", "song.mp3")
.param("song", "歌曲名")
.param("artist", "歌手名");
let result = client.cloud_upload_complete(&query).await.unwrap();
💌 私信相关
msg_private - 通知-私信
说明 : 登录后调用此接口,可获取私信
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0
方法名 : msg_private
Rust 调用例子 :
let query = Query::new().param("limit", "3");
let result = client.msg_private(&query).await.unwrap();
msg_private_history - 私信内容
说明 : 登录后调用此接口,可获取私信内容
必选参数 : uid : 用户 id
可选参数 : limit : 返回数量,默认为 30 ; before : 分页参数,取上一页最后一项的 time 获取下一页数据
方法名 : msg_private_history
Rust 调用例子 :
let query = Query::new().param("uid", "9003"); // 云音乐小秘书
let result = client.msg_private_history(&query).await.unwrap();
msg_comments - 通知-评论
说明 : 登录后调用此接口,可获取评论通知
必选参数 : uid : 用户的 id,只能和登录账号的 id 一致
可选参数 : limit : 返回数量,默认为 30 ; before : 分页参数,取上一页最后一个的 updateTime 获取下一页数据
方法名 : msg_comments
Rust 调用例子 :
let query = Query::new().param("uid", "32953014");
let result = client.msg_comments(&query).await.unwrap();
msg_forwards - 通知-@我
说明 : 登录后调用此接口,可获取 @我 数据
可选参数 : limit : 返回数量,默认为 30 ; offset : 偏移数量,默认为 0
方法名 : msg_forwards
Rust 调用例子 :
let query = Query::new().param("limit", "3");
let result = client.msg_forwards(&query).await.unwrap();
msg_notices - 通知-通知
说明 : 登录后调用此接口,可获取通知
可选参数 : limit : 返回数量,默认为 30 ; lasttime : 返回数据的 time,默认 -1,传入上一次返回结果的 time 将会返回下一页的数据
方法名 : msg_notices
Rust 调用例子 :
let query = Query::new().param("limit", "3");
let result = client.msg_notices(&query).await.unwrap();
msg_recentcontact - 最近联系人
说明 : 登录后调用此接口,可获取最近联系人
方法名 : msg_recentcontact
Rust 调用例子 :
let query = Query::new();
let result = client.msg_recentcontact(&query).await.unwrap();
send_text - 发送私信
说明 : 登录后调用此接口,传入用户 id 和要发送的信息,可以发送私信 (注:不能发送私信给自己)
必选参数 : user_ids : 用户 id,多个需用逗号隔开 ; msg : 要发送的信息
方法名 : send_text
Rust 调用例子 :
let query = Query::new()
.param("user_ids", "32953014")
.param("msg", "test");
let result = client.send_text(&query).await.unwrap();
send_song - 发送私信(带歌曲)
说明 : 登录后调用此接口,传入用户 id、信息和音乐 id,可以发送音乐私信
必选参数 : user_ids : 用户 id ; id : 音乐 id ; msg : 要发送的信息
方法名 : send_song
Rust 调用例子 :
let query = Query::new()
.param("user_ids", "1")
.param("id", "351318")
.param("msg", "测试");
let result = client.send_song(&query).await.unwrap();
send_playlist - 发送私信(带歌单)
说明 : 登录后调用此接口,传入用户 id、信息和歌单 id,可以发送带歌单的私信 (注:不能发送重复的歌单)
必选参数 : user_ids : 用户 id ; msg : 要发送的信息 ; playlist : 歌单 id
方法名 : send_playlist
Rust 调用例子 :
let query = Query::new()
.param("msg", "test")
.param("user_ids", "475625142")
.param("playlist", "705123491");
let result = client.send_playlist(&query).await.unwrap();
send_album - 发送私信(带专辑)
说明 : 登录后调用此接口,传入用户 id、信息和专辑 id,可以发送专辑私信
必选参数 : user_ids : 用户 id ; id : 专辑 id ; msg : 要发送的信息
方法名 : send_album
Rust 调用例子 :
let query = Query::new()
.param("user_ids", "1")
.param("id", "351318")
.param("msg", "测试");
let result = client.send_album(&query).await.unwrap();
share_resource - 分享到动态
说明 : 登录后调用此接口,可以分享文本、歌曲、歌单、mv、电台、电台节目、专辑到动态
必选参数 : id : 资源 id
可选参数 : type : 资源类型,默认 song,可传 song/playlist/mv/djradio/djprogram/album ; msg : 内容,140 字限制
方法名 : share_resource
Rust 调用例子 :
let query = Query::new()
.param("id", "1297494209")
.param("msg", "测试");
let result = client.share_resource(&query).await.unwrap();
resource_like - 资源点赞
说明 : 调用此接口,可对 MV、电台、视频等资源点赞
必选参数 : type : 资源类型 (0:歌曲, 1:mv, 2:歌单, 3:专辑, 4:电台节目, 5:视频, 6:动态, 7:电台) ; t : 1 为点赞,其他为取消 ; id : 资源 id
方法名 : resource_like
Rust 调用例子 :
let query = Query::new()
.param("t", "1")
.param("type", "1")
.param("id", "5436712");
let result = client.resource_like(&query).await.unwrap();
event - 获取动态列表
说明 : 调用此接口,可获取各种动态
可选参数 : pagesize : 每页数据,默认 20 ; lasttime : 默认 -1,传入上一次返回结果的 lasttime 将会返回下一页的数据
方法名 : event
Rust 调用例子 :
let query = Query::new()
.param("pagesize", "30")
.param("lasttime", "1556740526369");
let result = client.event(&query).await.unwrap();
event_del - 删除用户动态
说明 : 登录后调用此接口,可以删除用户动态
必选参数 : evId : 动态 id
方法名 : event_del
Rust 调用例子 :
let query = Query::new().param("evId", "6712917601");
let result = client.event_del(&query).await.unwrap();
event_forward - 转发用户动态
说明 : 登录后调用此接口,可以转发用户动态
必选参数 : uid : 用户 id ; evId : 动态 id ; forwards : 转发的评论
方法名 : event_forward
Rust 调用例子 :
let query = Query::new()
.param("evId", "6712917601")
.param("uid", "32953014")
.param("forwards", "测试内容");
let result = client.event_forward(&query).await.unwrap();
👑 VIP/会员
vip_info - 获取 VIP 信息
说明 : 登录后调用此接口,可获取当前 VIP 信息
可选参数 : uid : 用户 id
方法名 : vip_info
Rust 调用例子 :
let query = Query::new();
let result = client.vip_info(&query).await.unwrap();
let query = Query::new().param("uid", "32953014");
let result = client.vip_info(&query).await.unwrap();
vip_info_v2 - 获取 VIP 信息(app 端)
说明 : 登录后调用此接口,可获取当前 VIP 信息 (app 端)
可选参数 : uid : 用户 id
方法名 : vip_info_v2
Rust 调用例子 :
let query = Query::new();
let result = client.vip_info_v2(&query).await.unwrap();
vip_sign - 黑胶乐签打卡
说明 : 登录后调用此接口,进行黑胶乐签打卡
方法名 : vip_sign
Rust 调用例子 :
let query = Query::new();
let result = client.vip_sign(&query).await.unwrap();
vip_sign_info - 黑胶乐签打卡信息
说明 : 登录后调用此接口,获取黑胶乐签打卡信息
方法名 : vip_sign_info
Rust 调用例子 :
let query = Query::new();
let result = client.vip_sign_info(&query).await.unwrap();
vip_tasks - VIP 任务
说明 : 登录后调用此接口,可获取会员任务
方法名 : vip_tasks
Rust 调用例子 :
let query = Query::new();
let result = client.vip_tasks(&query).await.unwrap();
vip_timemachine - 黑胶时光机
说明 : 调用此接口,可获得黑胶时光机数据
可选参数 : startTime : 开始时间 ; endTime : 结束时间 ; limit : 返回数量,默认为 60
方法名 : vip_timemachine
Rust 调用例子 :
let query = Query::new();
let result = client.vip_timemachine(&query).await.unwrap();
// 获取 2021 年 12 月数据
let query = Query::new()
.param("startTime", "1638288000000")
.param("endTime", "1640966399999")
.param("limit", "10");
let result = client.vip_timemachine(&query).await.unwrap();
vip_growthpoint - VIP 成长值
说明 : 登录后调用此接口,可获取当前会员成长值
方法名 : vip_growthpoint
Rust 调用例子 :
let query = Query::new();
let result = client.vip_growthpoint(&query).await.unwrap();
vip_growthpoint_details - VIP 成长值获取记录
说明 : 登录后调用此接口,可获取会员成长值领取记录
可选参数 : limit : 取出数量,默认为 20 ; offset : 偏移数量
方法名 : vip_growthpoint_details
Rust 调用例子 :
let query = Query::new().param("limit", "10");
let result = client.vip_growthpoint_details(&query).await.unwrap();
vip_growthpoint_get - 领取 VIP 成长值
说明 : 登录后调用此接口,可获取已完成的会员任务的成长值奖励
必选参数 : ids : 通过 vip_tasks 获取到的 unGetIds
方法名 : vip_growthpoint_get
Rust 调用例子 :
let query = Query::new().param("ids", "7043206830_7");
let result = client.vip_growthpoint_get(&query).await.unwrap();
🌟 云贝
yunbei - 云贝签到信息
说明 : 登录后调用此接口可获取云贝签到信息(连续签到天数,第二天全部可获得的云贝)
方法名 : yunbei
Rust 调用例子 :
let query = Query::new();
let result = client.yunbei(&query).await.unwrap();
yunbei_info - 云贝账户信息
说明 : 登录后调用此接口可获取云贝账户信息(账户云贝数)
方法名 : yunbei_info
Rust 调用例子 :
let query = Query::new();
let result = client.yunbei_info(&query).await.unwrap();
yunbei_sign - 云贝签到
说明 : 登录后调用此接口可进行云贝签到
方法名 : yunbei_sign
Rust 调用例子 :
let query = Query::new();
let result = client.yunbei_sign(&query).await.unwrap();
yunbei_today - 云贝今日签到信息
说明 : 登录后调用此接口可获取云贝今日签到信息(今日签到获取的云贝数)
方法名 : yunbei_today
Rust 调用例子 :
let query = Query::new();
let result = client.yunbei_today(&query).await.unwrap();
yunbei_expense - 云贝支出
说明 : 登录后调用此接口可获取云贝支出
可选参数 : limit : 取出数量,默认为 10 ; offset : 偏移数量
方法名 : yunbei_expense
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.yunbei_expense(&query).await.unwrap();
yunbei_receipt - 云贝收入
说明 : 登录后调用此接口可获取云贝收入
可选参数 : limit : 取出数量,默认为 10 ; offset : 偏移数量
方法名 : yunbei_receipt
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.yunbei_receipt(&query).await.unwrap();
yunbei_tasks - 云贝所有任务
说明 : 登录后调用此接口可获取云贝所有任务
方法名 : yunbei_tasks
Rust 调用例子 :
let query = Query::new();
let result = client.yunbei_tasks(&query).await.unwrap();
yunbei_tasks_todo - 云贝 todo 任务
说明 : 登录后调用此接口可获取云贝 todo 任务
方法名 : yunbei_tasks_todo
Rust 调用例子 :
let query = Query::new();
let result = client.yunbei_tasks_todo(&query).await.unwrap();
yunbei_task_finish - 云贝完成任务
说明 : 调用此接口完成云贝任务
必选参数 : userTaskId : 任务 id
可选参数 : depositCode : 任务 depositCode
方法名 : yunbei_task_finish
Rust 调用例子 :
let query = Query::new()
.param("userTaskId", "5146243240")
.param("depositCode", "0");
let result = client.yunbei_task_finish(&query).await.unwrap();
yunbei_rcmd_song - 云贝推歌
说明 : 登录后调用此接口,传入歌曲 id,可以进行云贝推歌
必选参数 : id : 歌曲 id
可选参数 : reason : 推歌理由 ; yunbeiNum : 云贝数量,默认 10
方法名 : yunbei_rcmd_song
Rust 调用例子 :
let query = Query::new().param("id", "65528");
let result = client.yunbei_rcmd_song(&query).await.unwrap();
let query = Query::new()
.param("id", "65528")
.param("reason", "人间好声音推荐给你听");
let result = client.yunbei_rcmd_song(&query).await.unwrap();
yunbei_rcmd_song_history - 云贝推歌历史记录
说明 : 登录后调用此接口,可以获得云贝推歌历史记录
可选参数 : size : 返回数量,默认为 20 ; cursor : 传入上一次返回结果的 cursor,将会返回下一页的数据
方法名 : yunbei_rcmd_song_history
Rust 调用例子 :
let query = Query::new().param("size", "10");
let result = client.yunbei_rcmd_song_history(&query).await.unwrap();
👣 听歌足迹
listen_data_year_report - 年度听歌足迹
说明 : 登录后调用此接口,获取年度听歌足迹
方法名 : listen_data_year_report
Rust 调用例子 :
let query = Query::new();
let result = client.listen_data_year_report(&query).await.unwrap();
listen_data_today_song - 今日收听
说明 : 登录后调用此接口,获取今日收听
方法名 : listen_data_today_song
Rust 调用例子 :
let query = Query::new();
let result = client.listen_data_today_song(&query).await.unwrap();
listen_data_total - 总收听时长
说明 : 登录后调用此接口,获取总收听时长;相关接口可能需要 VIP 权限
方法名 : listen_data_total
Rust 调用例子 :
let query = Query::new();
let result = client.listen_data_total(&query).await.unwrap();
listen_data_realtime_report - 本周/本月收听时长
说明 : 登录后调用此接口,获取本周/本月收听时长
必选参数 : type : 维度类型,周 week,月 month;今年没结束不支持今年的数据
方法名 : listen_data_realtime_report
Rust 调用例子 :
let query = Query::new().param("type", "month");
let result = client.listen_data_realtime_report(&query).await.unwrap();
listen_data_report - 周/月/年收听报告
说明 : 登录后调用此接口,获取周/月/年收听报告
必选参数 : type : 维度类型,周 week,月 month,年 year
可选参数 : endTime : 周:每周周六 0 点的时间戳 ; 月:每月最后一天 0 点的时间戳 ; 年:每年最后一天 0 点的时间戳。不填就是本周/月的
方法名 : listen_data_report
Rust 调用例子 :
let query = Query::new().param("type", "month");
let result = client.listen_data_report(&query).await.unwrap();
recent_listen_list - 最近听歌列表
说明 : 调用后可获取最近听歌列表
方法名 : recent_listen_list
Rust 调用例子 :
let query = Query::new();
let result = client.recent_listen_list(&query).await.unwrap();
record_recent_song - 最近播放-歌曲
说明 : 调用此接口,可获得最近播放-歌曲
可选参数 : limit : 返回数量,默认为 100
方法名 : record_recent_song
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.record_recent_song(&query).await.unwrap();
record_recent_album - 最近播放-专辑
说明 : 调用此接口,可获得最近播放-专辑
可选参数 : limit : 返回数量,默认为 100
方法名 : record_recent_album
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.record_recent_album(&query).await.unwrap();
record_recent_playlist - 最近播放-歌单
说明 : 调用此接口,可获得最近播放-歌单
可选参数 : limit : 返回数量,默认为 100
方法名 : record_recent_playlist
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.record_recent_playlist(&query).await.unwrap();
record_recent_dj - 最近播放-播客
说明 : 调用此接口,可获得最近播放-播客
可选参数 : limit : 返回数量,默认为 100
方法名 : record_recent_dj
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.record_recent_dj(&query).await.unwrap();
record_recent_video - 最近播放-视频
说明 : 调用此接口,可获得最近播放-视频
可选参数 : limit : 返回数量,默认为 100
方法名 : record_recent_video
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.record_recent_video(&query).await.unwrap();
record_recent_voice - 最近播放-声音
说明 : 调用此接口,可获得最近播放-声音
可选参数 : limit : 返回数量,默认为 100
方法名 : record_recent_voice
Rust 调用例子 :
let query = Query::new().param("limit", "1");
let result = client.record_recent_voice(&query).await.unwrap();
🎨 风格/曲风
style_list - 曲风列表
说明 : 调用此接口获取曲风列表及其对应的 tagId
方法名 : style_list
Rust 调用例子 :
let query = Query::new();
let result = client.style_list(&query).await.unwrap();
style_detail - 曲风详情
说明 : 调用此接口可以获取该曲风的描述信息
必选参数 : tagId : 曲风 ID
方法名 : style_detail
Rust 调用例子 :
let query = Query::new().param("tagId", "1000");
let result = client.style_detail(&query).await.unwrap();
style_song - 曲风-歌曲
说明 : 调用此接口可以获取该曲风对应的歌曲
必选参数 : tagId : 曲风 ID
可选参数 : size : 返回数量,默认为 20 ; cursor : 分页 cursor,默认为 0 ; sort : 排序方式,0:按热度排序,1:按时间排序
方法名 : style_song
Rust 调用例子 :
let query = Query::new().param("tagId", "1000");
let result = client.style_song(&query).await.unwrap();
let query = Query::new()
.param("tagId", "1010")
.param("sort", "1");
let result = client.style_song(&query).await.unwrap();
style_album - 曲风-专辑
说明 : 调用此接口可以获取该曲风对应的专辑
必选参数 : tagId : 曲风 ID
可选参数 : size : 返回数量,默认为 20 ; cursor : 分页 cursor,默认为 0 ; sort : 排序方式,0:按热度排序,1:按时间排序
方法名 : style_album
Rust 调用例子 :
let query = Query::new().param("tagId", "1000");
let result = client.style_album(&query).await.unwrap();
style_artist - 曲风-歌手
说明 : 调用此接口可以获取该曲风对应的歌手
必选参数 : tagId : 曲风 ID
可选参数 : size : 返回数量,默认为 20 ; cursor : 分页 cursor,默认为 0
方法名 : style_artist
Rust 调用例子 :
let query = Query::new().param("tagId", "1000");
let result = client.style_artist(&query).await.unwrap();
style_playlist - 曲风-歌单
说明 : 调用此接口可以获取该曲风对应的歌单
必选参数 : tagId : 曲风 ID
可选参数 : size : 返回数量,默认为 20 ; cursor : 分页 cursor,默认为 0
方法名 : style_playlist
Rust 调用例子 :
let query = Query::new().param("tagId", "1000");
let result = client.style_playlist(&query).await.unwrap();
style_preference - 曲风偏好
说明 : 登录后调用此接口获取我的曲风偏好
方法名 : style_preference
Rust 调用例子 :
let query = Query::new();
let result = client.style_preference(&query).await.unwrap();
💿 数字专辑
digital_album_detail - 数字专辑详情
说明 : 调用此接口,传入专辑 id,可获取数字专辑信息
必选参数 : id : 专辑 id
方法名 : digital_album_detail
Rust 调用例子 :
let query = Query::new().param("id", "120605500");
let result = client.digital_album_detail(&query).await.unwrap();
digital_album_ordering - 购买数字专辑
说明 : 登录后调用此接口,可获取购买数字专辑的地址,把地址生成二维码后可扫描购买专辑
必选参数 : id : 专辑的 id ; payment : 支付方式,0 为支付宝,3 为微信 ; quantity : 购买的数量
方法名 : digital_album_ordering
Rust 调用例子 :
let query = Query::new()
.param("id", "86286082")
.param("payment", "3")
.param("quantity", "1");
let result = client.digital_album_ordering(&query).await.unwrap();
digital_album_purchased - 我的数字专辑
说明 : 登录后调用此接口,可获取我的数字专辑
可选参数 : limit / offset
方法名 : digital_album_purchased
Rust 调用例子 :
let query = Query::new().param("limit", "10");
let result = client.digital_album_purchased(&query).await.unwrap();
digital_album_sales - 数字专辑销量
说明 : 调用此接口,传入专辑 id,可获取数字专辑销量
必选参数 : ids : 专辑 id,支持多个,用 , 隔开
方法名 : digital_album_sales
Rust 调用例子 :
let query = Query::new().param("ids", "120605500");
let result = client.digital_album_sales(&query).await.unwrap();
// 多个专辑
let query = Query::new().param("ids", "120605500,125080528");
let result = client.digital_album_sales(&query).await.unwrap();
🎙️ 声音/播客
voice_upload - 播客上传声音
说明 : 可以上传声音到播客
必选参数 : voiceListId : 播客 id ; coverImgId : 播客封面 ; categoryId : 分类 id ; secondCategoryId : 次级分类 id ; description : 声音介绍
可选参数 : songName : 声音名称 ; privacy : 设为隐私声音 ; publishTime : 定时发布时间戳 ; autoPublish : 是否发布动态(传入 1) ; autoPublishText : 动态文案 ; orderNo : 排序,默认为 1 ; composedSongs : 包含歌曲(歌曲 id),多个用逗号隔开
方法名 : voice_upload
Rust 调用例子 :
let query = Query::new()
.param("voiceListId", "123456")
.param("coverImgId", "789")
.param("categoryId", "1")
.param("secondCategoryId", "2")
.param("description", "声音介绍");
let result = client.voice_upload(&query).await.unwrap();
voice_delete - 播客删除
说明 : 可以删除播客声音
必选参数 : ids : 播客 id(voiceListId),多个以逗号隔开
方法名 : voice_delete
Rust 调用例子 :
let query = Query::new().param("ids", "123456");
let result = client.voice_delete(&query).await.unwrap();
voice_detail - 播客声音详情
说明 : 获取播客里的声音详情
必选参数 : id : 播客声音 id(voiceId)
方法名 : voice_detail
Rust 调用例子 :
let query = Query::new().param("id", "123456");
let result = client.voice_detail(&query).await.unwrap();
voice_lyric - 获取声音歌词
说明 : 调用此接口可以获取声音歌词
必选参数 : id : 声音 id
方法名 : voice_lyric
Rust 调用例子 :
let query = Query::new().param("id", "123456");
let result = client.voice_lyric(&query).await.unwrap();
voicelist_list - 播客声音列表
说明 : 可以获取播客里的声音
必选参数 : voiceListId : 播客 id
可选参数 : limit : 取出数量,默认为 200 ; offset : 偏移数量
方法名 : voicelist_list
Rust 调用例子 :
let query = Query::new().param("voiceListId", "123456");
let result = client.voicelist_list(&query).await.unwrap();
voicelist_detail - 播客列表详情
说明 : 可以获取播客封面、分类、名称、简介等
必选参数 : id : 播客 id(voiceListId)
方法名 : voicelist_detail
Rust 调用例子 :
let query = Query::new().param("id", "123456");
let result = client.voicelist_detail(&query).await.unwrap();
voicelist_search - 播客列表搜索
说明 : 可以获取播客列表
可选参数 : limit : 取出数量,默认为 200 ; offset : 偏移数量 ; podcastName : 播客名称
方法名 : voicelist_search
Rust 调用例子 :
let query = Query::new();
let result = client.voicelist_search(&query).await.unwrap();
voicelist_list_search - 播客声音搜索
说明 : 可以搜索播客里的声音
可选参数 : displayStatus : 状态(ONLINE/AUDITING/ONLY_SELF_SEE/SCHEDULE_PUBLISH 等) ; limit : 每次返回数量,默认 20(最多 200) ; name : 搜索关键词 ; offset : 偏移量 ; radioId : 播客 id ; type : PUBLIC/PRIVATE ; voiceFeeType : -1:全部, 0:免费, 1:收费
方法名 : voicelist_list_search
Rust 调用例子 :
let query = Query::new()
.param("displayStatus", "ONLINE")
.param("limit", "20");
let result = client.voicelist_list_search(&query).await.unwrap();
voicelist_trans - 播客声音排序
说明 : 调整声音在列表中的顺序
必选参数 : position : 位置,最小为 1 ; programId : 播客声音 id(voiceId) ; radioId : 电台 id(voiceListId)
可选参数 : limit / offset
方法名 : voicelist_trans
Rust 调用例子 :
let query = Query::new()
.param("position", "1")
.param("programId", "123")
.param("radioId", "456");
let result = client.voicelist_trans(&query).await.unwrap();
🎵 音乐人
musician_sign - 音乐人签到
说明 : 音乐人登录后调用此接口,可以完成"登录音乐人中心"任务,然后通过 musician_cloudbean_obtain 接口可以领取相应的云豆
方法名 : musician_sign
Rust 调用例子 :
let query = Query::new();
let result = client.musician_sign(&query).await.unwrap();
musician_tasks - 音乐人任务
说明 : 音乐人登录后调用此接口,可获取音乐人任务。返回数据中 status 字段: 0 未开始, 10 进行中, 20 完成但未领取云豆, 100 完成并已领取
方法名 : musician_tasks
Rust 调用例子 :
let query = Query::new();
let result = client.musician_tasks(&query).await.unwrap();
musician_tasks_new - 音乐人任务(新)
说明 : 音乐人登录后调用此接口,可获取音乐人任务(新版)
方法名 : musician_tasks_new
Rust 调用例子 :
let query = Query::new();
let result = client.musician_tasks_new(&query).await.unwrap();
musician_vip_tasks - 音乐人黑胶会员任务
说明 : 音乐人登录后调用此接口,可获取音乐人黑胶会员任务。返回数据中 missionStatus 为 100 表示任务完成
方法名 : musician_vip_tasks
Rust 调用例子 :
let query = Query::new();
let result = client.musician_vip_tasks(&query).await.unwrap();
musician_data_overview - 音乐人数据概况
说明 : 音乐人登录后调用此接口,可获取统计数据概况
方法名 : musician_data_overview
Rust 调用例子 :
let query = Query::new();
let result = client.musician_data_overview(&query).await.unwrap();
musician_play_trend - 音乐人播放趋势
说明 : 音乐人登录后调用此接口,可获取歌曲播放趋势
必选参数 : startTime : 开始时间 ; endTime : 结束时间
方法名 : musician_play_trend
Rust 调用例子 :
let query = Query::new()
.param("startTime", "2021-05-24")
.param("endTime", "2021-05-30");
let result = client.musician_play_trend(&query).await.unwrap();
musician_cloudbean - 账号云豆数
说明 : 音乐人登录后调用此接口,可获取账号云豆数
方法名 : musician_cloudbean
Rust 调用例子 :
let query = Query::new();
let result = client.musician_cloudbean(&query).await.unwrap();
musician_cloudbean_obtain - 领取云豆
说明 : 音乐人登录后调用此接口,可领取已完成的音乐人任务的云豆奖励
必选参数 : id : 任务 id,通过 musician_tasks 获取到的 userMissionId ; period : 通过 musician_tasks 获取
方法名 : musician_cloudbean_obtain
Rust 调用例子 :
let query = Query::new()
.param("id", "7036416928")
.param("period", "1");
let result = client.musician_cloudbean_obtain(&query).await.unwrap();
👥 粉丝中心
fanscenter_overview_get - 粉丝中心概览
说明 : 调用此接口获取粉丝中心概览数据
方法名 : fanscenter_overview_get
Rust 调用例子 :
let query = Query::new();
let result = client.fanscenter_overview_get(&query).await.unwrap();
fanscenter_trend_list - 粉丝趋势列表
说明 : 调用此接口获取粉丝趋势列表数据
方法名 : fanscenter_trend_list
Rust 调用例子 :
let query = Query::new();
let result = client.fanscenter_trend_list(&query).await.unwrap();
fanscenter_basicinfo_age_get - 粉丝年龄分布
说明 : 调用此接口获取粉丝年龄分布数据
方法名 : fanscenter_basicinfo_age_get
Rust 调用例子 :
let query = Query::new();
let result = client.fanscenter_basicinfo_age_get(&query).await.unwrap();
fanscenter_basicinfo_gender_get - 粉丝性别分布
说明 : 调用此接口获取粉丝性别分布数据
方法名 : fanscenter_basicinfo_gender_get
Rust 调用例子 :
let query = Query::new();
let result = client.fanscenter_basicinfo_gender_get(&query).await.unwrap();
fanscenter_basicinfo_province_get - 粉丝省份分布
说明 : 调用此接口获取粉丝省份分布数据
方法名 : fanscenter_basicinfo_province_get
Rust 调用例子 :
let query = Query::new();
let result = client.fanscenter_basicinfo_province_get(&query).await.unwrap();
📚 UGC 百科
ugc_song_get - 歌曲简要百科信息
说明 : 登录后调用此接口,传入歌曲 id,可获取对应的歌曲简要百科信息
必选参数 : id : 歌曲 id
方法名 : ugc_song_get
Rust 调用例子 :
let query = Query::new().param("id", "2058263032");
let result = client.ugc_song_get(&query).await.unwrap();
ugc_artist_get - 歌手简要百科信息
说明 : 登录后调用此接口,传入歌手 id,可获取对应的歌手简要百科信息
必选参数 : id : 歌手 id
方法名 : ugc_artist_get
Rust 调用例子 :
let query = Query::new().param("id", "15396");
let result = client.ugc_artist_get(&query).await.unwrap();
ugc_album_get - 专辑简要百科信息
说明 : 登录后调用此接口,传入专辑 id,可获取对应的专辑简要百科信息
必选参数 : id : 专辑 id
方法名 : ugc_album_get
Rust 调用例子 :
let query = Query::new().param("id", "168223858");
let result = client.ugc_album_get(&query).await.unwrap();
ugc_mv_get - MV 简要百科信息
说明 : 登录后调用此接口,传入 MV id,可获取对应的 MV 简要百科信息
必选参数 : id : MV id
方法名 : ugc_mv_get
Rust 调用例子 :
let query = Query::new().param("id", "14572641");
let result = client.ugc_mv_get(&query).await.unwrap();
ugc_detail - 用户贡献内容
说明 : 登录后调用此接口,可获取当前登录用户贡献内容
必选参数 : type : 内容种类。曲库纠错 - 歌手:1, 专辑:2, 歌曲:3, MV:4, 歌词:5, 翻译:6 ; 曲库补充 - 专辑:101, MV:103
可选参数 : limit : 取出数量,默认为 10 ; offset : 偏移数量 ; auditStatus : 审核状态(待审核:0, 未采纳:-5, 审核中:1, 部分审核通过:4, 审核通过:5) ; order : 排序,默认降序 desc,顺序 asc
方法名 : ugc_detail
Rust 调用例子 :
let query = Query::new().param("type", "1");
let result = client.ugc_detail(&query).await.unwrap();
ugc_artist_search - 搜索歌手(百科)
说明 : 登录后调用此接口,传入歌手名关键字或者歌手 id,可获取搜索到的歌手信息
必选参数 : keyword : 关键字或歌手 id
可选参数 : limit : 取出条目数量,默认为 40
方法名 : ugc_artist_search
Rust 调用例子 :
let query = Query::new().param("keyword", "sasakure");
let result = client.ugc_artist_search(&query).await.unwrap();
ugc_user_devote - 用户贡献条目、积分、云贝数量
说明 : 登录后调用此接口,可获取当前登录用户贡献条目、积分、云贝数量
方法名 : ugc_user_devote
Rust 调用例子 :
let query = Query::new();
let result = client.ugc_user_devote(&query).await.unwrap();
🎧 一起听
listentogether_room_create - 创建一起听房间
说明 : 登录后调用此接口,可创建一起听房间
方法名 : listentogether_room_create
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_room_create(&query).await.unwrap();
listentogether_room_check - 检查一起听房间
说明 : 调用此接口,可检查一起听房间状态
方法名 : listentogether_room_check
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_room_check(&query).await.unwrap();
listentogether_accept - 接受一起听邀请
说明 : 调用此接口,可接受一起听邀请
方法名 : listentogether_accept
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_accept(&query).await.unwrap();
listentogether_status - 一起听状态
说明 : 调用此接口,可获取一起听状态
方法名 : listentogether_status
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_status(&query).await.unwrap();
listentogether_heatbeat - 一起听心跳
说明 : 调用此接口,发送一起听心跳以保持连接
方法名 : listentogether_heatbeat
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_heatbeat(&query).await.unwrap();
listentogether_play_command - 一起听播放命令
说明 : 调用此接口,发送一起听播放命令
方法名 : listentogether_play_command
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_play_command(&query).await.unwrap();
listentogether_sync_list_command - 一起听同步列表命令
说明 : 调用此接口,发送一起听同步列表命令
方法名 : listentogether_sync_list_command
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_sync_list_command(&query).await.unwrap();
listentogether_sync_playlist_get - 获取一起听同步播放列表
说明 : 调用此接口,获取一起听同步播放列表
方法名 : listentogether_sync_playlist_get
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_sync_playlist_get(&query).await.unwrap();
listentogether_end - 结束一起听
说明 : 调用此接口,可结束一起听
方法名 : listentogether_end
Rust 调用例子 :
let query = Query::new();
let result = client.listentogether_end(&query).await.unwrap();
📡 广播电台
broadcast_category_region_get - 广播电台分类/地区信息
说明 : 调用此接口,获取广播电台分类/地区信息
方法名 : broadcast_category_region_get
Rust 调用例子 :
let query = Query::new();
let result = client.broadcast_category_region_get(&query).await.unwrap();
broadcast_channel_list - 广播电台全部电台
说明 : 调用此接口,获取广播电台全部电台
可选参数 : categoryId : 类别 id,默认为 0 ; regionId : 地区 id,默认为 0
方法名 : broadcast_channel_list
Rust 调用例子 :
let query = Query::new();
let result = client.broadcast_channel_list(&query).await.unwrap();
broadcast_channel_currentinfo - 广播电台信息
说明 : 调用此接口,传入电台 id,获取广播电台信息
必选参数 : id : 电台 id
方法名 : broadcast_channel_currentinfo
Rust 调用例子 :
let query = Query::new().param("id", "5");
let result = client.broadcast_channel_currentinfo(&query).await.unwrap();
broadcast_channel_collect_list - 广播电台我的收藏
说明 : 调用此接口,获取广播电台我的收藏
可选参数 : limit : 返回数量,默认为 99999
方法名 : broadcast_channel_collect_list
Rust 调用例子 :
let query = Query::new();
let result = client.broadcast_channel_collect_list(&query).await.unwrap();
broadcast_sub - 广播电台订阅
说明 : 调用此接口,可订阅/取消订阅广播电台
方法名 : broadcast_sub
Rust 调用例子 :
let query = Query::new();
let result = client.broadcast_sub(&query).await.unwrap();
🔧 其他
hot_topic - 获取热门话题
说明 : 调用此接口,可获取热门话题
可选参数 : limit : 取出数量,默认为 20 ; offset : 偏移数量
方法名 : hot_topic
Rust 调用例子 :
let query = Query::new()
.param("limit", "30")
.param("offset", "30");
let result = client.hot_topic(&query).await.unwrap();
topic_detail - 获取话题详情
说明 : 调用此接口,可获取话题详情
必选参数 : actid : 话题 id
方法名 : topic_detail
Rust 调用例子 :
let query = Query::new().param("actid", "111551188");
let result = client.topic_detail(&query).await.unwrap();
topic_detail_event_hot - 获取话题详情热门动态
说明 : 调用此接口,可获取话题详情热门动态
必选参数 : actid : 话题 id
方法名 : topic_detail_event_hot
Rust 调用例子 :
let query = Query::new().param("actid", "111551188");
let result = client.topic_detail_event_hot(&query).await.unwrap();
topic_sublist - 收藏的专栏
说明 : 调用此接口,可获取收藏的专栏
可选参数 : limit : 取出数量,默认为 50 ; offset : 偏移数量
方法名 : topic_sublist
Rust 调用例子 :
let query = Query::new()
.param("limit", "2")
.param("offset", "1");
let result = client.topic_sublist(&query).await.unwrap();
calendar - 音乐日历
说明 : 登录后调用此接口,传入开始和结束时间,可获取音乐日历
可选参数 : startTime : 开始时间戳 ; endTime : 结束时间戳
方法名 : calendar
Rust 调用例子 :
let query = Query::new()
.param("startTime", "1606752000000")
.param("endTime", "1609430399999");
let result = client.calendar(&query).await.unwrap();
batch - 批量请求接口
说明 : 登录后调用此接口,传入接口和对应原始参数,可批量请求接口
方法名 : batch
Rust 调用例子 :
let query = Query::new();
let result = client.batch(&query).await.unwrap();
api - 通用 API 请求
说明 : 通用 API 请求接口
方法名 : api
Rust 调用例子 :
let query = Query::new();
let result = client.api(&query).await.unwrap();
inner_version - 内部版本接口
说明 : 调用此接口,可获得内部版本号
方法名 : inner_version
Rust 调用例子 :
let query = Query::new();
let result = client.inner_version(&query).await.unwrap();
weblog - 日志上报
说明 : 调用此接口进行日志上报
方法名 : weblog
Rust 调用例子 :
let query = Query::new();
let result = client.weblog(&query).await.unwrap();
eapi_decrypt - EAPI 解密
说明 : 调用此接口,可进行 EAPI 解密
方法名 : eapi_decrypt
Rust 调用例子 :
let query = Query::new();
let result = client.eapi_decrypt(&query).await.unwrap();
sign_happy_info - 乐签信息
说明 : 调用此接口,可获取乐签信息
方法名 : sign_happy_info
Rust 调用例子 :
let query = Query::new();
let result = client.sign_happy_info(&query).await.unwrap();
signin_progress - 签到进度
说明 : 调用此接口,可获得签到进度
可选参数 : moduleId : 模块 id,默认为 '1207signin-1207signin'
方法名 : signin_progress
Rust 调用例子 :
let query = Query::new()
.param("moduleId", "1207signin-1207signin");
let result = client.signin_progress(&query).await.unwrap();
summary_annual - 年度听歌报告
说明 : 登录后调用此接口,可获取当前登录用户年度听歌报告,目前支持 2017-2024 年的报告
必选参数 : year : 报告年份
方法名 : summary_annual
Rust 调用例子 :
let query = Query::new().param("year", "2024");
let result = client.summary_annual(&query).await.unwrap();
threshold_detail_get - 阈值详情获取
说明 : 调用此接口获取阈值详情
方法名 : threshold_detail_get
Rust 调用例子 :
let query = Query::new();
let result = client.threshold_detail_get(&query).await.unwrap();
creator_authinfo_get - 创作者认证信息获取
说明 : 调用此接口获取创作者认证信息
方法名 : creator_authinfo_get
Rust 调用例子 :
let query = Query::new();
let result = client.creator_authinfo_get(&query).await.unwrap();
sheet_list - 乐谱列表
说明 : 调用此接口可以获取歌曲的乐谱列表
必选参数 : id : 歌曲 ID
方法名 : sheet_list
Rust 调用例子 :
let query = Query::new().param("id", "1815684465");
let result = client.sheet_list(&query).await.unwrap();
sheet_preview - 乐谱内容
说明 : 登录后调用此接口获取乐谱的内容
必选参数 : id : 乐谱 ID
方法名 : sheet_preview
Rust 调用例子 :
let query = Query::new().param("id", "143190");
let result = client.sheet_preview(&query).await.unwrap();
aidj_content_rcmd - 私人 DJ 推荐内容
说明 : 调用此接口可以获取私人 DJ 的推荐内容(包括 DJ 声音和推荐歌曲)
可选参数 : longitude / latitude : 当前的经纬度
方法名 : aidj_content_rcmd
Rust 调用例子 :
let query = Query::new();
let result = client.aidj_content_rcmd(&query).await.unwrap();
music_first_listen_info - 回忆坐标
说明 : 可以获取当前歌曲的回忆坐标信息(见手机 APP 百科页的回忆坐标功能)
必选参数 : id : 歌曲 ID
方法名 : music_first_listen_info
Rust 调用例子 :
let query = Query::new().param("id", "186016");
let result = client.music_first_listen_info(&query).await.unwrap();
verify_get_qr - 验证接口-二维码生成
说明 : 进行某些操作可能会触发验证,调用此接口生成二维码,使用 app 扫码后可解除验证
必选参数 : vid : verifyId ; type : verifyType ; token : verifyToken ; evid : params 的 event_id ; sign : params 的 sign
方法名 : verify_get_qr
Rust 调用例子 :
let query = Query::new()
.param("vid", "xxx")
.param("type", "1")
.param("token", "xxx")
.param("evid", "xxx")
.param("sign", "xxx");
let result = client.verify_get_qr(&query).await.unwrap();
verify_qrcodestatus - 验证接口-二维码检测
说明 : 传入 verify_get_qr 接口返回的 qr 字符串,可检测二维码扫描状态
必选参数 : qr : verify_get_qr 接口返回的 qr 字符串
返回状态说明: qrCodeStatus:0 - 二维码生成成功 ; qrCodeStatus:10 - 已扫描 ; qrCodeStatus:20 - 验证成功 ; qrCodeStatus:21 - 二维码已失效
方法名 : verify_qrcodestatus
Rust 调用例子 :
let query = Query::new().param("qr", "xxx");
let result = client.verify_qrcodestatus(&query).await.unwrap();
致谢 & License
致谢
- NeteaseCloudMusicApi Enhanced - 原始 Node.js 实现
- Binaryify/NeteaseCloudMusicApi - 原始项目
License
本项目基于 MIT License 开源。