腾讯连连自定义 H5 SDK 提供 QQ 音乐接口能力,包括获取 QQ 音乐歌曲基本信息、播放链接、歌手信息、歌单信息、个性化推荐歌曲、最近播放、最新歌曲等,可用于支持 H5 面板内进行音乐内容的点播。
接口调用方式
window.h5PanelSdk.qqMusic.<接口名>
例如:
window.h5PanelSdk.qqMusic.goAuthPage()
注意:
若在未登录状态下调用需登录的接口,会报错
InvalidParameterValue.OAuthClientNotExist
。登录授权
登录授权完成后,H5 SDK 及设备可以使用所登录 QQ 音乐账号的听歌数据与会员权益。
查询 QQ 音乐授权状态
查询当前用户是否已完成 QQ 音乐登录授权。
getAuthStatus(): Promise<boolean>
输入参数
无
输出参数
boolean
跳转 QQ 音乐登录授权页面
调用该接口后会跳转到腾讯连连小程序完成 QQ 音乐登录授权。
goAuthPage(): void
输入参数
无
输出参数
无
歌曲
批量获取歌曲详情信息
通过歌曲 id 或歌曲 mid 获取一首或多首歌曲的详情信息。
SongIds
和 SongMids
同时传入时优先使用 SongMids
。describeSongInfoBatch(params: object): Promise<QQMusicSongInfo[]>
输入参数
参数名称 | 参数类型 | 参数描述 |
params.SongIds | number[] | 歌曲 id 数组 |
params.SongMids | string[] | 歌曲 mid 数组 |
输出参数
Promise<QQMusicSongInfo[]>
获取歌曲歌词
通过歌曲 id 或歌曲 mid 获取一首歌曲的歌词。
SongId
和 SongMid
同时传入时优先使用 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,}