sdk

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2026 License: MIT Imports: 25 Imported by: 0

Documentation

Overview

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Code generated by tools/gen; DO NOT EDIT.

Index

Constants

View Source
const RouteAiRecommend = "/ai/recommend"
View Source
const RouteAlbum = "/album"
View Source
const RouteAlbumDetail = "/album/detail"
View Source
const RouteAlbumShop = "/album/shop"
View Source
const RouteAlbumSongs = "/album/songs"
View Source
const RouteArtistAlbums = "/artist/albums"
View Source
const RouteArtistAudios = "/artist/audios"
View Source
const RouteArtistDetail = "/artist/detail"
View Source
const RouteArtistFollow = "/artist/follow"
View Source
const RouteArtistFollowNewsongs = "/artist/follow/newsongs"
View Source
const RouteArtistHonour = "/artist/honour"
View Source
const RouteArtistLists = "/artist/lists"
View Source
const RouteArtistUnfollow = "/artist/unfollow"
View Source
const RouteArtistVideos = "/artist/videos"
View Source
const RouteAudio = "/audio"
View Source
const RouteAudioAccompanyMatching = "/audio/accompany/matching"
View Source
const RouteAudioKtvTotal = "/audio/ktv/total"
View Source
const RouteAudioRelated = "/audio/related"
View Source
const RouteBrush = "/brush"
View Source
const RouteCaptchaSent = "/captcha/sent"
View Source
const RouteCommentAlbum = "/comment/album"
View Source
const RouteCommentCount = "/comment/count"
View Source
const RouteCommentFloor = "/comment/floor"
View Source
const RouteCommentMusic = "/comment/music"
View Source
const RouteCommentMusicClassify = "/comment/music/classify"
View Source
const RouteCommentMusicHotword = "/comment/music/hotword"
View Source
const RouteCommentPlaylist = "/comment/playlist"
View Source
const RouteEverydayFriend = "/everyday/friend"
View Source
const RouteEverydayHistory = "/everyday/history"
View Source
const RouteEverydayRecommend = "/everyday/recommend"
View Source
const RouteEverydayStyleRecommend = "/everyday/style/recommend"
View Source
const RouteFavoriteCount = "/favorite/count"
View Source
const RouteFmClass = "/fm/class"
View Source
const RouteFmImage = "/fm/image"
View Source
const RouteFmRecommend = "/fm/recommend"
View Source
const RouteFmSongs = "/fm/songs"
View Source
const RouteImages = "/images"
View Source
const RouteImagesAudio = "/images/audio"
View Source
const RouteIp = "/ip"
View Source
const RouteIpDateil = "/ip/dateil"
View Source
const RouteIpPlaylist = "/ip/playlist"
View Source
const RouteIpZone = "/ip/zone"
View Source
const RouteIpZoneHome = "/ip/zone/home"
View Source
const RouteKmrAudioMv = "/kmr/audio/mv"
View Source
const RouteKrmAudio = "/krm/audio"
View Source
const RouteLastestSongsListen = "/lastest/songs/listen"
View Source
const RouteLogin = "/login"
View Source
const RouteLoginCellphone = "/login/cellphone"
View Source
const RouteLoginDevice = "/login/device"
View Source
const RouteLoginOpenplat = "/login/openplat"
View Source
const RouteLoginQrCheck = "/login/qr/check"
View Source
const RouteLoginQrCreate = "/login/qr/create"
View Source
const RouteLoginQrKey = "/login/qr/key"
View Source
const RouteLoginToken = "/login/token"
View Source
const RouteLoginWxCheck = "/login/wx/check"
View Source
const RouteLoginWxCreate = "/login/wx/create"
View Source
const RouteLongaudioAlbumAudios = "/longaudio/album/audios"
View Source
const RouteLongaudioAlbumDetail = "/longaudio/album/detail"
View Source
const RouteLongaudioDailyRecommend = "/longaudio/daily/recommend"
View Source
const RouteLongaudioRankRecommend = "/longaudio/rank/recommend"
View Source
const RouteLongaudioVipRecommend = "/longaudio/vip/recommend"
View Source
const RouteLongaudioWeekRecommend = "/longaudio/week/recommend"
View Source
const RouteLyric = "/lyric"
View Source
const RoutePcDiantai = "/pc/diantai"
View Source
const RoutePersonalFm = "/personal/fm"
View Source
const RoutePlayhistoryUpload = "/playhistory/upload"
View Source
const RoutePlaylistAdd = "/playlist/add"
View Source
const RoutePlaylistDel = "/playlist/del"
View Source
const RoutePlaylistDetail = "/playlist/detail"
View Source
const RoutePlaylistEffect = "/playlist/effect"
View Source
const RoutePlaylistSimilar = "/playlist/similar"
View Source
const RoutePlaylistTags = "/playlist/tags"
View Source
const RoutePlaylistTrackAll = "/playlist/track/all"
View Source
const RoutePlaylistTrackAllNew = "/playlist/track/all/new"
View Source
const RoutePlaylistTracksAdd = "/playlist/tracks/add"
View Source
const RoutePlaylistTracksDel = "/playlist/tracks/del"
View Source
const RoutePrivilegeLite = "/privilege/lite"
View Source
const RouteRankAudio = "/rank/audio"
View Source
const RouteRankInfo = "/rank/info"
View Source
const RouteRankList = "/rank/list"
View Source
const RouteRankTop = "/rank/top"
View Source
const RouteRankVol = "/rank/vol"
View Source
const RouteRecommendSongs = "/recommend/songs"
View Source
const RouteRegisterDev = "/register/dev"
View Source
const RouteSceneAudioList = "/scene/audio/list"
View Source
const RouteSceneCollectionList = "/scene/collection/list"
View Source
const RouteSceneLists = "/scene/lists"
View Source
const RouteSceneListsV2 = "/scene/lists/v2"
View Source
const RouteSceneModule = "/scene/module"
View Source
const RouteSceneModuleInfo = "/scene/module/info"
View Source
const RouteSceneMusic = "/scene/music"
View Source
const RouteSceneVideoList = "/scene/video/list"
View Source
const RouteSearch = "/search"
View Source
const RouteSearchComplex = "/search/complex"
View Source
const RouteSearchDefault = "/search/default"
View Source
const RouteSearchHot = "/search/hot"
View Source
const RouteSearchLyric = "/search/lyric"
View Source
const RouteSearchMixed = "/search/mixed"
View Source
const RouteSearchSuggest = "/search/suggest"
View Source
const RouteServerNow = "/server/now"
View Source
const RouteSheetCollection = "/sheet/collection"
View Source
const RouteSheetCollectionDetail = "/sheet/collection/detail"
View Source
const RouteSheetDetail = "/sheet/detail"
View Source
const RouteSheetHot = "/sheet/hot"
View Source
const RouteSheetList = "/sheet/list"
View Source
const RouteSingerList = "/singer/list"
View Source
const RouteSongClimax = "/song/climax"
View Source
const RouteSongRanking = "/song/ranking"
View Source
const RouteSongRankingFilter = "/song/ranking/filter"
View Source
const RouteSongUrl = "/song/url"
View Source
const RouteSongUrlNew = "/song/url/new"
View Source
const RouteThemeMusic = "/theme/music"
View Source
const RouteThemeMusicDetail = "/theme/music/detail"
View Source
const RouteThemePlaylist = "/theme/playlist"
View Source
const RouteThemePlaylistTrack = "/theme/playlist/track"
View Source
const RouteTopAlbum = "/top/album"
View Source
const RouteTopCard = "/top/card"
View Source
const RouteTopCardYouth = "/top/card/youth"
View Source
const RouteTopIp = "/top/ip"
View Source
const RouteTopPlaylist = "/top/playlist"
View Source
const RouteTopSong = "/top/song"
View Source
const RouteUserCloud = "/user/cloud"
View Source
const RouteUserCloudUrl = "/user/cloud/url"
View Source
const RouteUserDetail = "/user/detail"
View Source
const RouteUserFollow = "/user/follow"
View Source
const RouteUserHistory = "/user/history"
View Source
const RouteUserListen = "/user/listen"
View Source
const RouteUserPlaylist = "/user/playlist"
View Source
const RouteUserVideoCollect = "/user/video/collect"
View Source
const RouteUserVideoLove = "/user/video/love"
View Source
const RouteUserVipDetail = "/user/vip/detail"
View Source
const RouteVideoDetail = "/video/detail"
View Source
const RouteVideoPrivilege = "/video/privilege"
View Source
const RouteVideoUrl = "/video/url"
View Source
const RouteYouthChannelAll = "/youth/channel/all"
View Source
const RouteYouthChannelAmway = "/youth/channel/amway"
View Source
const RouteYouthChannelDetail = "/youth/channel/detail"
View Source
const RouteYouthChannelSimilar = "/youth/channel/similar"
View Source
const RouteYouthChannelSong = "/youth/channel/song"
View Source
const RouteYouthChannelSongDetail = "/youth/channel/song/detail"
View Source
const RouteYouthChannelSub = "/youth/channel/sub"
View Source
const RouteYouthDayVip = "/youth/day/vip"
View Source
const RouteYouthDayVipUpgrade = "/youth/day/vip/upgrade"
View Source
const RouteYouthDynamic = "/youth/dynamic"
View Source
const RouteYouthDynamicRecent = "/youth/dynamic/recent"
View Source
const RouteYouthListenSong = "/youth/listen/song"
View Source
const RouteYouthMonthVipRecord = "/youth/month/vip/record"
View Source
const RouteYouthUnionVip = "/youth/union/vip"
View Source
const RouteYouthUserSong = "/youth/user/song"
View Source
const RouteYouthVip = "/youth/vip"
View Source
const RouteYueku = "/yueku"
View Source
const RouteYuekuBanner = "/yueku/banner"
View Source
const RouteYuekuFm = "/yueku/fm"

Variables

View Source
var APIList = []APIInfo{}/* 153 elements not displayed */

Functions

