Documentation ¶
Index ¶
- Variables
- type Format
- type FormatKey
- type FormatList
- func (formats FormatList) Best(key FormatKey) FormatList
- func (formats FormatList) Copy() FormatList
- func (formats FormatList) Extremes(key FormatKey, best bool) FormatList
- func (formats FormatList) Filter(key FormatKey, values []interface{}) FormatList
- func (formats FormatList) Sort(key FormatKey, reverse bool)
- func (formats FormatList) Subtract(other FormatList) FormatList
- func (formats FormatList) Worst(key FormatKey) FormatList
- type ThumbnailQuality
- type VideoInfo
Constants ¶
This section is empty.
Variables ¶
var FORMATS = map[int]Format{ 5: Format{ Extension: "flv", Resolution: "240p", VideoEncoding: "Sorenson H.283", AudioEncoding: "mp3", Itag: 5, AudioBitrate: 64, }, 6: Format{ Extension: "flv", Resolution: "270p", VideoEncoding: "Sorenson H.263", AudioEncoding: "mp3", Itag: 6, AudioBitrate: 64, }, 13: Format{ Extension: "3gp", Resolution: "", VideoEncoding: "MPEG-4 Visual", AudioEncoding: "aac", Itag: 13, AudioBitrate: 0, }, 17: Format{ Extension: "3gp", Resolution: "144p", VideoEncoding: "MPEG-4 Visual", AudioEncoding: "aac", Itag: 17, AudioBitrate: 24, }, 18: Format{ Extension: "mp4", Resolution: "360p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 18, AudioBitrate: 96, }, 22: Format{ Extension: "mp4", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 22, AudioBitrate: 192, }, 34: Format{ Extension: "flv", Resolution: "480p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 34, AudioBitrate: 128, }, 35: Format{ Extension: "flv", Resolution: "360p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 35, AudioBitrate: 128, }, 36: Format{ Extension: "3gp", Resolution: "240p", VideoEncoding: "MPEG-4 Visual", AudioEncoding: "aac", Itag: 36, AudioBitrate: 36, }, 37: Format{ Extension: "mp4", Resolution: "1080p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 37, AudioBitrate: 192, }, 38: Format{ Extension: "mp4", Resolution: "3072p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 38, AudioBitrate: 192, }, 43: Format{ Extension: "webm", Resolution: "360p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 43, AudioBitrate: 128, }, 44: Format{ Extension: "webm", Resolution: "480p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 44, AudioBitrate: 128, }, 45: Format{ Extension: "webm", Resolution: "720p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 45, AudioBitrate: 192, }, 46: Format{ Extension: "webm", Resolution: "1080p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 46, AudioBitrate: 192, }, 82: Format{ Extension: "mp4", Resolution: "360p", VideoEncoding: "H.264", Itag: 82, AudioBitrate: 96, }, 83: Format{ Extension: "mp4", Resolution: "240p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 83, AudioBitrate: 96, }, 84: Format{ Extension: "mp4", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 84, AudioBitrate: 192, }, 85: Format{ Extension: "mp4", Resolution: "1080p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 85, AudioBitrate: 192, }, 100: Format{ Extension: "webm", Resolution: "360p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 100, AudioBitrate: 128, }, 101: Format{ Extension: "webm", Resolution: "360p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 101, AudioBitrate: 192, }, 102: Format{ Extension: "webm", Resolution: "720p", VideoEncoding: "VP8", AudioEncoding: "vorbis", Itag: 102, AudioBitrate: 192, }, 133: Format{ Extension: "mp4", Resolution: "240p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 133, AudioBitrate: 0, }, 134: Format{ Extension: "mp4", Resolution: "360p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 134, AudioBitrate: 0, }, 135: Format{ Extension: "mp4", Resolution: "480p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 135, AudioBitrate: 0, }, 136: Format{ Extension: "mp4", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 136, AudioBitrate: 0, }, 137: Format{ Extension: "mp4", Resolution: "1080p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 137, AudioBitrate: 0, }, 138: Format{ Extension: "mp4", Resolution: "2160p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 138, AudioBitrate: 0, }, 160: Format{ Extension: "mp4", Resolution: "144p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 160, AudioBitrate: 0, }, 242: Format{ Extension: "webm", Resolution: "240p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 242, AudioBitrate: 0, }, 243: Format{ Extension: "webm", Resolution: "360p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 243, AudioBitrate: 0, }, 244: Format{ Extension: "webm", Resolution: "480p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 244, AudioBitrate: 0, }, 247: Format{ Extension: "webm", Resolution: "720p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 247, AudioBitrate: 0, }, 248: Format{ Extension: "webm", Resolution: "1080p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 248, AudioBitrate: 9, }, 264: Format{ Extension: "mp4", Resolution: "1440p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 264, AudioBitrate: 0, }, 266: Format{ Extension: "mp4", Resolution: "2160p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 266, AudioBitrate: 0, }, 271: Format{ Extension: "webm", Resolution: "1440p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 271, AudioBitrate: 0, }, 272: Format{ Extension: "webm", Resolution: "2160p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 272, AudioBitrate: 0, }, 278: Format{ Extension: "webm", Resolution: "144p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 278, AudioBitrate: 0, }, 298: Format{ Extension: "mp4", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 298, AudioBitrate: 0, }, 299: Format{ Extension: "mp4", Resolution: "1080p", VideoEncoding: "H.264", AudioEncoding: "", Itag: 299, AudioBitrate: 0, }, 302: Format{ Extension: "webm", Resolution: "720p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 302, AudioBitrate: 0, }, 303: Format{ Extension: "webm", Resolution: "1080p", VideoEncoding: "VP9", AudioEncoding: "", Itag: 303, AudioBitrate: 0, }, 139: Format{ Extension: "mp4", Resolution: "", VideoEncoding: "", AudioEncoding: "aac", Itag: 139, AudioBitrate: 48, }, 140: Format{ Extension: "mp4", Resolution: "", VideoEncoding: "", AudioEncoding: "aac", Itag: 140, AudioBitrate: 128, }, 141: Format{ Extension: "mp4", Resolution: "", VideoEncoding: "", AudioEncoding: "aac", Itag: 141, AudioBitrate: 256, }, 171: Format{ Extension: "webm", Resolution: "", VideoEncoding: "", AudioEncoding: "vorbis", Itag: 171, AudioBitrate: 128, }, 172: Format{ Extension: "webm", Resolution: "", VideoEncoding: "", AudioEncoding: "vorbis", Itag: 172, AudioBitrate: 192, }, 249: Format{ Extension: "webm", Resolution: "", VideoEncoding: "", AudioEncoding: "opus", Itag: 249, AudioBitrate: 50, }, 250: Format{ Extension: "webm", Resolution: "", VideoEncoding: "", AudioEncoding: "opus", Itag: 250, AudioBitrate: 70, }, 251: Format{ Extension: "webm", Resolution: "", VideoEncoding: "", AudioEncoding: "opus", Itag: 251, AudioBitrate: 160, }, 92: Format{ Extension: "ts", Resolution: "240p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 92, AudioBitrate: 48, }, 93: Format{ Extension: "ts", Resolution: "480p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 93, AudioBitrate: 128, }, 94: Format{ Extension: "ts", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 94, AudioBitrate: 128, }, 95: Format{ Extension: "ts", Resolution: "1080p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 95, AudioBitrate: 256, }, 96: Format{ Extension: "ts", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 96, AudioBitrate: 256, }, 120: Format{ Extension: "flv", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 120, AudioBitrate: 128, }, 127: Format{ Extension: "ts", Resolution: "", VideoEncoding: "", AudioEncoding: "aac", Itag: 127, AudioBitrate: 96, }, 128: Format{ Extension: "ts", Resolution: "", VideoEncoding: "", AudioEncoding: "aac", Itag: 128, AudioBitrate: 96, }, 132: Format{ Extension: "ts", Resolution: "240p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 132, AudioBitrate: 48, }, 151: Format{ Extension: "ts", Resolution: "720p", VideoEncoding: "H.264", AudioEncoding: "aac", Itag: 151, AudioBitrate: 24, }, }
FORMATS is a map of all itags and their formats
Functions ¶
This section is empty.
Types ¶
type Format ¶
type Format struct { Itag int `json:"itag"` Extension string `json:"extension"` Resolution string `json:"resolution"` VideoEncoding string `json:"videoEncoding"` AudioEncoding string `json:"audioEncoding"` AudioBitrate int `json:"audioBitrate"` // contains filtered or unexported fields }
Format is a youtube is a static youtube video format
func (Format) CompareKey ¶ added in v0.5.0
func (Format) ValueForKey ¶ added in v0.4.0
ValueForKey gets the format value for a format key, used for filtering
type FormatKey ¶
type FormatKey string
FormatKey is a string type containing a key in a video format map
type FormatList ¶ added in v0.5.0
type FormatList []Format
FormatList is a slice of formats with filtering functionality
func (FormatList) Best ¶ added in v0.5.0
func (formats FormatList) Best(key FormatKey) FormatList
func (FormatList) Copy ¶ added in v0.5.0
func (formats FormatList) Copy() FormatList
func (FormatList) Extremes ¶ added in v0.5.0
func (formats FormatList) Extremes(key FormatKey, best bool) FormatList
func (FormatList) Filter ¶ added in v0.5.0
func (formats FormatList) Filter(key FormatKey, values []interface{}) FormatList
func (FormatList) Sort ¶ added in v0.5.0
func (formats FormatList) Sort(key FormatKey, reverse bool)
func (FormatList) Subtract ¶ added in v0.5.0
func (formats FormatList) Subtract(other FormatList) FormatList
func (FormatList) Worst ¶ added in v0.5.0
func (formats FormatList) Worst(key FormatKey) FormatList
type ThumbnailQuality ¶
type ThumbnailQuality string
ThumbnailQuality is a youtube thumbnail quality option
const ThumbnailQualityDefault ThumbnailQuality = "default"
ThumbnailQualityDefault is the default quality thumbnail jpg
const ThumbnailQualityHigh ThumbnailQuality = "hqdefault"
ThumbnailQualityHigh is the high quality thumbnail jpg
const ThumbnailQualityMaxRes ThumbnailQuality = "maxresdefault"
ThumbnailQualityMaxRes is the maximum resolution quality jpg
const ThumbnailQualityMedium ThumbnailQuality = "mqdefault"
ThumbnailQualityMedium is the medium quality thumbnail jpg
const ThumbnailQualitySD ThumbnailQuality = "sddefault"
ThumbnailQualitySD is the standard def quality thumbnail jpg
type VideoInfo ¶ added in v0.3.0
type VideoInfo struct { // The video ID ID string `json:"id"` // The video title Title string `json:"title"` // The video description Description string `json:"description"` // The date the video was published DatePublished time.Time `json:"datePublished"` // Formats the video is available in Formats FormatList `json:"formats"` // List of keywords associated with the video Keywords []string `json:"keywords"` // Author of the video Author string `json:"author"` // Duration of the video Duration time.Duration // contains filtered or unexported fields }
VideoInfo contains the info a youtube video
func GetVideoInfo ¶ added in v0.3.0
GetVideoInfo fetches info from a url string, url object, or a url string
func GetVideoInfoFromID ¶ added in v0.3.0
GetVideoInfoFromID fetches video info from a youtube video id
func GetVideoInfoFromURL ¶ added in v0.3.0
GetVideoInfoFromURL fetches video info from a youtube url
func (*VideoInfo) Download ¶ added in v0.3.0
Download is a convenience method to download a format to an io.Writer
func (*VideoInfo) GetDownloadURL ¶ added in v0.3.0
GetDownloadURL gets the download url for a format
func (*VideoInfo) GetThumbnailURL ¶ added in v0.3.0
func (info *VideoInfo) GetThumbnailURL(quality ThumbnailQuality) *url.URL
GetThumbnailURL returns a url for the thumbnail image with the given quality