音乐服务

最近更新时间:2024-02-26 10:58:11

我的收藏
腾讯连连自定义 H5 SDK 提供 QQ 音乐接口能力,包括获取 QQ 音乐歌曲基本信息、播放链接、歌手信息、歌单信息、个性化推荐歌曲、最近播放、最新歌曲等,可用于支持 H5 面板内进行音乐内容的点播。

接口调用方式

window.h5PanelSdk.qqMusic.<接口名>
例如:
window.h5PanelSdk.qqMusic.goAuthPage()
注意:
除“登录授权”以及“免登录接口”以外,其他接口均需要完成登录授权后才能调用。您可以调用 跳转 QQ 音乐登录授权页面 完成登录授权。
若在未登录状态下调用需登录的接口,会报错 InvalidParameterValue.OAuthClientNotExist

登录授权

登录授权完成后,H5 SDK 及设备可以使用所登录 QQ 音乐账号的听歌数据与会员权益。

查询 QQ 音乐授权状态

查询当前用户是否已完成 QQ 音乐登录授权。
getAuthStatus(): Promise<boolean>

输入参数

输出参数

boolean

跳转 QQ 音乐登录授权页面

调用该接口后会跳转到腾讯连连小程序完成 QQ 音乐登录授权。
goAuthPage(): void

输入参数

输出参数

歌曲

批量获取歌曲详情信息

通过歌曲 id 或歌曲 mid 获取一首或多首歌曲的详情信息。SongIdsSongMids 同时传入时优先使用 SongMids
describeSongInfoBatch(params: object): Promise<QQMusicSongInfo[]>

输入参数

参数名称
参数类型
参数描述
params.SongIds
number[]
歌曲 id 数组
params.SongMids
string[]
歌曲 mid 数组

输出参数

Promise<QQMusicSongInfo[]>

获取歌曲歌词

通过歌曲 id 或歌曲 mid 获取一首歌曲的歌词。SongIdSongMid 同时传入时优先使用 SongMid
describeLyric(params: object): Promise<DescribeLyricResp>

输入参数

参数名称
参数类型
参数描述
params.SongId
number
歌曲 id
params.SongMid
string
歌曲 mid

输出参数

Promise<DescribeLyricResp>

获取最近运营新歌

describeNewTrack(params: object): Promise<QQMusicNewTrackSongItem>

输入参数

参数名称
参数类型
参数描述
params.Tag
number
类别(12:内地;9:韩国;13:港台;3:欧美;8:日本;1:最新)

输出参数

Promise<QQMusicNewTrackSongItem>

设备控制

构造 IoT 设备播放列表

将 QQ 音乐歌曲信息转换为下发到 IoT 设备的播放列表数据格式。
pickSongInfoForSync(list, options): QQMusicSyncSongEntry[]

输入参数

参数名称
参数类型
参数描述
list.SongId
number
歌曲ID
list.SongName
string
歌曲名称
list.SingerName
string
歌手名称
list.SongPlayUrlDolby
string
杜比品质播放链接
list.SongPlayUrlXq
string
Hi-Res 品质播放链接
list.SongPlayUrlSq
string
超品质播放链接
list.SongPlayUrlHq
string
高品质播放链接
list.SongPlayUrlStandard
string
标准品质播放链接
list.SongPlayUrl
string
流畅品质播放链接
list.Try30SUrl
string
试听播放链接
list.TryBegin
number
试听开始时间(毫秒)
list.TryEnd
number
试听结束时间(毫秒)
list.UnplayableCode
number
不可播放状态码
list.UnplayableMsg
string
不可播放信提示信息
list.SongPlayTime
number
歌曲时长(秒)
options.quality
QQMusicQualityType
首选音质
options.necessarySongId
number
可选参数,若 id 对应的歌曲不能播放(UnplayableCode != 0),则抛出异常

输出参数

QQMusicSyncSongEntry[]

下发播放列表到 IoT 设备

syncSongList(params: object): Promise<void>

输入参数

参数名称
参数类型
参数描述
params.Id
string
播放列表 ID
params.Name
string
播放列表标题
params.Type
QQMusicPlayListType
播放列表类型
params.Quality
QQMusicQualityType
当前选择的音质
params.Total
number
当前播放列表的歌曲总数
params.Page
number
当前播放列表页码
params.PageSize
number
页长
params.SongList
QQMusicSyncSongEntry[]
播放列表(可以调用 pickSongInfoForSync 生成)
params.PlaySongId
number
开始播放的歌曲 ID

