A simple youtube-dl library for go.
See the main page for youtube-dl for more information.
go get github.com/BrianAllred/goydl
See the documentation for youtube-dl first to understand what it does and how it does it.
-
Create a new youtubeDl client:
youtubeDl := goydl.NewYoutubeDl()
-
The Options object contains the various youtube-dl download parameters:
youtubeDl.Options.Output.Value = "/path/to/downloads/video.mp3" youtubeDl.Options.ExtractAudio.Value = true youtubeDl.Options.AudioFormat.Value = "mp3" // Or update the binary youtubeDl.Options.Update.Value = true // Optional, required if binary is not in $PATH youtubeDl.YoutubeDlPath = "/path/to/youtube-dl"
-
Listen to console output (optional, but recommended):
go io.Copy(os.Stdout, youtubeDl.Stdout) go io.Copy(os.Stderr, youtubeDl.Stderr)
-
Start the download:
cmd, err := youtubeDl.Download("http://videosite.com/videoURL") if err != nil { log.Fatal(err) }
-
Check the video's info:
fmt.Printf("Title: %s\n", youtubeDl.Info.Title)
-
Wait for the download to finish:
// Synchronously: cmd.Wait() // Asynchronously: defer cmd.Wait()