NCM API Rust SDK 接口文档

March 11, 2026 · View on GitHub

本文档对应 NeteaseCloudMusicApi Enhanced 的 Rust SDK 版本,涵盖所有已实现的接口。

所有接口方法均挂载在 ApiClient 上,通过 Query 对象传参。使用前请先阅读 README 了解基本用法。


目录


登录相关


邮箱登录

说明 : 登录有三个接口,不要频繁调用登录接口,不然可能会被风控,登录状态还存在就不要重复调用登录接口

必选参数 : 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 : 国家码,用于国外手机号登录,例如美国传入 1
  • md5_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();

说明 : 调用此接口,可获取最热主播榜

可选参数 : 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(轮播图)数据

可选参数 : 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();

说明 : 可以获取播客列表

可选参数 : limit : 取出数量,默认为 200 ; offset : 偏移数量 ; podcastName : 播客名称

方法名 : voicelist_search

Rust 调用例子 :

let query = Query::new();
let result = client.voicelist_search(&query).await.unwrap();

说明 : 可以搜索播客里的声音

可选参数 : 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();

说明 : 登录后调用此接口,传入歌手名关键字或者歌手 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

致谢

License

本项目基于 MIT License 开源。