输出参数

Promise<void>

歌单

获取个人歌单目录

describeSelfSongList(): Promise<QQMusicSelfSongList[]>

输入参数

输出参数

Promise<QQMusicSelfSongList[]>

获取歌单中歌曲列表

describeSongList(params: object): Promise<DescribeSongListResp>

输入参数

参数名称
参数类型
参数描述
params.DissId
number
歌单 ID
params.Page
number
页码(从 0 开始)
params.PageSize
number
页长(最大为 30)

输出参数

Promise<DescribeSongListResp>

获取、收藏、取消收藏歌单

对歌单进行收藏、取消收藏操作。
operateSquareSongList(params: object): Promise<OperateSquareSongListResp>

输入参数

参数名称
参数类型
参数描述
params.DissId
number
操作的歌单 id
params.Op
number
进行的操作类型(1:收藏,2:取消收藏,3:获取收藏歌单)

输出参数

Promise<OperateSquareSongListResp>

MV

获取最新或最热 MV

describeMVList(params: object): Promise<QQMusicMVItem[]>

输入参数

参数名称
参数类型
参数描述
params.MVType
number
MV 类型(0:获取最新 MV;1:获取最热 MV)
params.MVTag
number
MV 标签(0:推荐;12:内地;9:韩国;13:港台;3:欧美;8:日本)

输出参数

Promise<QQMusicMVItem[]>

批量获取 MV 详情

通过 MV id 或 MV vid 获取一个或多个 MV 的详情信息。支持 MVIds, MVVids 两种 id 参数进行查询;同时传入时优先使用 MVVids
describeMV(params: object): Promise<QQMusicMVInfo[]>

输入参数

参数名称
参数类型
参数描述
params.MVIds
number[]
歌曲 id 数组
params.MVVids
string[]
歌曲 mid 数组

输出参数

Promise<QQMusicMVInfo[]>

搜索

搜索歌曲、专辑、MV

根据输入的关键词搜索歌曲、专辑、MV或电台。
searchMusic(params: object): Promise<SearchMusicResp>

输入参数

参数名称
参数类型
参数描述
params.KeyWord
string
搜索关键字
params.SearchType
number
搜索类型(0:单曲 8:专辑 12:MV 15:电台)
params.Page
number
页码(从 1 开始,最大 4 页)
params.Num
number
页长(最大 50)

输出参数

Promise<SearchMusicResp>

歌手

搜索歌手列表

根据输入的关键词搜索歌手。
searchSingerList(params: object): Promise<QQMusicSearchSingerItem>

输入参数

参数名称
参数类型
参数描述
params.Keyword
string
搜索关键字
params.Page
number
页码(从 1 开始,最大 2 页)
params.PageSize
number
页长(最大 20)

输出参数

Promise<QQMusicSearchSingerItem>

获取热门歌手列表

按照分类索引(支持地区,性别,流派),拉取相应分类下的热门歌手id列表。
describeSingerList(params: object): Promise<QQMusicPopularSingerItem[]>

输入参数

参数名称
参数类型
参数描述
params.Area
number
歌手所在地区索引(-100:全部 200 :内地 2:港台 3:韩国 4:日本 5:欧美)
params.Type
number
歌手性别索引(-100:全部 0:男 1:女 2:组合)
params.Genre
number
歌手所属流派索引(-100:全部 1:流行 2:摇滚 3:民谣 4:电子 5:爵士 6:嘻哈 8:R&B 9:轻音乐 10:民歌 14:古典 19:国风 20:蓝调 25:乡村)

输出参数

Promise<QQMusicPopularSingerItem[]>

获取歌手歌曲信息

通过歌手 id,获取歌手下的歌曲信息。
describeSinger(params: object): Promise<QQMusicSingerInfo>

输入参数

参数名称
参数类型
参数描述
params.SingerId
number
歌手 id
params.Page
number
页码(从 0 开始)
params.PageSize
number
页长(最大 50)
params.Order
number
歌曲排序方式(0:按时间,1:按热度)
params.Wiki
number
是否需要歌手wiki信息(0:不需要,1:需要)

输出参数

Promise<QQMusicSingerInfo>

最近播放

获取最近播放列表