This section is empty.

Types

type APIInfo

type APIInfo struct {
	Identifier    string
	Route         string
	Method        string
	RequestModel  string
	ResponseModel string
}

type AiRecommendRequest

type AiRecommendRequest struct {
	AlbumAudioId string            `json:"album_audio_id,omitempty"`
	Userid       any               `json:"userid,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

Media discovery request and response models are grouped here.

type AiRecommendResponse

type AiRecommendResponse = Response

type AlbumDetailRequest

type AlbumDetailRequest struct {
	Id     any               `json:"id,omitempty"`
	IsBuy  int               `json:"is_buy,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type AlbumDetailResponse

type AlbumDetailResponse = Response

type AlbumRequest

type AlbumRequest struct {
	AlbumId string            `json:"album_id,omitempty"`
	Dfid    string            `json:"dfid,omitempty"`
	Fields  string            `json:"fields,omitempty"`
	Token   int               `json:"token,omitempty"`
	Userid  int               `json:"userid,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type AlbumResponse

type AlbumResponse = Response

type AlbumShopRequest

type AlbumShopRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type AlbumShopResponse

type AlbumShopResponse = Response

type AlbumSongsRequest

type AlbumSongsRequest struct {
	Id       any               `json:"id,omitempty"`
	IsBuy    string            `json:"is_buy,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type AlbumSongsResponse

type AlbumSongsResponse = Response

type ArtistAlbumsRequest

type ArtistAlbumsRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Sort     any               `json:"sort,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type ArtistAlbumsResponse

type ArtistAlbumsResponse = Response

type ArtistAudiosRequest

type ArtistAudiosRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Sort     any               `json:"sort,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type ArtistAudiosResponse

type ArtistAudiosResponse = Response

type ArtistDetailRequest

type ArtistDetailRequest struct {
	Id     any               `json:"id,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ArtistDetailResponse

type ArtistDetailResponse = Response

type ArtistFollowNewsongsRequest

type ArtistFollowNewsongsRequest struct {
	LastAlbumId any               `json:"last_album_id,omitempty"`
	OptSort     any               `json:"opt_sort,omitempty"`
	Pagesize    any               `json:"pagesize,omitempty"`
	Cookie      map[string]string `json:"-"`
	Extra       map[string]any    `json:"-"`
}

type ArtistFollowNewsongsResponse

type ArtistFollowNewsongsResponse = Response

type ArtistFollowRequest

type ArtistFollowRequest struct {
	Id     int               `json:"id,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid int               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ArtistFollowResponse

type ArtistFollowResponse = Response

type ArtistHonourRequest

type ArtistHonourRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type ArtistHonourResponse

type ArtistHonourResponse = Response

type ArtistListsRequest

type ArtistListsRequest struct {
	Hotsize  int               `json:"hotsize,omitempty"`
	Musician int               `json:"musician,omitempty"`
	Sextypes any               `json:"sextypes,omitempty"`
	Type     any               `json:"type,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type ArtistListsResponse

type ArtistListsResponse = Response

type ArtistUnfollowRequest

type ArtistUnfollowRequest struct {
	Id     any               `json:"id,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ArtistUnfollowResponse

type ArtistUnfollowResponse = Response

type ArtistVideosRequest

type ArtistVideosRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Tag      string            `json:"tag,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type ArtistVideosResponse

type ArtistVideosResponse = Response

type AudioAccompanyMatchingRequest

type AudioAccompanyMatchingRequest struct {
	FileName any               `json:"fileName,omitempty"`
	Hash     any               `json:"hash,omitempty"`
	MixId    int               `json:"mixId,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type AudioAccompanyMatchingResponse

type AudioAccompanyMatchingResponse = Response

type AudioKtvTotalRequest

type AudioKtvTotalRequest struct {
	SingerName any               `json:"singerName,omitempty"`
	SongHash   any               `json:"songHash,omitempty"`
	SongId     int               `json:"songId,omitempty"`
	Cookie     map[string]string `json:"-"`
	Extra      map[string]any    `json:"-"`
}

type AudioKtvTotalResponse

type AudioKtvTotalResponse = Response

type AudioRelatedRequest

type AudioRelatedRequest struct {
	AlbumAudioId int               `json:"album_audio_id,omitempty"`
	Page         any               `json:"page,omitempty"`
	Pagesize     any               `json:"pagesize,omitempty"`
	ShowDetail   int               `json:"show_detail,omitempty"`
	ShowType     any               `json:"show_type,omitempty"`
	Sort         any               `json:"sort,omitempty"`
	Type         any               `json:"type,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type AudioRelatedResponse

type AudioRelatedResponse = Response

type AudioRequest

type AudioRequest struct {
	Dfid   string            `json:"dfid,omitempty"`
	Hash   string            `json:"hash,omitempty"`
	Token  int               `json:"token,omitempty"`
	Userid int               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type AudioResponse

type AudioResponse = Response

type BrushRequest

type BrushRequest struct {
	Mode       string            `json:"mode,omitempty"`
	SongPoolId int               `json:"song_pool_id,omitempty"`
	Userid     int               `json:"userid,omitempty"`
	VipType    int               `json:"vipType,omitempty"`
	Cookie     map[string]string `json:"-"`
	Extra      map[string]any    `json:"-"`
}

type BrushResponse

type BrushResponse = Response

type CaptchaSentRequest

type CaptchaSentRequest struct {
	Mobile any               `json:"mobile,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type CaptchaSentResponse

type CaptchaSentResponse = Response

type CellphoneLoginRequest

type CellphoneLoginRequest struct {
	Mobile string
	Code   string
	UserID string
	Cookie map[string]string
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func New

func New(opts ...Option) (*Client, error)

func (*Client) AddTracksToPlaylist

func (c *Client) AddTracksToPlaylist(ctx context.Context, listID int, tracks []RadioTrack, cookie map[string]string) (*PlaylistAddTracksResult, error)

AddTracksToPlaylist adds tracks to the given playlist id. It skips tracks with empty hash and deduplicates by hash. It uses PlaylistTracksAdd(...) to stay aligned with upstream JS request shaping.

func (*Client) AiRecommend

func (c *Client) AiRecommend(ctx context.Context, req AiRecommendRequest) (*AiRecommendResponse, error)

Catalog and artist endpoints need hand-built signature payloads.

func (*Client) Album

func (c *Client) Album(ctx context.Context, req AlbumRequest) (*AlbumResponse, error)

func (*Client) AlbumDetail

func (c *Client) AlbumDetail(ctx context.Context, req AlbumDetailRequest) (*AlbumDetailResponse, error)

Album, artist, social, and zone endpoints with hand-tuned request shaping.

func (*Client) AlbumShop

func (c *Client) AlbumShop(ctx context.Context, req AlbumShopRequest) (*AlbumShopResponse, error)

func (*Client) AlbumSongs

func (c *Client) AlbumSongs(ctx context.Context, req AlbumSongsRequest) (*AlbumSongsResponse, error)

func (*Client) ArtistAlbums

func (c *Client) ArtistAlbums(ctx context.Context, req ArtistAlbumsRequest) (*ArtistAlbumsResponse, error)

func (*Client) ArtistAudios

func (c *Client) ArtistAudios(ctx context.Context, req ArtistAudiosRequest) (*ArtistAudiosResponse, error)

func (*Client) ArtistDetail

func (c *Client) ArtistDetail(ctx context.Context, req ArtistDetailRequest) (*ArtistDetailResponse, error)

func (*Client) ArtistFollow

func (c *Client) ArtistFollow(ctx context.Context, req ArtistFollowRequest) (*ArtistFollowResponse, error)

func (*Client) ArtistFollowNewsongs

func (*Client) ArtistHonour

func (c *Client) ArtistHonour(ctx context.Context, req ArtistHonourRequest) (*ArtistHonourResponse, error)

func (*Client) ArtistLists

func (c *Client) ArtistLists(ctx context.Context, req ArtistListsRequest) (*ArtistListsResponse, error)

func (*Client) ArtistUnfollow

func (c *Client) ArtistUnfollow(ctx context.Context, req ArtistUnfollowRequest) (*ArtistUnfollowResponse, error)

func (*Client) ArtistVideos

func (c *Client) ArtistVideos(ctx context.Context, req ArtistVideosRequest) (*ArtistVideosResponse, error)

func (*Client) Audio

func (c *Client) Audio(ctx context.Context, req AudioRequest) (*AudioResponse, error)

func (*Client) AudioKtvTotal

func (c *Client) AudioKtvTotal(ctx context.Context, req AudioKtvTotalRequest) (*AudioKtvTotalResponse, error)

func (*Client) AudioRelated

func (c *Client) AudioRelated(ctx context.Context, req AudioRelatedRequest) (*AudioRelatedResponse, error)

Signature-based audio recommendation endpoints keep their custom payloads here.

func (*Client) Brush

func (c *Client) Brush(ctx context.Context, req BrushRequest) (*BrushResponse, error)

func (*Client) Call

func (c *Client) Call(ctx context.Context, route string, req Request) (*Response, error)

func (*Client) CallByIdentifier

func (c *Client) CallByIdentifier(ctx context.Context, identifier string, req Request) (*Response, error)

func (*Client) CaptchaSent

func (c *Client) CaptchaSent(ctx context.Context, req CaptchaSentRequest) (*CaptchaSentResponse, error)

func (*Client) CommentAlbum

func (c *Client) CommentAlbum(ctx context.Context, req CommentAlbumRequest) (*CommentAlbumResponse, error)

Comment and personal FM endpoints stay grouped by shared request signing rules.

func (*Client) CommentCount

func (c *Client) CommentCount(ctx context.Context, req CommentCountRequest) (*CommentCountResponse, error)

func (*Client) CommentFloor

func (c *Client) CommentFloor(ctx context.Context, req CommentFloorRequest) (*CommentFloorResponse, error)

func (*Client) CommentMusic

func (c *Client) CommentMusic(ctx context.Context, req CommentMusicRequest) (*CommentMusicResponse, error)

func (*Client) CommentMusicClassify

func (*Client) CommentMusicHotword

func (*Client) CommentPlaylist

func (c *Client) CommentPlaylist(ctx context.Context, req CommentPlaylistRequest) (*CommentPlaylistResponse, error)

func (*Client) Cookie

func (c *Client) Cookie() map[string]string

func (*Client) CreatePlaylist

func (c *Client) CreatePlaylist(ctx context.Context, name string, isPrivate bool, cookie map[string]string) (*PlaylistCreateResult, error)

CreatePlaylist creates a new playlist for the current logged-in user. It uses PlaylistAdd(...) to stay aligned with upstream JS request shaping.

func (*Client) Endpoints

func (c *Client) Endpoints() []APIInfo

func (*Client) EverydayFriend

func (c *Client) EverydayFriend(ctx context.Context, req EverydayFriendRequest) (*EverydayFriendResponse, error)

func (*Client) EverydayHistory

func (c *Client) EverydayHistory(ctx context.Context, req EverydayHistoryRequest) (*EverydayHistoryResponse, error)

func (*Client) EverydayRecommend

EverydayRecommend returns daily recommendation with login-aware cookie handling.

func (*Client) FavoriteCount

func (c *Client) FavoriteCount(ctx context.Context, req FavoriteCountRequest) (*FavoriteCountResponse, error)

func (*Client) FmClass

func (c *Client) FmClass(ctx context.Context, req FmClassRequest) (*FmClassResponse, error)

func (*Client) FmImage

func (c *Client) FmImage(ctx context.Context, req FmImageRequest) (*FmImageResponse, error)

func (*Client) FmRecommend

func (c *Client) FmRecommend(ctx context.Context, req FmRecommendRequest) (*FmRecommendResponse, error)

func (*Client) FmSongs

func (c *Client) FmSongs(ctx context.Context, req FmSongsRequest) (*FmSongsResponse, error)

func (*Client) GetDailyRecommendGuest

func (c *Client) GetDailyRecommendGuest(ctx context.Context, cookie map[string]string) (*Response, error)

GetDailyRecommendGuest fetches daily recommend list for guest mode. It first calls EverydayRecommend, and if business code 200103 is returned, it falls back to RecommendSongs(platform=android, userid=0).

func (*Client) GetPersonalRadio

func (c *Client) GetPersonalRadio(ctx context.Context, req PersonalRadioRequest) (*PersonalRadioResponse, error)

func (*Client) GetSongPlayURL

func (c *Client) GetSongPlayURL(ctx context.Context, req SongPlayURLRequest, opts ...SongPlayURLOption) (string, error)

GetSongPlayURL resolves a playable URL with module-compatible defaults. It keeps backward compatibility and returns the first available URL.

func (*Client) Images

func (c *Client) Images(ctx context.Context, req ImagesRequest) (*ImagesResponse, error)

func (*Client) ImagesAudio

func (c *Client) ImagesAudio(ctx context.Context, req ImagesAudioRequest) (*ImagesAudioResponse, error)

func (*Client) Ip

func (c *Client) Ip(ctx context.Context, req IpRequest) (*IpResponse, error)

func (*Client) IpDateil

func (c *Client) IpDateil(ctx context.Context, req IpDateilRequest) (*IpDateilResponse, error)

func (*Client) IpPlaylist

func (c *Client) IpPlaylist(ctx context.Context, req IpPlaylistRequest) (*IpPlaylistResponse, error)

func (*Client) IpZone

func (c *Client) IpZone(ctx context.Context, req IpZoneRequest) (*IpZoneResponse, error)

IpZone normalizes the embedded special_link payload into an integer ip_id.

func (*Client) IpZoneHome

func (c *Client) IpZoneHome(ctx context.Context, req IpZoneHomeRequest) (*IpZoneHomeResponse, error)

func (*Client) KmrAudioMv

func (c *Client) KmrAudioMv(ctx context.Context, req KmrAudioMvRequest) (*KmrAudioMvResponse, error)

Media detail and long-audio endpoints use manual payload shaping.

func (*Client) KrmAudio

func (c *Client) KrmAudio(ctx context.Context, req KrmAudioRequest) (*KrmAudioResponse, error)

func (*Client) LastestSongsListen

func (*Client) Login

func (c *Client) Login(ctx context.Context, req LoginRequest) (*LoginResponse, error)

func (*Client) LoginByCellphone

func (c *Client) LoginByCellphone(ctx context.Context, req CellphoneLoginRequest) (*Response, error)

func (*Client) LoginByPassword

func (c *Client) LoginByPassword(ctx context.Context, req PasswordLoginRequest) (*Response, error)

func (*Client) LoginByToken

func (c *Client) LoginByToken(ctx context.Context, req TokenLoginRequest) (*Response, error)

func (*Client) LoginCellphone

func (c *Client) LoginCellphone(ctx context.Context, req LoginCellphoneRequest) (*LoginCellphoneResponse, error)

func (*Client) LoginDevice

func (c *Client) LoginDevice(ctx context.Context, req LoginDeviceRequest) (*LoginDeviceResponse, error)

func (*Client) LoginOpenplat

func (c *Client) LoginOpenplat(ctx context.Context, req LoginOpenplatRequest) (*LoginOpenplatResponse, error)

func (*Client) LoginQrCheck

func (c *Client) LoginQrCheck(ctx context.Context, req LoginQrCheckRequest) (*LoginQrCheckResponse, error)

func (*Client) LoginQrCreate

func (c *Client) LoginQrCreate(ctx context.Context, req LoginQrCreateRequest) (*LoginQrCreateResponse, error)

func (*Client) LoginQrKey

func (c *Client) LoginQrKey(ctx context.Context, req LoginQrKeyRequest) (*LoginQrKeyResponse, error)

func (*Client) LoginToken

func (c *Client) LoginToken(ctx context.Context, req LoginTokenRequest) (*LoginTokenResponse, error)

func (*Client) LoginWxCheck

func (c *Client) LoginWxCheck(ctx context.Context, req LoginWxCheckRequest) (*LoginWxCheckResponse, error)

func (*Client) LoginWxCreate

func (c *Client) LoginWxCreate(ctx context.Context, req LoginWxCreateRequest) (*LoginWxCreateResponse, error)

func (*Client) LongaudioAlbumAudios

func (*Client) LongaudioAlbumDetail

func (*Client) LongaudioVipRecommend

func (*Client) Lyric

func (c *Client) Lyric(ctx context.Context, req LyricRequest) (*LyricResponse, error)

func (*Client) PcDiantai

func (c *Client) PcDiantai(ctx context.Context, req PcDiantaiRequest) (*PcDiantaiResponse, error)

func (*Client) PersonalFm

func (c *Client) PersonalFm(ctx context.Context, req PersonalFmRequest) (*PersonalFmResponse, error)

func (*Client) PlayhistoryUpload

func (*Client) PlaylistAdd

func (c *Client) PlaylistAdd(ctx context.Context, req PlaylistAddRequest) (*PlaylistAddResponse, error)

PlaylistAdd: create playlist (type=0).

func (*Client) PlaylistDel

func (c *Client) PlaylistDel(ctx context.Context, req PlaylistDelRequest) (*PlaylistDelResponse, error)

Playlist and cloud endpoints require custom encryption and signature steps.

func (*Client) PlaylistDetail

func (c *Client) PlaylistDetail(ctx context.Context, req PlaylistDetailRequest) (*PlaylistDetailResponse, error)

func (*Client) PlaylistEffect

func (c *Client) PlaylistEffect(ctx context.Context, req PlaylistEffectRequest) (*PlaylistEffectResponse, error)

func (*Client) PlaylistSimilar

func (c *Client) PlaylistSimilar(ctx context.Context, req PlaylistSimilarRequest) (*PlaylistSimilarResponse, error)

func (*Client) PlaylistTags

func (c *Client) PlaylistTags(ctx context.Context, req PlaylistTagsRequest) (*PlaylistTagsResponse, error)

func (*Client) PlaylistTrackAll

func (c *Client) PlaylistTrackAll(ctx context.Context, req PlaylistTrackAllRequest) (*PlaylistTrackAllResponse, error)

func (*Client) PlaylistTrackAllNew

func (*Client) PlaylistTracksAdd

PlaylistTracksAdd: add songs into playlist.

func (*Client) PlaylistTracksDel

PlaylistTracksDel: delete songs by fileids.

func (*Client) PrivilegeLite

func (c *Client) PrivilegeLite(ctx context.Context, req PrivilegeLiteRequest) (*PrivilegeLiteResponse, error)

func (*Client) RankAudio

func (c *Client) RankAudio(ctx context.Context, req RankAudioRequest) (*RankAudioResponse, error)

func (*Client) RankInfo

func (c *Client) RankInfo(ctx context.Context, req RankInfoRequest) (*RankInfoResponse, error)

Ranking endpoints keep custom legacy parameter names for compatibility.

func (*Client) RankList

func (c *Client) RankList(ctx context.Context, req RankListRequest) (*RankListResponse, error)

func (*Client) RankTop

func (c *Client) RankTop(ctx context.Context, req RankTopRequest) (*RankTopResponse, error)

func (*Client) RankVol

func (c *Client) RankVol(ctx context.Context, req RankVolRequest) (*RankVolResponse, error)

func (*Client) RecommendSongs

func (c *Client) RecommendSongs(ctx context.Context, req RecommendSongsRequest) (*RecommendSongsResponse, error)

RecommendSongs returns recommend songs. If login is invalid, it falls back to guest userid=0.

func (*Client) RegisterDev

func (c *Client) RegisterDev(ctx context.Context, req RegisterDevRequest) (*RegisterDevResponse, error)

Device registration and user video mutation endpoints share bespoke signatures.

func (*Client) ResolveSongPlayURL

func (c *Client) ResolveSongPlayURL(ctx context.Context, req SongPlayURLRequest, opts ...SongPlayURLOption) (*SongPlayURLResult, error)

ResolveSongPlayURL returns detailed URL resolving result.

func (*Client) RouteByIdentifier

func (c *Client) RouteByIdentifier(identifier string) (string, bool)

func (*Client) SceneAudioList

func (c *Client) SceneAudioList(ctx context.Context, req SceneAudioListRequest) (*SceneAudioListResponse, error)

func (*Client) SceneCollectionList

func (*Client) SceneLists

func (c *Client) SceneLists(ctx context.Context, req SceneListsRequest) (*SceneListsResponse, error)

func (*Client) SceneListsV2

func (c *Client) SceneListsV2(ctx context.Context, req SceneListsV2Request) (*SceneListsV2Response, error)

func (*Client) SceneModule

func (c *Client) SceneModule(ctx context.Context, req SceneModuleRequest) (*SceneModuleResponse, error)

func (*Client) SceneModuleInfo

func (c *Client) SceneModuleInfo(ctx context.Context, req SceneModuleInfoRequest) (*SceneModuleInfoResponse, error)

func (*Client) SceneMusic

func (c *Client) SceneMusic(ctx context.Context, req SceneMusicRequest) (*SceneMusicResponse, error)

func (*Client) SceneVideoList

func (c *Client) SceneVideoList(ctx context.Context, req SceneVideoListRequest) (*SceneVideoListResponse, error)

func (*Client) Search

func (c *Client) Search(ctx context.Context, req SearchRequest) (*SearchResponse, error)

func (*Client) SearchComplex

func (c *Client) SearchComplex(ctx context.Context, req SearchComplexRequest) (*SearchComplexResponse, error)

func (*Client) SearchDefault

func (c *Client) SearchDefault(ctx context.Context, req SearchDefaultRequest) (*SearchDefaultResponse, error)

func (*Client) SearchHot

func (c *Client) SearchHot(ctx context.Context, req SearchHotRequest) (*SearchHotResponse, error)

func (*Client) SearchLyric

func (c *Client) SearchLyric(ctx context.Context, req SearchLyricRequest) (*SearchLyricResponse, error)

func (*Client) SearchMixed

func (c *Client) SearchMixed(ctx context.Context, req SearchMixedRequest) (*SearchMixedResponse, error)

Search and FM endpoints use upstream signature flows that differ from generic wrappers.

func (*Client) SearchSuggest

func (c *Client) SearchSuggest(ctx context.Context, req SearchSuggestRequest) (*SearchSuggestResponse, error)

func (*Client) SendCaptcha

func (c *Client) SendCaptcha(ctx context.Context, req SendCaptchaRequest) (*Response, error)

SendCaptcha sends login SMS code with JS-compatible payload. Equivalent to module/captcha_sent.js: businessid=5, plat=3.

func (*Client) ServerNow

func (c *Client) ServerNow(ctx context.Context, req ServerNowRequest) (*ServerNowResponse, error)

Miscellaneous server, sheet, singer, and song ranking endpoints.

func (*Client) SetCookie

func (c *Client) SetCookie(k, v string)

func (*Client) SheetCollection

func (c *Client) SheetCollection(ctx context.Context, req SheetCollectionRequest) (*SheetCollectionResponse, error)

Collection and theme endpoints share the generic compat request path.

func (*Client) SheetCollectionDetail

func (*Client) SheetDetail

func (c *Client) SheetDetail(ctx context.Context, req SheetDetailRequest) (*SheetDetailResponse, error)

func (*Client) SheetHot

func (c *Client) SheetHot(ctx context.Context, req SheetHotRequest) (*SheetHotResponse, error)

func (*Client) SheetList

func (c *Client) SheetList(ctx context.Context, req SheetListRequest) (*SheetListResponse, error)

func (*Client) SingerList

func (c *Client) SingerList(ctx context.Context, req SingerListRequest) (*SingerListResponse, error)

func (*Client) SongClimax

func (c *Client) SongClimax(ctx context.Context, req SongClimaxRequest) (*SongClimaxResponse, error)

func (*Client) SongRanking

func (c *Client) SongRanking(ctx context.Context, req SongRankingRequest) (*SongRankingResponse, error)

func (*Client) SongRankingFilter

func (*Client) SongUrl

func (c *Client) SongUrl(ctx context.Context, req SongUrlRequest) (*SongUrlResponse, error)

func (*Client) SongUrlNew

func (c *Client) SongUrlNew(ctx context.Context, req SongUrlNewRequest) (*SongUrlNewResponse, error)

func (*Client) ThemeMusic

func (c *Client) ThemeMusic(ctx context.Context, req ThemeMusicRequest) (*ThemeMusicResponse, error)

func (*Client) ThemeMusicDetail

func (c *Client) ThemeMusicDetail(ctx context.Context, req ThemeMusicDetailRequest) (*ThemeMusicDetailResponse, error)

func (*Client) ThemePlaylist

func (c *Client) ThemePlaylist(ctx context.Context, req ThemePlaylistRequest) (*ThemePlaylistResponse, error)

func (*Client) ThemePlaylistTrack

func (*Client) TopAlbum

func (c *Client) TopAlbum(ctx context.Context, req TopAlbumRequest) (*TopAlbumResponse, error)

func (*Client) TopCard

func (c *Client) TopCard(ctx context.Context, req TopCardRequest) (*TopCardResponse, error)

func (*Client) TopCardYouth

func (c *Client) TopCardYouth(ctx context.Context, req TopCardYouthRequest) (*TopCardYouthResponse, error)

func (*Client) TopIp

func (c *Client) TopIp(ctx context.Context, req TopIpRequest) (*TopIpResponse, error)

func (*Client) TopPlaylist

func (c *Client) TopPlaylist(ctx context.Context, req TopPlaylistRequest) (*TopPlaylistResponse, error)

func (*Client) TopSong

func (c *Client) TopSong(ctx context.Context, req TopSongRequest) (*TopSongResponse, error)

func (*Client) UserCloud

func (c *Client) UserCloud(ctx context.Context, req UserCloudRequest) (*UserCloudResponse, error)

func (*Client) UserCloudUrl

func (c *Client) UserCloudUrl(ctx context.Context, req UserCloudUrlRequest) (*UserCloudUrlResponse, error)

User listening and video metadata endpoints keep their signature logic here.

func (*Client) UserDetail

func (c *Client) UserDetail(ctx context.Context, req UserDetailRequest) (*UserDetailResponse, error)

UserDetail overrides generated behavior with JS-compatible signing for /user/detail.

func (*Client) UserFollow

func (c *Client) UserFollow(ctx context.Context, req UserFollowRequest) (*UserFollowResponse, error)

func (*Client) UserHistory

func (c *Client) UserHistory(ctx context.Context, req UserHistoryRequest) (*UserHistoryResponse, error)

func (*Client) UserListen

func (c *Client) UserListen(ctx context.Context, req UserListenRequest) (*UserListenResponse, error)

func (*Client) UserPlaylist

func (c *Client) UserPlaylist(ctx context.Context, req UserPlaylistRequest) (*UserPlaylistResponse, error)

func (*Client) UserVideoCollect

func (c *Client) UserVideoCollect(ctx context.Context, req UserVideoCollectRequest) (*UserVideoCollectResponse, error)

func (*Client) UserVideoLove

func (c *Client) UserVideoLove(ctx context.Context, req UserVideoLoveRequest) (*UserVideoLoveResponse, error)

func (*Client) UserVipDetail

func (c *Client) UserVipDetail(ctx context.Context, req UserVipDetailRequest) (*UserVipDetailResponse, error)

Youth and yueku endpoints are grouped here to keep manual wrappers small.

func (*Client) VideoDetail

func (c *Client) VideoDetail(ctx context.Context, req VideoDetailRequest) (*VideoDetailResponse, error)

func (*Client) VideoPrivilege

func (c *Client) VideoPrivilege(ctx context.Context, req VideoPrivilegeRequest) (*VideoPrivilegeResponse, error)

func (*Client) VideoUrl

func (c *Client) VideoUrl(ctx context.Context, req VideoUrlRequest) (*VideoUrlResponse, error)

func (*Client) YouthChannelAll

func (c *Client) YouthChannelAll(ctx context.Context, req YouthChannelAllRequest) (*YouthChannelAllResponse, error)

func (*Client) YouthChannelAmway

func (*Client) YouthChannelDetail

func (*Client) YouthChannelSimilar

func (*Client) YouthChannelSong

func (c *Client) YouthChannelSong(ctx context.Context, req YouthChannelSongRequest) (*YouthChannelSongResponse, error)

Youth and yueku compat endpoints stay split out to keep each file small.

func (*Client) YouthChannelSub

func (c *Client) YouthChannelSub(ctx context.Context, req YouthChannelSubRequest) (*YouthChannelSubResponse, error)

func (*Client) YouthDayVip

func (c *Client) YouthDayVip(ctx context.Context, req YouthDayVipRequest) (*YouthDayVipResponse, error)

func (*Client) YouthDayVipUpgrade

func (*Client) YouthDynamic

func (c *Client) YouthDynamic(ctx context.Context, req YouthDynamicRequest) (*YouthDynamicResponse, error)

func (*Client) YouthDynamicRecent

func (*Client) YouthListenSong

func (c *Client) YouthListenSong(ctx context.Context, req YouthListenSongRequest) (*YouthListenSongResponse, error)

func (*Client) YouthMonthVipRecord

func (*Client) YouthUnionVip

func (c *Client) YouthUnionVip(ctx context.Context, req YouthUnionVipRequest) (*YouthUnionVipResponse, error)

func (*Client) YouthUserSong

func (c *Client) YouthUserSong(ctx context.Context, req YouthUserSongRequest) (*YouthUserSongResponse, error)

func (*Client) YouthVip

func (c *Client) YouthVip(ctx context.Context, req YouthVipRequest) (*YouthVipResponse, error)

func (*Client) Yueku

func (c *Client) Yueku(ctx context.Context, req YuekuRequest) (*YuekuResponse, error)

Yueku endpoints are grouped separately to keep the youth wrapper files small.

func (*Client) YuekuBanner

func (c *Client) YuekuBanner(ctx context.Context, req YuekuBannerRequest) (*YuekuBannerResponse, error)

func (*Client) YuekuFm

func (c *Client) YuekuFm(ctx context.Context, req YuekuFmRequest) (*YuekuFmResponse, error)

type CommentAlbumRequest

type CommentAlbumRequest struct {
	Id              any               `json:"id,omitempty"`
	Page            any               `json:"page,omitempty"`
	Pagesize        any               `json:"pagesize,omitempty"`
	ShowClassify    any               `json:"show_classify,omitempty"`
	ShowHotwordList any               `json:"show_hotword_list,omitempty"`
	Cookie          map[string]string `json:"-"`
	Extra           map[string]any    `json:"-"`
}

Comment, everyday, FM, and image models stay in one generated shard.

type CommentAlbumResponse

type CommentAlbumResponse = Response

type CommentCountRequest

type CommentCountRequest struct {
	Hash      any               `json:"hash,omitempty"`
	SpecialId any               `json:"special_id,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type CommentCountResponse

type CommentCountResponse = Response

type CommentFloorRequest

type CommentFloorRequest struct {
	Mixsongid       any               `json:"mixsongid,omitempty"`
	Page            any               `json:"page,omitempty"`
	Pagesize        any               `json:"pagesize,omitempty"`
	ShowClassify    any               `json:"show_classify,omitempty"`
	ShowHotwordList any               `json:"show_hotword_list,omitempty"`
	SpecialId       any               `json:"special_id,omitempty"`
	Tid             any               `json:"tid,omitempty"`
	Cookie          map[string]string `json:"-"`
	Extra           map[string]any    `json:"-"`
}

type CommentFloorResponse

type CommentFloorResponse = Response

type CommentMusicClassifyRequest

type CommentMusicClassifyRequest struct {
	Mixsongid any               `json:"mixsongid,omitempty"`
	Page      any               `json:"page,omitempty"`
	Pagesize  any               `json:"pagesize,omitempty"`
	Sort      int               `json:"sort,omitempty"`
	TypeId    any               `json:"type_id,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type CommentMusicClassifyResponse

type CommentMusicClassifyResponse = Response

type CommentMusicHotwordRequest

type CommentMusicHotwordRequest struct {
	HotWord   any               `json:"hot_word,omitempty"`
	Mixsongid any               `json:"mixsongid,omitempty"`
	Page      any               `json:"page,omitempty"`
	Pagesize  any               `json:"pagesize,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type CommentMusicHotwordResponse

type CommentMusicHotwordResponse = Response

type CommentMusicRequest

type CommentMusicRequest struct {
	Mixsongid       any               `json:"mixsongid,omitempty"`
	Page            any               `json:"page,omitempty"`
	Pagesize        any               `json:"pagesize,omitempty"`
	ShowClassify    any               `json:"show_classify,omitempty"`
	ShowHotwordList any               `json:"show_hotword_list,omitempty"`
	Cookie          map[string]string `json:"-"`
	Extra           map[string]any    `json:"-"`
}

type CommentMusicResponse

type CommentMusicResponse = Response

type CommentPlaylistRequest

type CommentPlaylistRequest struct {
	Id              any               `json:"id,omitempty"`
	Page            any               `json:"page,omitempty"`
	Pagesize        any               `json:"pagesize,omitempty"`
	ShowClassify    any               `json:"show_classify,omitempty"`
	ShowHotwordList any               `json:"show_hotword_list,omitempty"`
	Cookie          map[string]string `json:"-"`
	Extra           map[string]any    `json:"-"`
}

type CommentPlaylistResponse

type CommentPlaylistResponse = Response

type EverydayFriendRequest

type EverydayFriendRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type EverydayFriendResponse

type EverydayFriendResponse = Response

type EverydayHistoryRequest

type EverydayHistoryRequest struct {
	Date        any               `json:"date,omitempty"`
	HistoryName any               `json:"history_name,omitempty"`
	Mode        any               `json:"mode,omitempty"`
	Platform    any               `json:"platform,omitempty"`
	Cookie      map[string]string `json:"-"`
	Extra       map[string]any    `json:"-"`
}

type EverydayHistoryResponse

type EverydayHistoryResponse = Response

type EverydayRecommendRequest

type EverydayRecommendRequest struct {
	Platform any               `json:"platform,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type EverydayRecommendResponse

type EverydayRecommendResponse = Response

type EverydayStyleRecommendRequest

type EverydayStyleRecommendRequest struct {
	Platform any               `json:"platform,omitempty"`
	Tagids   any               `json:"tagids,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type EverydayStyleRecommendResponse

type EverydayStyleRecommendResponse = Response

type FavoriteCountRequest

type FavoriteCountRequest struct {
	Mixsongids any               `json:"mixsongids,omitempty"`
	Cookie     map[string]string `json:"-"`
	Extra      map[string]any    `json:"-"`
}

type FavoriteCountResponse

type FavoriteCountResponse = Response

type FmClassRequest

type FmClassRequest struct {
	Userid int               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type FmClassResponse

type FmClassResponse = Response

type FmImageRequest

type FmImageRequest struct {
	Dfid   string            `json:"dfid,omitempty"`
	Fmid   string            `json:"fmid,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type FmImageResponse

type FmImageResponse = Response

type FmRecommendRequest

type FmRecommendRequest struct {
	Dfid   string            `json:"dfid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type FmRecommendResponse

type FmRecommendResponse = Response

type FmSongsRequest

type FmSongsRequest struct {
	Fmid     string            `json:"fmid,omitempty"`
	Fmoffset string            `json:"fmoffset,omitempty"`
	Fmsize   string            `json:"fmsize,omitempty"`
	Fmtype   string            `json:"fmtype,omitempty"`
	Offset   any               `json:"offset,omitempty"`
	Size     int               `json:"size,omitempty"`
	Type     int               `json:"type,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type FmSongsResponse

type FmSongsResponse = Response

type ImagesAudioRequest

type ImagesAudioRequest struct {
	AlbumAudioId string            `json:"album_audio_id,omitempty"`
	AudioId      string            `json:"audio_id,omitempty"`
	Count        int               `json:"count,omitempty"`
	Filename     string            `json:"filename,omitempty"`
	Hash         string            `json:"hash,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

Lookup and login-adjacent models are grouped together.

type ImagesAudioResponse

type ImagesAudioResponse = Response

type ImagesRequest

type ImagesRequest struct {
	AlbumAudioId string            `json:"album_audio_id,omitempty"`
	AlbumId      string            `json:"album_id,omitempty"`
	Count        int               `json:"count,omitempty"`
	Hash         string            `json:"hash,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type ImagesResponse

type ImagesResponse = Response

type IpDateilRequest

type IpDateilRequest struct {
	Id     string            `json:"id,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type IpDateilResponse

type IpDateilResponse = Response

type IpPlaylistRequest

type IpPlaylistRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type IpPlaylistResponse

type IpPlaylistResponse = Response

type IpRequest

type IpRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Type     any               `json:"type,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type IpResponse

type IpResponse = Response

type IpZoneHomeRequest

type IpZoneHomeRequest struct {
	Id     any               `json:"id,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type IpZoneHomeResponse

type IpZoneHomeResponse = Response

type IpZoneRequest

type IpZoneRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type IpZoneResponse

type IpZoneResponse = Response

type KmrAudioMvRequest

type KmrAudioMvRequest struct {
	AlbumAudioId string            `json:"album_audio_id,omitempty"`
	Fields       any               `json:"fields,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type KmrAudioMvResponse

type KmrAudioMvResponse = Response

type KrmAudioRequest

type KrmAudioRequest struct {
	AlbumAudioId string            `json:"album_audio_id,omitempty"`
	Fields       any               `json:"fields,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type KrmAudioResponse

type KrmAudioResponse = Response

type LastestSongsListenRequest

type LastestSongsListenRequest struct {
	Pagesize int               `json:"pagesize,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   int               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type LastestSongsListenResponse

type LastestSongsListenResponse = Response

type LoginCellphoneRequest

type LoginCellphoneRequest struct {
	Code   string            `json:"code,omitempty"`
	Mobile string            `json:"mobile,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginCellphoneResponse

type LoginCellphoneResponse = Response

type LoginDeviceRequest

type LoginDeviceRequest struct {
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginDeviceResponse

type LoginDeviceResponse = Response

type LoginOpenplatRequest

type LoginOpenplatRequest struct {
	Code   string            `json:"code,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginOpenplatResponse

type LoginOpenplatResponse = Response

type LoginQrCheckRequest

type LoginQrCheckRequest struct {
	Key    any               `json:"key,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginQrCheckResponse

type LoginQrCheckResponse Response

func (*LoginQrCheckResponse) StatusCode added in v0.0.2

func (r *LoginQrCheckResponse) StatusCode() int

func (*LoginQrCheckResponse) Token added in v0.0.2

func (r *LoginQrCheckResponse) Token() string

func (*LoginQrCheckResponse) UserID added in v0.0.2

func (r *LoginQrCheckResponse) UserID() string

type LoginQrCreateRequest

type LoginQrCreateRequest struct {
	Key    any               `json:"key,omitempty"`
	Qrimg  any               `json:"qrimg,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginQrCreateResponse

type LoginQrCreateResponse Response

func (*LoginQrCreateResponse) Base64 added in v0.0.2

func (r *LoginQrCreateResponse) Base64() string

func (*LoginQrCreateResponse) URL added in v0.0.2

func (r *LoginQrCreateResponse) URL() string

type LoginQrKeyRequest

type LoginQrKeyRequest struct {
	Type   any               `json:"type,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

Late login models, lyric models, and PC radio models share this shard.

type LoginQrKeyResponse

type LoginQrKeyResponse Response

func (*LoginQrKeyResponse) QRCodeImageURL added in v0.0.2

func (r *LoginQrKeyResponse) QRCodeImageURL() string

func (*LoginQrKeyResponse) QRCodeKey added in v0.0.2

func (r *LoginQrKeyResponse) QRCodeKey() string

func (*LoginQrKeyResponse) QRCodeURL added in v0.0.2

func (r *LoginQrKeyResponse) QRCodeURL() string

type LoginRequest

type LoginRequest struct {
	Password string            `json:"password,omitempty"`
	Username any               `json:"username,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

Generated login flow wrappers remain isolated for easier review.

type LoginResponse

type LoginResponse = Response

type LoginTokenRequest

type LoginTokenRequest struct {
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginTokenResponse

type LoginTokenResponse = Response

type LoginWxCheckRequest

type LoginWxCheckRequest struct {
	Uuid   string            `json:"uuid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginWxCheckResponse

type LoginWxCheckResponse = Response

type LoginWxCreateRequest

type LoginWxCreateRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LoginWxCreateResponse

type LoginWxCreateResponse = Response

type LongaudioAlbumAudiosRequest

type LongaudioAlbumAudiosRequest struct {
	AlbumId  any               `json:"album_id,omitempty"`
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type LongaudioAlbumAudiosResponse

type LongaudioAlbumAudiosResponse = Response

type LongaudioAlbumDetailRequest

type LongaudioAlbumDetailRequest struct {
	AlbumId any               `json:"album_id,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type LongaudioAlbumDetailResponse

type LongaudioAlbumDetailResponse = Response

type LongaudioDailyRecommendRequest

type LongaudioDailyRecommendRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type LongaudioDailyRecommendResponse

type LongaudioDailyRecommendResponse = Response

type LongaudioRankRecommendRequest

type LongaudioRankRecommendRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LongaudioRankRecommendResponse

type LongaudioRankRecommendResponse = Response

type LongaudioVipRecommendRequest

type LongaudioVipRecommendRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LongaudioVipRecommendResponse

type LongaudioVipRecommendResponse = Response

type LongaudioWeekRecommendRequest

type LongaudioWeekRecommendRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type LongaudioWeekRecommendResponse

type LongaudioWeekRecommendResponse = Response

type LyricRequest

type LyricRequest struct {
	Accesskey any               `json:"accesskey,omitempty"`
	Client    string            `json:"client,omitempty"`
	Decode    any               `json:"decode,omitempty"`
	Fmt       any               `json:"fmt,omitempty"`
	Id        any               `json:"id,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type LyricResponse

type LyricResponse Response

func (*LyricResponse) DecodedContent

func (r *LyricResponse) DecodedContent() string

DecodedContent returns decoded lyric text. For lrc/plain content it returns plain text, and for krc content it returns decoded krc text.

func (*LyricResponse) ToLrc

func (r *LyricResponse) ToLrc() string

ToLrc converts lyric response content to common LRC text for external players/software.

type Option

type Option func(*Client)

func WithAutoRefresh added in v0.0.2

func WithAutoRefresh(enabled bool) Option

WithAutoRefresh controls whether the SDK should try token refresh on 20018-style auth failures.

func WithCookie

func WithCookie(cookie map[string]string) Option

func WithLite

func WithLite(v bool) Option

type PasswordLoginRequest

type PasswordLoginRequest struct {
	Username string
	Password string
	Cookie   map[string]string
}

type PcDiantaiRequest

type PcDiantaiRequest struct {
	Userid int               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PcDiantaiResponse

type PcDiantaiResponse = Response

type PersonalFmRequest

type PersonalFmRequest struct {
	Action        string            `json:"action,omitempty"`
	Hash          any               `json:"hash,omitempty"`
	IsOverplay    bool              `json:"is_overplay,omitempty"`
	Mode          string            `json:"mode,omitempty"`
	Platform      string            `json:"platform,omitempty"`
	Playtime      any               `json:"playtime,omitempty"`
	RemainSongcnt int               `json:"remain_songcnt,omitempty"`
	SongPoolId    int               `json:"song_pool_id,omitempty"`
	Songid        any               `json:"songid,omitempty"`
	Token         int               `json:"token,omitempty"`
	Userid        int               `json:"userid,omitempty"`
	VipType       int               `json:"vipType,omitempty"`
	Cookie        map[string]string `json:"-"`
	Extra         map[string]any    `json:"-"`
}

Personal FM and playlist models are grouped together.

type PersonalFmResponse

type PersonalFmResponse = Response

type PersonalRadioMode

type PersonalRadioMode string
const (
	PersonalRadioHeart PersonalRadioMode = "heart" // 红心/猜你喜欢(私人FM normal)
	PersonalRadioNew   PersonalRadioMode = "new"   // 新歌速递(top_song)
	PersonalRadioNiche PersonalRadioMode = "niche" // 小众(私人FM small)
)

type PersonalRadioRequest

type PersonalRadioRequest struct {
	Mode PersonalRadioMode

	// For fm:
	SongPoolID int

	// For list-like modes:
	Page     int
	PageSize int

	Cookie map[string]string
}

type PersonalRadioResponse

type PersonalRadioResponse struct {
	Mode   PersonalRadioMode
	Source string
	Raw    *Response
	Tracks []RadioTrack
}

type PlayhistoryUploadRequest

type PlayhistoryUploadRequest struct {
	Mxid   int               `json:"mxid,omitempty"`
	Pc     int               `json:"pc,omitempty"`
	Time   int               `json:"time,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PlayhistoryUploadResponse

type PlayhistoryUploadResponse = Response

type PlaylistAddRequest

type PlaylistAddRequest struct {
	IsPri            any               `json:"is_pri,omitempty"`
	ListCreateGid    any               `json:"list_create_gid,omitempty"`
	ListCreateListid any               `json:"list_create_listid,omitempty"`
	ListCreateUserid any               `json:"list_create_userid,omitempty"`
	Name             any               `json:"name,omitempty"`
	Source           any               `json:"source,omitempty"`
	Token            any               `json:"token,omitempty"`
	Type             any               `json:"type,omitempty"`
	Userid           any               `json:"userid,omitempty"`
	Cookie           map[string]string `json:"-"`
	Extra            map[string]any    `json:"-"`
}

type PlaylistAddResponse

type PlaylistAddResponse = Response

type PlaylistAddTracksResult

type PlaylistAddTracksResult struct {
	Added int
	Raw   *Response
}

type PlaylistCreateResult

type PlaylistCreateResult struct {
	ListID int
	Raw    *Response
}

type PlaylistDelRequest

type PlaylistDelRequest struct {
	Listid int               `json:"listid,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PlaylistDelResponse

type PlaylistDelResponse = Response

type PlaylistDetailRequest

type PlaylistDetailRequest struct {
	Ids    string            `json:"ids,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PlaylistDetailResponse

type PlaylistDetailResponse = Response

type PlaylistEffectRequest

type PlaylistEffectRequest struct {
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type PlaylistEffectResponse

type PlaylistEffectResponse = Response

type PlaylistSimilarRequest

type PlaylistSimilarRequest struct {
	Ids    string            `json:"ids,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PlaylistSimilarResponse

type PlaylistSimilarResponse = Response

type PlaylistTagsRequest

type PlaylistTagsRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PlaylistTagsResponse

type PlaylistTagsResponse = Response

type PlaylistTrackAllNewRequest

type PlaylistTrackAllNewRequest struct {
	Listid   any               `json:"listid,omitempty"`
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type PlaylistTrackAllNewResponse

type PlaylistTrackAllNewResponse = Response

type PlaylistTrackAllRequest

type PlaylistTrackAllRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type PlaylistTrackAllResponse

type PlaylistTrackAllResponse = Response

type PlaylistTracksAddRequest

type PlaylistTracksAddRequest struct {
	Data   any               `json:"data,omitempty"`
	Listid any               `json:"listid,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type PlaylistTracksAddResponse

type PlaylistTracksAddResponse = Response

type PlaylistTracksDelRequest

type PlaylistTracksDelRequest struct {
	Fileids any               `json:"fileids,omitempty"`
	Listid  any               `json:"listid,omitempty"`
	Token   any               `json:"token,omitempty"`
	Userid  any               `json:"userid,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type PlaylistTracksDelResponse

type PlaylistTracksDelResponse = Response

type PrivilegeLiteRequest

type PrivilegeLiteRequest struct {
	AlbumId string            `json:"album_id,omitempty"`
	Hash    string            `json:"hash,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type PrivilegeLiteResponse

type PrivilegeLiteResponse = Response

type RadioTrack

type RadioTrack struct {
	Name         string
	Singer       string
	Hash         string
	AlbumAudioID int
	SongID       int
	URL          string
}

type RankAudioRequest

type RankAudioRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	RankCid  any               `json:"rank_cid,omitempty"`
	Rankid   any               `json:"rankid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

Rank and scene models share this generated shard.

type RankAudioResponse

type RankAudioResponse = Response

type RankInfoRequest

type RankInfoRequest struct {
	AlbumImg any               `json:"album_img,omitempty"`
	RankCid  any               `json:"rank_cid,omitempty"`
	Rankid   any               `json:"rankid,omitempty"`
	Zone     any               `json:"zone,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type RankInfoResponse

type RankInfoResponse = Response

type RankListRequest

type RankListRequest struct {
	Withsong any               `json:"withsong,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type RankListResponse

type RankListResponse = Response

type RankTopRequest

type RankTopRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type RankTopResponse

type RankTopResponse = Response

type RankVolRequest

type RankVolRequest struct {
	RankCid any               `json:"rank_cid,omitempty"`
	Rankid  any               `json:"rankid,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type RankVolResponse

type RankVolResponse = Response

type RecommendSongsRequest

type RecommendSongsRequest struct {
	Platform string            `json:"platform,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type RecommendSongsResponse

type RecommendSongsResponse = Response

type RegisterDevRequest

type RegisterDevRequest struct {
	Accelerometer      any               `json:"accelerometer,omitempty"`
	AccelerometerValue string            `json:"accelerometerValue,omitempty"`
	AvailableRamSize   int               `json:"availableRamSize,omitempty"`
	AvailableRomSize   int               `json:"availableRomSize,omitempty"`
	AvailableSDSize    int               `json:"availableSDSize,omitempty"`
	BasebandVer        string            `json:"basebandVer,omitempty"`
	BatteryLevel       int               `json:"batteryLevel,omitempty"`
	BatteryStatus      int               `json:"batteryStatus,omitempty"`
	Brand              string            `json:"brand,omitempty"`
	BuildSerial        string            `json:"buildSerial,omitempty"`
	Device             string            `json:"device,omitempty"`
	Gravity            any               `json:"gravity,omitempty"`
	GravityValue       string            `json:"gravityValue,omitempty"`
	Gyroscope          any               `json:"gyroscope,omitempty"`
	GyroscopeValue     string            `json:"gyroscopeValue,omitempty"`
	Imei               any               `json:"imei,omitempty"`
	Imsi               string            `json:"imsi,omitempty"`
	Light              any               `json:"light,omitempty"`
	LightValue         string            `json:"lightValue,omitempty"`
	Magnetic           any               `json:"magnetic,omitempty"`
	MagneticValue      string            `json:"magneticValue,omitempty"`
	Manufacturer       string            `json:"manufacturer,omitempty"`
	Orientation        any               `json:"orientation,omitempty"`
	OrientationValue   string            `json:"orientationValue,omitempty"`
	Pressure           any               `json:"pressure,omitempty"`
	PressureValue      string            `json:"pressureValue,omitempty"`
	StepCounter        any               `json:"step_counter,omitempty"`
	StepCounterValue   string            `json:"step_counterValue,omitempty"`
	Temperature        any               `json:"temperature,omitempty"`
	TemperatureValue   string            `json:"temperatureValue,omitempty"`
	Token              any               `json:"token,omitempty"`
	Userid             any               `json:"userid,omitempty"`
	Uuid               any               `json:"uuid,omitempty"`
	Cookie             map[string]string `json:"-"`
	Extra              map[string]any    `json:"-"`
}

type RegisterDevResponse

type RegisterDevResponse = Response

type Request

type Request struct {
	Params map[string]any
	Data   map[string]any
	Cookie map[string]string

	Method      string
	URL         string
	BaseURL     string
	Headers     map[string]string
	EncryptType string

	EncryptKey         *bool
	ClearDefaultParams *bool
	NotSignature       *bool
}

type Response

type Response struct {
	Status  int
	RawBody []byte
	Body    map[string]any
	Headers map[string]string
	Cookie  []string
}

type SceneAudioListRequest

type SceneAudioListRequest struct {
	Id       any               `json:"id,omitempty"`
	ModuleId any               `json:"module_id,omitempty"`
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Tag      any               `json:"tag,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SceneAudioListResponse

type SceneAudioListResponse = Response

type SceneCollectionListRequest

type SceneCollectionListRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	TagId    any               `json:"tag_id,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SceneCollectionListResponse

type SceneCollectionListResponse = Response

type SceneListsRequest

type SceneListsRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type SceneListsResponse

type SceneListsResponse = Response

type SceneListsV2Request

type SceneListsV2Request struct {
	Id       any               `json:"id,omitempty"`
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Sort     any               `json:"sort,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SceneListsV2Response

type SceneListsV2Response = Response

type SceneModuleInfoRequest

type SceneModuleInfoRequest struct {
	Id       any               `json:"id,omitempty"`
	ModuleId any               `json:"module_id,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SceneModuleInfoResponse

type SceneModuleInfoResponse = Response

type SceneModuleRequest

type SceneModuleRequest struct {
	Id     any               `json:"id,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type SceneModuleResponse

type SceneModuleResponse = Response

type SceneMusicRequest

type SceneMusicRequest struct {
	Id       any               `json:"id,omitempty"`
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SceneMusicResponse

type SceneMusicResponse = Response

type SceneVideoListRequest

type SceneVideoListRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	TagId    any               `json:"tag_id,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SceneVideoListResponse

type SceneVideoListResponse = Response

type SearchComplexRequest

type SearchComplexRequest struct {
	Keywords any               `json:"keywords,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SearchComplexResponse

type SearchComplexResponse = Response

type SearchDefaultRequest

type SearchDefaultRequest struct {
	Userid  any               `json:"userid,omitempty"`
	VipType any               `json:"vip_type,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type SearchDefaultResponse

type SearchDefaultResponse = Response

type SearchHotRequest

type SearchHotRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type SearchHotResponse

type SearchHotResponse = Response

type SearchLyricRequest

type SearchLyricRequest struct {
	AlbumAudioId int               `json:"album_audio_id,omitempty"`
	Hash         string            `json:"hash,omitempty"`
	Keywords     string            `json:"keywords,omitempty"`
	Man          any               `json:"man,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type SearchLyricResponse

type SearchLyricResponse = Response

type SearchMixedRequest

type SearchMixedRequest struct {
	Keyword any               `json:"keyword,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type SearchMixedResponse

type SearchMixedResponse = Response

type SearchRequest

type SearchRequest struct {
	Keywords string            `json:"keywords,omitempty"`
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Type     any               `json:"type,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

Search, sheet, and song ranking models stay together.

type SearchResponse

type SearchResponse = Response

type SearchSuggestRequest

type SearchSuggestRequest struct {
	AlbumTipCount   any               `json:"albumTipCount,omitempty"`
	CorrectTipCount any               `json:"correctTipCount,omitempty"`
	Keywords        any               `json:"keywords,omitempty"`
	MusicTipCount   any               `json:"musicTipCount,omitempty"`
	MvTipCount      any               `json:"mvTipCount,omitempty"`
	Cookie          map[string]string `json:"-"`
	Extra           map[string]any    `json:"-"`
}

type SearchSuggestResponse

type SearchSuggestResponse = Response

type SendCaptchaRequest

type SendCaptchaRequest struct {
	Mobile string
	Cookie map[string]string
}

type ServerNowRequest

type ServerNowRequest struct {
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ServerNowResponse

type ServerNowResponse = Response

type SheetCollectionDetailRequest

type SheetCollectionDetailRequest struct {
	CollectionId any               `json:"collection_id,omitempty"`
	Page         any               `json:"page,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type SheetCollectionDetailResponse

type SheetCollectionDetailResponse = Response

type SheetCollectionRequest

type SheetCollectionRequest struct {
	Position any               `json:"position,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type SheetCollectionResponse

type SheetCollectionResponse = Response

type SheetDetailRequest

type SheetDetailRequest struct {
	Id     any               `json:"id,omitempty"`
	Source any               `json:"source,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type SheetDetailResponse

type SheetDetailResponse = Response

type SheetHotRequest

type SheetHotRequest struct {
	OpernType any               `json:"opern_type,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type SheetHotResponse

type SheetHotResponse = Response

type SheetListRequest

type SheetListRequest struct {
	AlbumAudioId any               `json:"album_audio_id,omitempty"`
	OpernType    any               `json:"opern_type,omitempty"`
	Page         any               `json:"page,omitempty"`
	Pagesize     any               `json:"pagesize,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type SheetListResponse

type SheetListResponse = Response

type SingerListRequest

type SingerListRequest struct {
	Hotsize any               `json:"hotsize,omitempty"`
	Sextype any               `json:"sextype,omitempty"`
	Type    any               `json:"type,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type SingerListResponse

type SingerListResponse = Response

type SongClimaxRequest

type SongClimaxRequest struct {
	Hash   string            `json:"hash,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type SongClimaxResponse

type SongClimaxResponse = Response

type SongPlayURLOption

type SongPlayURLOption func(*songPlayURLConfig)

func WithSongURLAll

func WithSongURLAll(enabled bool) SongPlayURLOption

WithSongURLAll controls whether all discovered URLs are returned.

func WithSongURLDFID

func WithSongURLDFID(dfid string) SongPlayURLOption

WithSongURLDFID forces a specific dfid for URL resolving.

func WithSongURLFallback

func WithSongURLFallback(enabled bool) SongPlayURLOption

WithSongURLFallback controls whether fallback to song_url_new is enabled.

type SongPlayURLRequest

type SongPlayURLRequest struct {
	Hash         string
	AlbumID      int
	AlbumAudioID int
	Quality      any
	FreePart     bool
	Cookie       map[string]string
}

type SongPlayURLResult

type SongPlayURLResult struct {
	Primary string
	URLs    []string
	Source  string
}

type SongRankingFilterRequest

type SongRankingFilterRequest struct {
	AlbumAudioId any               `json:"album_audio_id,omitempty"`
	Page         any               `json:"page,omitempty"`
	Pagesize     any               `json:"pagesize,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type SongRankingFilterResponse

type SongRankingFilterResponse = Response

type SongRankingRequest

type SongRankingRequest struct {
	AlbumAudioId any               `json:"album_audio_id,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type SongRankingResponse

type SongRankingResponse = Response

type SongUrlNewRequest

type SongUrlNewRequest struct {
	AlbumAudioId any               `json:"album_audio_id,omitempty"`
	Dfid         any               `json:"dfid,omitempty"`
	FreePart     bool              `json:"free_part,omitempty"`
	Hash         any               `json:"hash,omitempty"`
	Quality      any               `json:"quality,omitempty"`
	Token        any               `json:"token,omitempty"`
	Userid       int               `json:"userid,omitempty"`
	VipType      int               `json:"vipType,omitempty"`
	VipToken     any               `json:"vip_token,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type SongUrlNewResponse

type SongUrlNewResponse = Response

type SongUrlRequest

type SongUrlRequest struct {
	AlbumAudioId int               `json:"album_audio_id,omitempty"`
	AlbumId      int               `json:"album_id,omitempty"`
	FreePart     bool              `json:"free_part,omitempty"`
	Hash         string            `json:"hash,omitempty"`
	Quality      any               `json:"quality,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

Song URL, theme, and top-list models share this shard.

type SongUrlResponse

type SongUrlResponse = Response

type ThemeMusicDetailRequest

type ThemeMusicDetailRequest struct {
	Id     any               `json:"id,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ThemeMusicDetailResponse

type ThemeMusicDetailResponse = Response

type ThemeMusicRequest

type ThemeMusicRequest struct {
	Ids    any               `json:"ids,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ThemeMusicResponse

type ThemeMusicResponse = Response

type ThemePlaylistRequest

type ThemePlaylistRequest struct {
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type ThemePlaylistResponse

type ThemePlaylistResponse = Response

type ThemePlaylistTrackRequest

type ThemePlaylistTrackRequest struct {
	ThemeId any               `json:"theme_id,omitempty"`
	Userid  any               `json:"userid,omitempty"`
	Cookie  map[string]string `json:"-"`
	Extra   map[string]any    `json:"-"`
}

type ThemePlaylistTrackResponse

type ThemePlaylistTrackResponse = Response

type TokenLoginRequest

type TokenLoginRequest struct {
	Token  string
	UserID string
	Cookie map[string]string
}

type TopAlbumRequest

type TopAlbumRequest struct {
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Token    any               `json:"token,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type TopAlbumResponse

type TopAlbumResponse = Response

type TopCardRequest

type TopCardRequest struct {
	CardId int               `json:"card_id,omitempty"`
	Dfid   any               `json:"dfid,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type TopCardResponse

type TopCardResponse = Response

type TopCardYouthRequest

type TopCardYouthRequest struct {
	CardId   int               `json:"card_id,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Tagid    any               `json:"tagid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type TopCardYouthResponse

type TopCardYouthResponse = Response

type TopIpRequest

type TopIpRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type TopIpResponse

type TopIpResponse = Response

type TopPlaylistRequest

type TopPlaylistRequest struct {
	CategoryId int               `json:"category_id,omitempty"`
	ModuleId   int               `json:"module_id,omitempty"`
	Page       int               `json:"page,omitempty"`
	Pagesize   int               `json:"pagesize,omitempty"`
	Sort       int               `json:"sort,omitempty"`
	Userid     any               `json:"userid,omitempty"`
	Withsong   int               `json:"withsong,omitempty"`
	Withtag    int               `json:"withtag,omitempty"`
	Cookie     map[string]string `json:"-"`
	Extra      map[string]any    `json:"-"`
}

type TopPlaylistResponse

type TopPlaylistResponse = Response

type TopSongRequest

type TopSongRequest struct {
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Type     int               `json:"type,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type TopSongResponse

type TopSongResponse = Response

type UserCloudRequest

type UserCloudRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

User, video, and youth models stay together in the final shard.

type UserCloudResponse

type UserCloudResponse = Response

type UserCloudUrlRequest

type UserCloudUrlRequest struct {
	AlbumAudioId any               `json:"album_audio_id,omitempty"`
	AudioId      any               `json:"audio_id,omitempty"`
	Hash         any               `json:"hash,omitempty"`
	Name         any               `json:"name,omitempty"`
	Cookie       map[string]string `json:"-"`
	Extra        map[string]any    `json:"-"`
}

type UserCloudUrlResponse

type UserCloudUrlResponse = Response

type UserDetailRequest

type UserDetailRequest struct {
	Token  any               `json:"token,omitempty"`
	Userid int               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type UserDetailResponse

type UserDetailResponse = Response

type UserFollowRequest

type UserFollowRequest struct {
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type UserFollowResponse

type UserFollowResponse = Response

type UserHistoryRequest

type UserHistoryRequest struct {
	Bp     any               `json:"bp,omitempty"`
	Token  any               `json:"token,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type UserHistoryResponse

type UserHistoryResponse = Response

type UserListenRequest

type UserListenRequest struct {
	Token  any               `json:"token,omitempty"`
	Type   any               `json:"type,omitempty"`
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type UserListenResponse

type UserListenResponse = Response

type UserPlaylistRequest

type UserPlaylistRequest struct {
	Page     int               `json:"page,omitempty"`
	Pagesize int               `json:"pagesize,omitempty"`
	Token    string            `json:"token,omitempty"`
	Userid   int               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type UserPlaylistResponse

type UserPlaylistResponse = Response

type UserVideoCollectRequest

type UserVideoCollectRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Token    any               `json:"token,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type UserVideoCollectResponse

type UserVideoCollectResponse = Response

type UserVideoLoveRequest

type UserVideoLoveRequest struct {
	Pagesize any               `json:"pagesize,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type UserVideoLoveResponse

type UserVideoLoveResponse = Response

type UserVipDetailRequest

type UserVipDetailRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type UserVipDetailResponse

type UserVipDetailResponse = Response

type VideoDetailRequest

type VideoDetailRequest struct {
	Id     any               `json:"id,omitempty"`
	Token  any               `json:"token,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type VideoDetailResponse

type VideoDetailResponse = Response

type VideoPrivilegeRequest

type VideoPrivilegeRequest struct {
	Hash   string            `json:"hash,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type VideoPrivilegeResponse

type VideoPrivilegeResponse = Response

type VideoUrlRequest

type VideoUrlRequest struct {
	Hash   any               `json:"hash,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type VideoUrlResponse

type VideoUrlResponse = Response

type YouthChannelAllRequest

type YouthChannelAllRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type YouthChannelAllResponse

type YouthChannelAllResponse = Response

type YouthChannelAmwayRequest

type YouthChannelAmwayRequest struct {
	GlobalCollectionId any               `json:"global_collection_id,omitempty"`
	Cookie             map[string]string `json:"-"`
	Extra              map[string]any    `json:"-"`
}

type YouthChannelAmwayResponse

type YouthChannelAmwayResponse = Response

type YouthChannelDetailRequest

type YouthChannelDetailRequest struct {
	GlobalCollectionId any               `json:"global_collection_id,omitempty"`
	Cookie             map[string]string `json:"-"`
	Extra              map[string]any    `json:"-"`
}

type YouthChannelDetailResponse

type YouthChannelDetailResponse = Response

type YouthChannelSimilarRequest

type YouthChannelSimilarRequest struct {
	ChannelId any               `json:"channel_id,omitempty"`
	VipType   any               `json:"vip_type,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type YouthChannelSimilarResponse

type YouthChannelSimilarResponse = Response

type YouthChannelSongDetailRequest

type YouthChannelSongDetailRequest struct {
	Fileid             any               `json:"fileid,omitempty"`
	GlobalCollectionId any               `json:"global_collection_id,omitempty"`
	Cookie             map[string]string `json:"-"`
	Extra              map[string]any    `json:"-"`
}

type YouthChannelSongDetailResponse

type YouthChannelSongDetailResponse = Response

type YouthChannelSongRequest

type YouthChannelSongRequest struct {
	GlobalCollectionId any               `json:"global_collection_id,omitempty"`
	Page               any               `json:"page,omitempty"`
	Pagesize           any               `json:"pagesize,omitempty"`
	Cookie             map[string]string `json:"-"`
	Extra              map[string]any    `json:"-"`
}

type YouthChannelSongResponse

type YouthChannelSongResponse = Response

type YouthChannelSubRequest

type YouthChannelSubRequest struct {
	GlobalCollectionId any               `json:"global_collection_id,omitempty"`
	T                  int               `json:"t,omitempty"`
	Cookie             map[string]string `json:"-"`
	Extra              map[string]any    `json:"-"`
}

type YouthChannelSubResponse

type YouthChannelSubResponse = Response

type YouthDayVipRequest

type YouthDayVipRequest struct {
	ReceiveDay any               `json:"receive_day,omitempty"`
	Cookie     map[string]string `json:"-"`
	Extra      map[string]any    `json:"-"`
}

type YouthDayVipResponse

type YouthDayVipResponse = Response

type YouthDayVipUpgradeRequest

type YouthDayVipUpgradeRequest struct {
	Userid int               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YouthDayVipUpgradeResponse

type YouthDayVipUpgradeResponse = Response

type YouthDynamicRecentRequest

type YouthDynamicRecentRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YouthDynamicRecentResponse

type YouthDynamicRecentResponse = Response

type YouthDynamicRequest

type YouthDynamicRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YouthDynamicResponse

type YouthDynamicResponse = Response

type YouthListenSongRequest

type YouthListenSongRequest struct {
	Mixsongid int               `json:"mixsongid,omitempty"`
	Cookie    map[string]string `json:"-"`
	Extra     map[string]any    `json:"-"`
}

type YouthListenSongResponse

type YouthListenSongResponse = Response

type YouthMonthVipRecordRequest

type YouthMonthVipRecordRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YouthMonthVipRecordResponse

type YouthMonthVipRecordResponse = Response

type YouthUnionVipRequest

type YouthUnionVipRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YouthUnionVipResponse

type YouthUnionVipResponse = Response

type YouthUserSongRequest

type YouthUserSongRequest struct {
	Page     any               `json:"page,omitempty"`
	Pagesize any               `json:"pagesize,omitempty"`
	Type     int               `json:"type,omitempty"`
	Userid   any               `json:"userid,omitempty"`
	Cookie   map[string]string `json:"-"`
	Extra    map[string]any    `json:"-"`
}

type YouthUserSongResponse

type YouthUserSongResponse = Response

type YouthVipRequest

type YouthVipRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YouthVipResponse

type YouthVipResponse = Response

type YuekuBannerRequest

type YuekuBannerRequest struct {
	Userid any               `json:"userid,omitempty"`
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YuekuBannerResponse

type YuekuBannerResponse = Response

type YuekuFmRequest

type YuekuFmRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

type YuekuFmResponse

type YuekuFmResponse = Response

type YuekuRequest

type YuekuRequest struct {
	Cookie map[string]string `json:"-"`
	Extra  map[string]any    `json:"-"`
}

Yueku request and response models are split out to keep generated shards small.

type YuekuResponse

type YuekuResponse = Response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL