package youtube import ( "github.com/rylio/ytdl" "errors" "os" ) func Get(url string) (string, error) { v, err := ytdl.GetVideoInfo(url) if err != nil { return "", err } if len(v.Formats.Best(ytdl.FormatResolutionKey)) < 1 { return "", errors.New("not found") } u, err := v.GetDownloadURL(v.Formats.Best(ytdl.FormatResolutionKey)[0]) if err != nil { return "", err } return u.String(), nil } func Download(url string, file string) error { v, err := ytdl.GetVideoInfo(url) if err != nil { return err } if len(v.Formats.Best(ytdl.FormatResolutionKey)) < 1 { return errors.New("not found") } format := v.Formats.Best(ytdl.FormatResolutionKey)[0] f, err := os.Create(file) if err != nil { return err } defer f.Close() return v.Download(format, f) }