获取用户最近播放列表,最大支持最近 100 条记录(全部 tab 下不包括歌曲历史播放的明细,需要通过歌曲 tab 查看明细)。
describeRecentPlay(params: object): Promise<DescribeRecentPlayResp>

输入参数

参数名称
参数类型
参数描述
params.Type
number
tab 类型(1:全部,2:歌曲,3:专辑,4:歌单)
params.UpdateTime
number
最近更新时间,由接口下发(见返回数据),客户端传入以增量获取数据,减少返回数据量,初始可传 0

输出参数

Promise<DescribeRecentPlayResp>

上报最近播放

上报用户的最近播放记录。
reportRecentPlay(params: object): Promise<void>

输入参数

参数名称
参数类型
参数描述
params.ResourceId
number
资源id
params.Type
number
资源类型(2:歌曲,3:专辑,4:歌单)

输出参数

Promise<void>

推荐

获取首页推荐

根据输入要获取的推荐内容类型获取内容。
describeHomepageSongList(params: object): Promise<DescribeHomepageSongListResp>

输入参数

参数名称
参数类型
参数描述
params.SN
string
机器码/序列号/唯一标识
params.Type
string
要获取的内容类型(200:单曲;500:歌单;可多选,如:200,500)

输出参数

Promise<DescribeHomepageSongListResp>

获取个性化推荐歌曲

获取个性化算法所推荐的歌曲,即个性电台。
describeIndividualRadio(): Promise<QQMusicIndividualRadioSongItem[]>

输入参数

输出参数

Promise<QQMusicIndividualRadioSongItem[]>

获取每日30首推荐歌曲

describeDailySongs(): Promise<QQMusicDailySongItem[]>

输入参数

输出参数

Promise<QQMusicDailySongItem[]>

榜单

获取排行榜榜单

获取 QQ 音乐的排行榜的歌单。
describeTopList(): Promise<QQMusicTopListGroupItem[]>

输入参数

输出参数

Promise<QQMusicTopListGroupItem[]>

获取排行榜榜单详情

获取 QQ 音乐的排行榜的歌曲。
describeTopListInfo(params: object): Promise<DescribeTopListInfoResp>

输入参数

参数名称
参数类型
参数描述
params.TopId
number
排行榜榜单id
params.Page
number
页码(从 0 开始)
params.PageSize
number
页长(最大 50)

输出参数

Promise<DescribeTopListInfoResp>

免登录专区

未登录用户获取播放列表

可以在用户未登录时候获取可播放歌曲列表,该接口不下发播放链接。
describeFreeSongList(): Promise<QQMusicFreeSongGroupItem>

输入参数

输出参数

Promise<QQMusicFreeSongGroupItem>

未登录用户获取播放链接

可以在用户未登录时候获取可播放歌曲的播放链接。
describeFreeSongInfo(params: object): Promise<QQMusicFreeSongInfo>

输入参数

参数名称
参数类型
参数描述
params.SongId
number
歌曲 id
params.SongToken
string
歌曲 token(可调用 describeFreeSongList 获取)

输出参数

Promise<QQMusicFreeSongInfo>

数据结构

QQMusicSongInfo

interface QQMusicSongInfo {
SongId: number;
SongMid: string;
SongName: string;
SongTitle: string;
IsOnly: number;
Vip: number;
Language: string;
Genre: string;
PublicTime: string;
SongPlayTime: number;
IsDigitalAlbum: number;
Copyright: number;
Hot: number;
Playable: number;
SongH5Url: string;
MvId: number;
MvVid: string;
KSongId: number;
KSongMid: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
SingerPic150X150: string;
SingerPic300X300: string;
SingerPic500X500: string;
OtherSingerList: {
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
}[];
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumTitle: string;
AlbumPic: string;
AlbumPic150X150: string;
AlbumPic300X300: string;
AlbumPic500X500: string;
SongPlayUrl: string;
SongPlayUrlStandard: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongSize: number;
SongSizeStandard: number;
SongSizeHq: number;
SongSizeSq: number;
TryPlayable: number;
TryBegin: number;
TryEnd: number;
Try30SUrl: string;
TryFileSize: number;
UnplayableCode: number;
UnplayableMsg: string;
UserOwnRule: number;
SongVersion: number;
WeightPlayCnt: number;
FNote: number;
EditAllow: number;
SongPlayUrlDolby: string;
SongSizeDolby: number;
Action: {
Switch: number;
Switch2: number;
PlayAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
DownloadAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
CacheAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
};
SongEkeyStandard: string;
SongEkeyHq: string;
SongEkeySq: string;
SongEkeyDolby: string;
Extra: Record<string, unknown>;
SongEkeyXq: string;
SongPlayUrlXq: string;
SongSizeXq: number;
SongTypeDolby: string;
Bpm: number;
LimitFree: number;
ShouldPay: number;
PayPrice: number;
VolumeGain: number;
VolumePeak: number;
VolumeLra: number;
PayStatus: number;
SongPlayUrlPq: string;
SongEkeyPq: string;
SongSizePq: number;
SongTypePq: string;
}

