Documentation ¶
Index ¶
- Constants
- func DecryptFileName(send int, s string) string
- func DecryptUrlParams(s string) (sign string, buyKey, token, timestamp int)
- func HttpGet(url string, userAgent int) (*http.Response, error)
- func HttpGetByCookie(url, cookie string, userAgent int) (*http.Response, error)
- type AlbumInfo
- type AudioInfo
- type AudioInfoMobile
- type ChargeTrackInfo
- type Playlist
- type QRCode
- type QRCodeStatus
- type TrackInfo
- type TrackList
- type UserInfo
- type VipAudioInfo
- type Xmly
Constants ¶
View Source
const ( UserAgentPC = "" /* 129-byte string literal not displayed */ UserAgentAndroid = "ting_6.3.60(sdk,Android16)" )
View Source
const ( PC = iota Android )
View Source
const ( FreeAlbumType = iota //免费专辑类型 VipAlbumType //VIP专辑类型 PaidAlbumType //付费专辑类型 )
Variables ¶
This section is empty.
Functions ¶
func DecryptUrlParams ¶
DecryptUrlParams 解密URL参数
Types ¶
type AlbumInfo ¶
type AlbumInfo struct { Msg string `json:"msg"` Ret int `json:"ret"` CostTimeAlbumInfo int `json:"costTimeAlbumInfo"` Data struct { Album struct { AlbumID int `json:"albumId"` Title string `json:"title"` IsPaid bool `json:"isPaid"` TrackCount int `json:"tracks"` VipFreeType int `json:"vipFreeType"` PriceTypes []struct { FreeTrackIds string `json:"freeTrackIds"` FreeTrackCount int `json:"freeTrackCount"` } `json:"priceTypes"` IsFinished int `json:"isFinished"` } `json:"album"` } }
type AudioInfo ¶
type AudioInfo struct { TrackID int `json:"trackId"` TrackRecordID int `json:"trackRecordId"` UID int `json:"uid"` PlayURL64 string `json:"playUrl64"` //mp3 64kbps PlayURL32 string `json:"playUrl32"` //mp3 32kbps PlayPathHq string `json:"playPathHq"` PlayPathAacv164 string `json:"playPathAacv164"` //m4a 64kbps PlayPathAacv224 string `json:"playPathAacv224"` //m4a 24kbps Title string `json:"title"` Duration int `json:"duration"` AlbumID int `json:"albumId"` AlbumTitle string `json:"albumTitle"` AlbumImage string `json:"albumImage"` IsPaid bool `json:"isPaid"` IsFree bool `json:"isFree"` IsVideo bool `json:"isVideo"` IsDraft bool `json:"isDraft"` IsRichAudio bool `json:"isRichAudio"` IsAuthorized bool `json:"isAuthorized"` PriceTypeID int `json:"priceTypeId"` PriceTypeEnum int `json:"priceTypeEnum"` Type int `json:"type"` RelatedID int `json:"relatedId"` OrderNo int `json:"orderNo"` VipFirstStatus int `json:"vipFirstStatus"` PaidType int `json:"paidType"` }
AudioInfo Mobile接口的音频信息
func GetAllAudioInfo ¶
GetAllAudioInfo 获取所有音频信息
func GetAudioInfo ¶
GetAudioInfo 获取音频信息
type AudioInfoMobile ¶
type AudioInfoMobile struct { Msg string `json:"msg"` Ret int `json:"ret"` Data struct { List []struct { TrackID int `json:"trackId"` TrackRecordID int `json:"trackRecordId"` UID int `json:"uid"` PlayURL64 string `json:"playUrl64"` PlayURL32 string `json:"playUrl32"` PlayPathHq string `json:"playPathHq"` PlayPathAacv164 string `json:"playPathAacv164"` PlayPathAacv224 string `json:"playPathAacv224"` Title string `json:"title"` Duration int `json:"duration"` AlbumID int `json:"albumId"` IsPaid bool `json:"isPaid"` IsFree bool `json:"isFree"` IsVideo bool `json:"isVideo"` IsDraft bool `json:"isDraft"` IsRichAudio bool `json:"isRichAudio"` IsAuthorized bool `json:"isAuthorized"` Price float64 `json:"price"` DiscountedPrice float64 `json:"discountedPrice"` PriceTypeID int `json:"priceTypeId"` SampleDuration int `json:"sampleDuration"` PriceTypeEnum int `json:"priceTypeEnum"` DisplayPrice string `json:"displayPrice"` DisplayDiscountedPrice string `json:"displayDiscountedPrice"` VipPrice float64 `json:"vipPrice"` DisplayVipPrice string `json:"displayVipPrice"` Type int `json:"type"` RelatedID int `json:"relatedId"` OrderNo int `json:"orderNo"` IsHoldCopyright bool `json:"isHoldCopyright"` VipFirstStatus int `json:"vipFirstStatus"` PaidType int `json:"paidType"` IsSample bool `json:"isSample"` ProcessState int `json:"processState"` CreatedAt int64 `json:"createdAt"` CoverSmall string `json:"coverSmall"` CoverMiddle string `json:"coverMiddle"` CoverLarge string `json:"coverLarge"` Nickname string `json:"nickname"` SmallLogo string `json:"smallLogo"` UserSource int `json:"userSource"` OpType int `json:"opType"` IsPublic bool `json:"isPublic"` Likes int `json:"likes"` Playtimes int `json:"playtimes"` Comments int `json:"comments"` Shares int `json:"shares"` Status int `json:"status"` ExpireTime int64 `json:"expireTime"` IsTrailer bool `json:"isTrailer"` } `json:"list"` PageID int `json:"pageId"` PageSize int `json:"pageSize"` MaxPageID int `json:"maxPageId"` TotalCount int `json:"totalCount"` } `json:"data"` }
AudioInfoMobile Mobile接口
type ChargeTrackInfo ¶
type ChargeTrackInfo struct { Ret int `json:"ret"` Msg string `json:"msg"` TrackID int `json:"trackId"` UID int `json:"uid"` AlbumID int `json:"albumId"` Title string `json:"title"` Domain string `json:"domain"` TotalLength int `json:"totalLength"` SampleDuration int `json:"sampleDuration"` SampleLength int `json:"sampleLength"` IsAuthorized bool `json:"isAuthorized"` APIVersion string `json:"apiVersion"` Seed int `json:"seed"` FileID string `json:"fileId"` BuyKey string `json:"buyKey"` Duration int `json:"duration"` Ep string `json:"ep"` HighestQualityLevel int `json:"highestQualityLevel"` DownloadQualityLevel int `json:"downloadQualityLevel"` }
VipTrackInfo VIP音频信息(MobileAPI)
需使用 Java unidbg库 解密音频URL unidbg: https://github.com/zhkl0228/unidbg
type Playlist ¶
type Playlist struct { Msg string `json:"msg"` Ret int `json:"ret"` MaxPageID int `json:"maxPageId"` PageSize int `json:"pageSize"` List []*AudioInfo `json:"list"` PageID int `json:"pageId"` TotalCount int `json:"totalCount"` }
Playlist 播放列表
https://mobwsa.ximalaya.com/mobile/playlist/album/page?albumId=%d&pageId=%d
func GetAudioInfoListByPageID ¶
GetAudioInfoListByPageID 使用PageID获取音频信息列表
type QRCode ¶
type QRCode struct { Ret int `json:"ret"` Msg string `json:"msg"` QrID string `json:"qrId"` Img string `json:"img"` }
QRCode 二维码
type QRCodeStatus ¶
type QRCodeStatus struct { Ret int `json:"ret"` Msg string `json:"msg"` BizKey interface{} `json:"bizKey"` UID int `json:"uid"` Token interface{} `json:"token"` UserType interface{} `json:"userType"` IsFirst bool `json:"isFirst"` ToSetPwd bool `json:"toSetPwd"` LoginType string `json:"loginType"` MobileMask string `json:"mobileMask"` MobileCipher string `json:"mobileCipher"` CaptchaInfo interface{} `json:"captchaInfo"` Avatar interface{} `json:"avatar"` ThirdpartyAvatar interface{} `json:"thirdpartyAvatar"` ThirdpartyNickname interface{} `json:"thirdpartyNickname"` SmsKey interface{} `json:"smsKey"` ThirdpartyID interface{} `json:"thirdpartyId"` }
QRCodeStatus 二维码状态
func CheckQRCodeStatus ¶
func CheckQRCodeStatus(qrID string) (status *QRCodeStatus, cookie string, err error)
CheckQRCodeStatus 检查二维码的状态
type TrackInfo ¶
type TrackInfo struct { TrackID int `json:"trackId"` TrackRecordID int `json:"trackRecordId"` UID int `json:"uid"` PlayURL64 string `json:"playUrl64"` PlayURL32 string `json:"playUrl32"` PlayPathAacv164 string `json:"playPathAacv164"` PlayPathAacv224 string `json:"playPathAacv224"` Title string `json:"title"` Duration int `json:"duration"` AlbumID int `json:"albumId"` IsPaid bool `json:"isPaid"` IsFree bool `json:"isFree"` IsVideo bool `json:"isVideo"` IsDraft bool `json:"isDraft"` IsRichAudio bool `json:"isRichAudio"` IsAuthorized bool `json:"isAuthorized"` Price float64 `json:"price"` DiscountedPrice float64 `json:"discountedPrice"` PriceTypeID int `json:"priceTypeId"` SampleDuration int `json:"sampleDuration"` PriceTypeEnum int `json:"priceTypeEnum"` DisplayPrice string `json:"displayPrice"` DisplayDiscountedPrice string `json:"displayDiscountedPrice"` Type int `json:"type"` RelatedID int `json:"relatedId"` OrderNo int `json:"orderNo"` IsHoldCopyright bool `json:"isHoldCopyright"` VipFirstStatus int `json:"vipFirstStatus"` PaidType int `json:"paidType"` IsSample bool `json:"isSample"` ProcessState int `json:"processState"` CreatedAt int64 `json:"createdAt"` CoverSmall string `json:"coverSmall"` CoverMiddle string `json:"coverMiddle"` CoverLarge string `json:"coverLarge"` Nickname string `json:"nickname"` SmallLogo string `json:"smallLogo"` UserSource int `json:"userSource"` OpType int `json:"opType"` IsPublic bool `json:"isPublic"` Likes int `json:"likes"` Playtimes int `json:"playtimes"` Comments int `json:"comments"` Status int `json:"status"` IsTrailer bool `json:"isTrailer"` }
TrackInfo 音频信息(MobileV1API)
TrackList
type TrackList ¶
type TrackList struct { Msg string `json:"msg"` Ret int `json:"ret"` Data struct { List []*TrackInfo `json:"list"` PageID int `json:"pageId"` PageSize int `json:"pageSize"` MaxPageID int `json:"maxPageId"` TotalCount int `json:"totalCount"` } `json:"data"` }
TrackList 音频列表(MobileV1API)
type UserInfo ¶
type UserInfo struct { Ret int `json:"ret"` Msg string `json:"msg"` Data struct { UID int `json:"uid"` RealUID int `json:"realUid"` Nickname string `json:"nickname"` LogoPic string `json:"logoPic"` IsLoginBan bool `json:"isLoginBan"` IsVerified bool `json:"isVerified"` Ptitle interface{} `json:"ptitle"` Mobile string `json:"mobile"` IsRobot bool `json:"isRobot"` VerifyType int `json:"verifyType"` IsVip bool `json:"isVip"` VipExpireTime int `json:"vipExpireTime"` AnchorGrade int `json:"anchorGrade"` UserGrade int `json:"userGrade"` UserTitle interface{} `json:"userTitle"` LogoType int `json:"logoType"` } `json:"data"` }
UserInfo 用户信息
type VipAudioInfo ¶
type VipAudioInfo struct { Ret int `json:"ret"` Msg string `json:"msg"` TrackID int `json:"trackId"` UID int `json:"uid"` AlbumID int `json:"albumId"` Title string `json:"title"` Domain string `json:"domain"` TotalLength int `json:"totalLength"` SampleDuration int `json:"sampleDuration"` SampleLength int `json:"sampleLength"` IsAuthorized bool `json:"isAuthorized"` APIVersion string `json:"apiVersion"` Seed int `json:"seed"` FileID string `json:"fileId"` BuyKey string `json:"buyKey"` Duration int `json:"duration"` Ep string `json:"ep"` HighestQualityLevel int `json:"highestQualityLevel"` DownloadQualityLevel int `json:"downloadQualityLevel"` AuthorizedType int `json:"authorizedType"` }
VipAudioInfo VIP音频信息(WebAPI)
需使用 DecryptFileName(send, fileId) 与 DecryptUrlParams(ep) 解密音频URL
Click to show internal directories.
Click to hide internal directories.