add new youtubedl dependency
This commit is contained in:
153
downloader/vendor/github.com/kkdai/youtube/v2/response_data.go
generated
vendored
Normal file
153
downloader/vendor/github.com/kkdai/youtube/v2/response_data.go
generated
vendored
Normal file
@@ -0,0 +1,153 @@
|
||||
package youtube
|
||||
|
||||
type playerResponseData struct {
|
||||
Captions struct {
|
||||
PlayerCaptionsTracklistRenderer struct {
|
||||
CaptionTracks []CaptionTrack `json:"captionTracks"`
|
||||
AudioTracks []struct {
|
||||
CaptionTrackIndices []int `json:"captionTrackIndices"`
|
||||
} `json:"audioTracks"`
|
||||
TranslationLanguages []struct {
|
||||
LanguageCode string `json:"languageCode"`
|
||||
LanguageName struct {
|
||||
SimpleText string `json:"simpleText"`
|
||||
} `json:"languageName"`
|
||||
} `json:"translationLanguages"`
|
||||
DefaultAudioTrackIndex int `json:"defaultAudioTrackIndex"`
|
||||
} `json:"playerCaptionsTracklistRenderer"`
|
||||
} `json:"captions"`
|
||||
|
||||
PlayabilityStatus struct {
|
||||
Status string `json:"status"`
|
||||
Reason string `json:"reason"`
|
||||
PlayableInEmbed bool `json:"playableInEmbed"`
|
||||
Miniplayer struct {
|
||||
MiniplayerRenderer struct {
|
||||
PlaybackMode string `json:"playbackMode"`
|
||||
} `json:"miniplayerRenderer"`
|
||||
} `json:"miniplayer"`
|
||||
ContextParams string `json:"contextParams"`
|
||||
} `json:"playabilityStatus"`
|
||||
StreamingData struct {
|
||||
ExpiresInSeconds string `json:"expiresInSeconds"`
|
||||
Formats []Format `json:"formats"`
|
||||
AdaptiveFormats []Format `json:"adaptiveFormats"`
|
||||
DashManifestURL string `json:"dashManifestUrl"`
|
||||
HlsManifestURL string `json:"hlsManifestUrl"`
|
||||
} `json:"streamingData"`
|
||||
VideoDetails struct {
|
||||
VideoID string `json:"videoId"`
|
||||
Title string `json:"title"`
|
||||
LengthSeconds string `json:"lengthSeconds"`
|
||||
Keywords []string `json:"keywords"`
|
||||
ChannelID string `json:"channelId"`
|
||||
IsOwnerViewing bool `json:"isOwnerViewing"`
|
||||
ShortDescription string `json:"shortDescription"`
|
||||
IsCrawlable bool `json:"isCrawlable"`
|
||||
Thumbnail struct {
|
||||
Thumbnails []Thumbnail `json:"thumbnails"`
|
||||
} `json:"thumbnail"`
|
||||
AverageRating float64 `json:"averageRating"`
|
||||
AllowRatings bool `json:"allowRatings"`
|
||||
ViewCount string `json:"viewCount"`
|
||||
Author string `json:"author"`
|
||||
IsPrivate bool `json:"isPrivate"`
|
||||
IsUnpluggedCorpus bool `json:"isUnpluggedCorpus"`
|
||||
IsLiveContent bool `json:"isLiveContent"`
|
||||
} `json:"videoDetails"`
|
||||
Microformat struct {
|
||||
PlayerMicroformatRenderer struct {
|
||||
Thumbnail struct {
|
||||
Thumbnails []struct {
|
||||
URL string `json:"url"`
|
||||
Width int `json:"width"`
|
||||
Height int `json:"height"`
|
||||
} `json:"thumbnails"`
|
||||
} `json:"thumbnail"`
|
||||
Title struct {
|
||||
SimpleText string `json:"simpleText"`
|
||||
} `json:"title"`
|
||||
Description struct {
|
||||
SimpleText string `json:"simpleText"`
|
||||
} `json:"description"`
|
||||
LengthSeconds string `json:"lengthSeconds"`
|
||||
OwnerProfileURL string `json:"ownerProfileUrl"`
|
||||
ExternalChannelID string `json:"externalChannelId"`
|
||||
IsFamilySafe bool `json:"isFamilySafe"`
|
||||
AvailableCountries []string `json:"availableCountries"`
|
||||
IsUnlisted bool `json:"isUnlisted"`
|
||||
HasYpcMetadata bool `json:"hasYpcMetadata"`
|
||||
ViewCount string `json:"viewCount"`
|
||||
Category string `json:"category"`
|
||||
PublishDate string `json:"publishDate"`
|
||||
OwnerChannelName string `json:"ownerChannelName"`
|
||||
UploadDate string `json:"uploadDate"`
|
||||
} `json:"playerMicroformatRenderer"`
|
||||
} `json:"microformat"`
|
||||
}
|
||||
|
||||
type Format struct {
|
||||
ItagNo int `json:"itag"`
|
||||
URL string `json:"url"`
|
||||
MimeType string `json:"mimeType"`
|
||||
Quality string `json:"quality"`
|
||||
Cipher string `json:"signatureCipher"`
|
||||
Bitrate int `json:"bitrate"`
|
||||
FPS int `json:"fps"`
|
||||
Width int `json:"width"`
|
||||
Height int `json:"height"`
|
||||
LastModified string `json:"lastModified"`
|
||||
ContentLength int64 `json:"contentLength,string"`
|
||||
QualityLabel string `json:"qualityLabel"`
|
||||
ProjectionType string `json:"projectionType"`
|
||||
AverageBitrate int `json:"averageBitrate"`
|
||||
AudioQuality string `json:"audioQuality"`
|
||||
ApproxDurationMs string `json:"approxDurationMs"`
|
||||
AudioSampleRate string `json:"audioSampleRate"`
|
||||
AudioChannels int `json:"audioChannels"`
|
||||
|
||||
// InitRange is only available for adaptive formats
|
||||
InitRange *struct {
|
||||
Start string `json:"start"`
|
||||
End string `json:"end"`
|
||||
} `json:"initRange"`
|
||||
|
||||
// IndexRange is only available for adaptive formats
|
||||
IndexRange *struct {
|
||||
Start string `json:"start"`
|
||||
End string `json:"end"`
|
||||
} `json:"indexRange"`
|
||||
|
||||
// AudioTrack is only available for videos with multiple audio track languages
|
||||
AudioTrack *struct {
|
||||
DisplayName string `json:"displayName"`
|
||||
ID string `json:"id"`
|
||||
AudioIsDefault bool `json:"audioIsDefault"`
|
||||
}
|
||||
}
|
||||
|
||||
func (f *Format) LanguageDisplayName() string {
|
||||
if f.AudioTrack == nil {
|
||||
return ""
|
||||
}
|
||||
return f.AudioTrack.DisplayName
|
||||
}
|
||||
|
||||
type Thumbnails []Thumbnail
|
||||
|
||||
type Thumbnail struct {
|
||||
URL string
|
||||
Width uint
|
||||
Height uint
|
||||
}
|
||||
|
||||
type CaptionTrack struct {
|
||||
BaseURL string `json:"baseUrl"`
|
||||
Name struct {
|
||||
SimpleText string `json:"simpleText"`
|
||||
} `json:"name"`
|
||||
VssID string `json:"vssId"`
|
||||
LanguageCode string `json:"languageCode"`
|
||||
Kind string `json:"kind,omitempty"`
|
||||
IsTranslatable bool `json:"isTranslatable"`
|
||||
}
|
Reference in New Issue
Block a user