DescribeLyricResp

interface DescribeLyricResp {
SongId: number;
SongLyric: string;
SongTranslateEncLyric: string;
SongRomeEncLyric: string;
SongQrcEncLyric: string;
}

QQMusicNewTrackSongItem

interface QQMusicNewTrackSongItem {
SongId: number;
SongMid: string;
SongName: string;
SongTitle: string;
IsOnly: number;
Vip: number;
Language: string;
Genre: string;
PublicTime: string;
SongPlayTime: number;
IsDigitalAlbum: number;
Copyright: number;
Hot: number;
Playable: number;
SongH5Url: string;
MvId: number;
MvVid: string;
KSongId: number;
KSongMid: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
SingerPic150X150: string;
SingerPic300X300: string;
SingerPic500X500: string;
OtherSingerList: {
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
}[];
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumTitle: string;
AlbumPic: string;
AlbumPic150X150: string;
AlbumPic300X300: string;
AlbumPic500X500: string;
SongPlayUrl: string;
SongPlayUrlStandard: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongSize: number;
SongSizeStandard: number;
SongSizeHq: number;
SongSizeSq: number;
TryPlayable: number;
TryBegin: number;
TryEnd: number;
Try30SUrl: string;
TryFileSize: number;
UnplayableCode: number;
UnplayableMsg: string;
UserOwnRule: number;
SongVersion: number;
WeightPlayCnt: number;
FNote: number;
EditAllow: number;
SongPlayUrlDolby: string;
SongSizeDolby: number;
Action: {
Switch: number;
Switch2: number;
PlayAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
DownloadAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
CacheAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
};
SongEkeyStandard: string;
SongEkeyHq: string;
SongEkeySq: string;
SongEkeyDolby: string;
Extra: Record<string, unknown>;
SongEkeyXq: string;
SongPlayUrlXq: string;
SongSizeXq: number;
SongTypeDolby: string;
Bpm: number;
LimitFree: number;
ShouldPay: number;
PayPrice: number;
VolumeGain: number;
VolumePeak: number;
VolumeLra: number;
PayStatus: number;
SongPlayUrlPq: string;
SongEkeyPq: string;
SongSizePq: number;
SongTypePq: string;
}

QQMusicSyncSongEntry

interface QQMusicSyncSongEntry {
UserOwnRule: number;
SongId: number;
SongPlayTime: number;
SongURL: string;
SongName: string;
SingerName: string;
}

QQMusicSelfSongList

interface QQMusicSelfSongList {
/** 歌单修改时间 */
UpdateTime: number;
/** 歌单创建时间 */
CreateTime: number;
/** 歌单ID */
DissId: number;
/** 歌单名 */
DissName: string;
/** 歌单封面 */
DissPic: string;
/** 歌单歌曲数量 */
SongNum: number;
/** 歌单收听数量 */
ListenNum: number;
}

DescribeSongListResp

interface DescribeSongListResp {
DissId: number;
Hot: number;
DissTitle: string;
PicUrl: string;
TotalNum: number;
OwnerFlag: number;
SongList: QQMusicSongInDiss[];
}

QQMusicSongInDiss

interface QQMusicSongInDiss {
SongId: number;
SongName: string;
SongTitle: string;
SongMid: string;
AlbumId: number;
AlbumMid: string;
AlbumName: string;
SongPlayTime: number;
SingerId: number;
SingerMid: string;
SingerName: string;
QQMusicFlag: number;
UserOwnRule: number;
OpiPlayFlag: number;
SongType: number;
}

OperateSquareSongListResp

interface OperateSquareSongListResp {
Data: QQMusicSelfSongList[];
}

QQMusicMVItem

interface QQMusicMVItem {
Id: number;
Vid: string;
Title: string;
Subtitle: string;
PicURL: string;
Duration: number;
PlayCnt: number;
CommentCnt: number;
}

