package models

type DyJieXiInput struct {
	Url string `json:"url"` //短视频url
}

type DyJieXiOutput struct {
	OutputBase
	Data DyJieXiData `json:"data"`
}

type DyJieXiData struct {
	VideoUrl string `json:"videoUrl"` //无水印url
	AudioUrl string `json:"audioUrl"` //音频url
	VideoPic string `json:"videoPic"` //文案
	Desc     string `json:"desc"`     //封面
}

type DyJieXi struct {
	ItemList   []ItemList `json:"item_list"`
	Extra      Extra      `json:"extra"`
	StatusCode int        `json:"status_code"`
}
type CoverHd struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type CoverLarge struct {
	URLList []string `json:"url_list"`
	URI     string   `json:"uri"`
}
type CoverMedium struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type CoverThumb struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type PlayURL struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type Music struct {
	Title       string      `json:"title"`
	Author      string      `json:"author"`
	CoverHd     CoverHd     `json:"cover_hd"`
	Duration    int         `json:"duration"`
	Position    interface{} `json:"position"`
	ID          int64       `json:"id"`
	CoverLarge  CoverLarge  `json:"cover_large"`
	CoverMedium CoverMedium `json:"cover_medium"`
	CoverThumb  CoverThumb  `json:"cover_thumb"`
	PlayURL     PlayURL     `json:"play_url"`
	Status      int         `json:"status"`
	Mid         string      `json:"mid"`
}
type DynamicCover struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type OriginCover struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type PlayAddr struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type Cover struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type Video struct {
	Duration     int          `json:"duration"`
	Height       int          `json:"height"`
	DynamicCover DynamicCover `json:"dynamic_cover"`
	OriginCover  OriginCover  `json:"origin_cover"`
	Ratio        string       `json:"ratio"`
	HasWatermark bool         `json:"has_watermark"`
	PlayAddr     PlayAddr     `json:"play_addr"`
	Cover        Cover        `json:"cover"`
	Width        int          `json:"width"`
	BitRate      interface{}  `json:"bit_rate"`
	Vid          string       `json:"vid"`
}
type Statistics struct {
	AwemeID      string `json:"aweme_id"`
	CommentCount int    `json:"comment_count"`
	DiggCount    int    `json:"digg_count"`
	PlayCount    int    `json:"play_count"`
}
type AvatarLarger struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type AvatarThumb struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type AvatarMedium struct {
	URI     string   `json:"uri"`
	URLList []string `json:"url_list"`
}
type Author struct {
	UID              string       `json:"uid"`
	ShortID          string       `json:"short_id"`
	Nickname         string       `json:"nickname"`
	AvatarLarger     AvatarLarger `json:"avatar_larger"`
	AvatarThumb      AvatarThumb  `json:"avatar_thumb"`
	UniqueID         string       `json:"unique_id"`
	FollowersDetail  interface{}  `json:"followers_detail"`
	Geofencing       interface{}  `json:"geofencing"`
	PolicyVersion    interface{}  `json:"policy_version"`
	Signature        string       `json:"signature"`
	AvatarMedium     AvatarMedium `json:"avatar_medium"`
	PlatformSyncInfo interface{}  `json:"platform_sync_info"`
	TypeLabel        interface{}  `json:"type_label"`
}
type TextExtra struct {
	HashtagID   int64  `json:"hashtag_id"`
	Start       int    `json:"start"`
	End         int    `json:"end"`
	Type        int    `json:"type"`
	HashtagName string `json:"hashtag_name"`
}
type ChaList struct {
	ChaName        string      `json:"cha_name"`
	UserCount      int         `json:"user_count"`
	Type           int         `json:"type"`
	IsCommerce     bool        `json:"is_commerce"`
	Cid            string      `json:"cid"`
	Desc           string      `json:"desc"`
	ConnectMusic   interface{} `json:"connect_music"`
	ViewCount      int         `json:"view_count"`
	HashTagProfile string      `json:"hash_tag_profile"`
}
type ShareInfo struct {
	ShareWeiboDesc string `json:"share_weibo_desc"`
	ShareDesc      string `json:"share_desc"`
	ShareTitle     string `json:"share_title"`
}
type RiskInfos struct {
	Type    int    `json:"type"`
	Content string `json:"content"`
	Warn    bool   `json:"warn"`
}
type ItemList struct {
	Desc         string      `json:"desc"`
	CreateTime   int         `json:"create_time"`
	IsLiveReplay bool        `json:"is_live_replay"`
	Music        Music       `json:"music"`
	GroupID      int64       `json:"group_id"`
	Images       interface{} `json:"images"`
	Video        Video       `json:"video"`
	Duration     int         `json:"duration"`
	ShareURL     string      `json:"share_url"`
	VideoLabels  interface{} `json:"video_labels"`
	Statistics   Statistics  `json:"statistics"`
	ImageInfos   interface{} `json:"image_infos"`
	VideoText    interface{} `json:"video_text"`
	Author       Author      `json:"author"`
	TextExtra    []TextExtra `json:"text_extra"`
	Promotions   interface{} `json:"promotions"`
	LongVideo    interface{} `json:"long_video"`
	ChaList      []ChaList   `json:"cha_list"`
	ShareInfo    ShareInfo   `json:"share_info"`
	CommentList  interface{} `json:"comment_list"`
	AuthorUserID int64       `json:"author_user_id"`
	IsPreview    int         `json:"is_preview"`
	AwemeID      string      `json:"aweme_id"`
	AwemeType    int         `json:"aweme_type"`
	RiskInfos    RiskInfos   `json:"risk_infos"`
	Geofencing   interface{} `json:"geofencing"`
	LabelTopText interface{} `json:"label_top_text"`
	ForwardID    string      `json:"forward_id"`
}
type Extra struct {
	Now   int64  `json:"now"`
	Logid string `json:"logid"`
}