QQMusicMVInfo

interface QQMusicMVInfo {
/** 蓝光流媒体大小 */
MvBlueRaySize: number;
/** 蓝光流媒体url */
MvBlueRayURL: string;
/** 高清流媒体大小 */
MvHQSize: number;
/** 高清流媒体url */
MvHQUrl: string;
/** 低品质流媒体大小 */
MvLQSize: number;
/** 低品质流媒体url */
MvLQUrl: string;
/** 超清流媒体大小 */
MvSQSize: number;
/** 超清流媒体url */
MvSQUrl: string;
/** Mv的文件id */
MVFileid: string;
/** Mv的id */
MvId: number;
/** 播放时长 */
MvPlayTime: number;
/** Mv的标题 */
MvTitle: string;
/** Mv的vid */
MvVid: string;
/** Mv图片url */
PicUrl: string;
/** 播放权限 */
Playable: number;
/** 发布时间 */
PublicTime: string;
/** 歌手id */
SingerId: number;
/** 歌手mid */
SingerMid: string;
/** 歌手名 */
SingerName: string;
/** Mv的歌手集合 */
Singers: {
/** 歌手id */
Id: number;
/** 歌手mid */
Mid: string;
/** 歌手名 */
Name: string;
}[];
/** 不能播放权限阻断码 */
UnplayableCode: number;
}

SearchMusicResp

interface SearchMusicResp {
/** 当前返回个数 */
CurNum: number;
/** 当前页码 */
CurPage: number;
/** 该搜索词可以搜到的总结果数 */
TotalNum: number;
/** 搜索词 */
Keyword: string;
/** 单曲列表 */
List: QQMusicSearchMusicItem[];
/** */
DirectInfo: QQMusicDirectInfo;
}

QQMusicSearchSingerItem

interface QQMusicSearchSingerItem {
SingerId: number;
SingerMid: string;
SingerName: string;
SingerPic: string;
AlbumNum: string;
SongNum: string;
}

QQMusicPopularSingerItem

interface QQMusicPopularSingerItem {
Country: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTranslatorName: string;
}

QQMusicSingerInfo

interface QQMusicSingerInfo {
Area: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerPic: string;
SingerTranslatorName: string;
SongSum: number;
SongList: {
UserOwnRule: number;
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumPic: string;
Genre: string;
IsOnly: number;
KSongId: number;
KSongMid: string;
Language: string;
Playable: number;
PublicTime: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerPic: string;
SizeTry: number;
SongH5Url: string;
SongId: number;
SongMid: string;
SongName: string;
SongPlayTime: number;
SongPlayUrl: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongPlayUrlStandard: string;
SongSize: number;
SongSizeHq: number;
SongSizeSq: number;
SongSizeStandard: number;
TryBegin: number;
TryEnd: number;
IsDigitalAlbum: number;
}[];
}

DescribeRecentPlayResp

interface DescribeRecentPlayResp {
Data: {
All: Array<{
Type: number;
TypeName: string;
LastTime: number;
Detail: {
Comm: {
Title: string;
Pic: string;
Count: number;
};
Album: {
Title: string;
Mid: string;
Singer: string;
Count: number;
Pic: string;
Pic150X150: string;
Pic300X300: string;
Pic500X500: string;
Id: number;
LastTime: number;
};
Playlist: {
Title: string;
Id: number;
Creator: string;
Count: number;
Pic: string;
LastTime: number;
};
};
}>;
Song: Array<{
Title: string;
Mid: string;
Singer: string[];
AlbumTitle: string;
IsOnly: number;
Size320Mp3: number;
SizeFlac: number;
ListenCount: number;
SubTitle: string;
Id: number;
Vip: number;
LastTime: number;
}>;
Album: Array<{
Title: string;
Mid: string;
Singer: string;
Count: number;
Pic: string;
Pic150X150: string;
Pic300X300: string;
Pic500X500: string;
Id: number;
LastTime: number;
}>;
Playlist: Array<{
Title: string;
Id: number;
Creator: string;
Count: number;
Pic: string;
LastTime: number;
}>;
};
UpdateTime: number;
}

DescribeHomepageSongListResp

interface DescribeHomepageSongListResp {
ShelfArr: {
Title: string;
CardArr: {
Type: number;
Id: string;
Title: string;
Subtitle: string;
Cover: string;
Cnt: number;
SubId: string;
FavCnt: number;
}[];
}[];
RcItemArr: {
DirId: number;
DirName: string;
DissId: number;
AlbumPicUrl: string;
}[];
}

QQMusicIndividualRadioSongItem

interface QQMusicIndividualRadioSongItem {
SongId: number;
SongMid: string;
SongName: string;
SongTitle: string;
Isonly: number;
Vip: number;
Language: string;
Genre: string;
PublicTime: string;
SongPlayTime: number;
IsdigitalAlbum: number;
Copyright: number;
Hot: number;
Playable: number;
SongH5Url: string;
MvId: number;
MvVid: string;
KSongId: number;
KSongMid: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
SingerPic150X150: string;
SingerPic300X300: string;
SingerPic500X500: string;
OtherSingerList: {
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
}[];
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumTitle: string;
AlbumPic: string;
AlbumPic150X150: string;
AlbumPic300X300: string;
AlbumPic500X500: string;
SongPlayUrl: string;
SongPlayUrlStandard: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongSize: number;
SongSizeStandard: number;
SongSizeHq: number;
SongSizeSq: number;
TryPlayable: number;
TryBegin: number;
TryEnd: number;
Try30SUrl: string;
TryFileSize: number;
UnplayableCode: number;
UnplayableMsg: string;
UserOwnRule: number;
SongVersion: number;
WeightPlayCnt: number;
Fnote: number;
EditAllow: number;
SongPlayUrlDolby: string;
SongSizeDolby: number;
Action: {
Switch: number;
Switch2: number;
};
SongEkeyStandard: string;
SongEkeyHq: string;
SongEkeySq: string;
SongEkeyDolby: string;
Extra: Record<string, unknown>;
}

QQMusicDailySongItem

interface QQMusicDailySongItem {
SongId: number;
SongMid: string;
SongName: string;
SongTitle: string;
Isonly: number;
Vip: number;
Language: string;
Genre: string;
PublicTime: string;
SongPlayTime: number;
IsdigitalAlbum: number;
Copyright: number;
Hot: number;
Playable: number;
SongH5Url: string;
MvId: number;
MvVid: string;
KSongId: number;
KSongMid: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
SingerPic150X150: string;
SingerPic300X300: string;
SingerPic500X500: string;
OtherSingerList: {
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
}[];
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumTitle: string;
AlbumPic: string;
AlbumPic150X150: string;
AlbumPic300X300: string;
AlbumPic500X500: string;
SongPlayUrl: string;
SongPlayUrlStandard: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongSize: number;
SongSizeStandard: number;
SongSizeHq: number;
SongSizeSq: number;
TryPlayable: number;
TryBegin: number;
TryEnd: number;
Try30SUrl: string;
TryFileSize: number;
UnplayableCode: number;
UnplayableMsg: string;
UserOwnRule: number;
SongVersion: number;
WeightPlayCnt: number;
Fnote: number;
EditAllow: number;
SongPlayUrlDolby: string;
SongSizeDolby: number;
Action: {
Switch: number;
Switch2: number;
PlayAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
DownloadAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
CacheAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
};
SongEkeyStandard: string;
SongEkeyHq: string;
SongEkeySq: string;
SongEkeyDolby: string;
Extra: {
Abt: string;
Cmd: string;
Tf: string;
Trace: string;
UniqueTraceId: string;
};
SongEkeyXq: string;
SongPlayUrlXq: string;
SongSizeXq: number;
SongTypeDolby: string;
Bpm: number;
LimitFree: number;
ShouldPay: number;
PayPrice: number;
VolumeGain: number;
VolumePeak: number;
VolumeLra: number;
PayStatus: number;
SongPlayUrlPq: string;
SongEkeyPq: string;
SongSizePq: number;
SongTypePq: string;
}

QQMusicTopListGroupItem

interface QQMusicTopListGroupItem {
GroupId: number;
GroupName: string;
GroupTopList: {
ListenNum: number;
ShowTime: string;
SongList: {
Rank: number;
SingerId: number;
SingerMid: string;
SingerName: string;
SongId: number;
SongMid: string;
SongName: string;
}[];
TopBannerPic: string;
TopHeaderPic: string;
TopId: number;
TopName: string;
TopType: number;
TotalNum: number;
}[];
GroupType: number;
}

DescribeTopListInfoResp

interface DescribeTopListInfoResp {
ListenNum: number;
SongList: {
UserOwnRule: number;
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumPic: string;
Genre: string;
Hot: number;
IsOnly: number;
KSongId: number;
KSongMid: string;
Language: string;
Playable: number;
PublicTime: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerPic: string;
SongH5Url: string;
SongId: number;
SongMid: string;
SongName: string;
SongPlayTime: number;
SongPlayUrl: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongPlayUrlStandard: string;
SongSize: number;
SongSizeHq: number;
SongSizeSq: number;
SongSizeStandard: number;
TopRankIncrease: number;
TryBegin: number;
TryEnd: number;
IsDigitalAlbum: number;
}[];
TopBannerPic: string;
TopDesc: string;
TopHeaderPic: string;
TopId: number;
TopName: string;
TopType: number;
}

QQMusicFreeSongGroupItem

interface QQMusicFreeSongGroupItem {
SongList: {
SongId: number;
SongMid: string;
SongTitle: string;
Vip: number;
SingerId: number;
SingerMid: string;
SingerName: string;
TryPlayable: number;
SongPlayTime: number;
Playable: number;
UnplayableCode: number;
AlbumId: number;
AlbumMid: string;
AlbumTitle: string;
AlbumPic: string;
AlbumPic300X300: string;
AlbumPic500X500: string;
SongToken: string;
}[];
Number: number;
Name: string;
Pic: string;
BannerPic: string;
}

QQMusicFreeSongInfo

interface QQMusicFreeSongInfo {
SongId: number;
SongMid: string;
SongName: string;
SongTitle: string;
IsOnly: number;
Vip: number;
Language: string;
Genre: string;
PublicTime: string;
SongPlayTime: number;
IsDigitalAlbum: number;
Copyright: number;
Hot: number;
Playable: number;
SongH5Url: string;
MvId: number;
MvVid: string;
KSongId: number;
KSongMid: string;
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
SingerPic150X150: string;
SingerPic300X300: string;
SingerPic500X500: string;
OtherSingerList: {
SingerId: number;
SingerMid: string;
SingerName: string;
SingerTitle: string;
SingerPic: string;
}[];
AlbumId: number;
AlbumMid: string;
AlbumName: string;
AlbumTitle: string;
AlbumPic: string;
AlbumPic150X150: string;
AlbumPic300X300: string;
AlbumPic500X500: string;
SongPlayUrl: string;
SongPlayUrlStandard: string;
SongPlayUrlHq: string;
SongPlayUrlSq: string;
SongSize: number;
SongSizeStandard: number;
SongSizeHq: number;
SongSizeSq: number;
TryPlayable: number;
TryBegin: number;
TryEnd: number;
Try30SUrl: string;
TryFileSize: number;
UnplayableCode: number;
UnplayableMsg: string;
UserOwnRule: number;
SongVersion: number;
WeightPlayCnt: number;
FNote: number;
EditAllow: number;
SongPlayUrlDolby: string;
SongSizeDolby: number;
Action: {
Switch: number;
Switch2: number;
PlayAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
DownloadAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
CacheAccess: {
FQ: number;
STANDARD: number;
HQ: number;
SQ: number;
XQ: number;
DOLBY: number;
FLYRA: number;
ATMOS: number;
};
};
SongEkeyStandard: string;
SongEkeyHq: string;
SongEkeySq: string;
SongEkeyDolby: string;
Extra: Record<string, unknown>;
SongEkeyXq: string;
SongPlayUrlXq: string;
SongSizeXq: number;
SongTypeDolby: string;
Bpm: number;
}

QQMusicQualityType

const enum QQMusicQualityType {
/** 流畅 */
FQ = 1,
/** 标准 */
STANDARD = 2,
/** 高品质 */
HQ = 4,
/** 超品质 */
SQ = 8,
/** Hi-Res */
XQ = 16,
/** 杜比 */
DOLBY = 32,
/** 母带 */
FLYRA = 64,
/** 臻品全景声 */
ATMOS = 128,
}

QQMusicPlayListType

const enum QQMusicPlayListType {
/** 歌单 */
SongList = 5,
/** 歌曲 */
Song = 6,
/** 电台 */
Radio = 7,
/** 榜单 */
Rank = 8,
/** 专辑 */
Album = 9,
/** 歌手 */
Singer = 10,
/** 推荐 */
Recommend = 12,
/** 免登录专区 */
NoLoginArea = 14,
}