Small package for searching Youtube videos and getting information about them. It can read video formats and also does signature descrambling so the library can be easily used to download videos.
Full documentation can be found at: http://godoc.org/github.com/adrg/youtube-go
go get github.com/adrg/youtube-go
package main
import (
"fmt"
youtube "github.com/adrg/youtube-go"
)
func main() {
video, err := youtube.GetVideo("uFknAPhEcQM")
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("Title: %s\n", video.Title)
fmt.Printf("Id: %s\n", video.Id)
fmt.Printf("Duration: %d\n", video.Duration)
fmt.Printf("Description: %s\n", video.Description)
fmt.Printf("View count: %d\n", video.ViewCount)
fmt.Printf("Rating: %f\n", video.Rating)
fmt.Println("Formats:")
for _, f := range video.Formats {
fmt.Printf(" * %d - %s %s ===\n", f.Itag, f.Type, f.Quality)
fmt.Printf(" URL: %s\n", f.URL)
}
}
package main
import (
"fmt"
youtube "github.com/adrg/youtube-go"
)
func main() {
// The search parameters include the query, the page you want
// to get results for and the maximum results allowed
searchParams := &youtube.SearchParams{"amv", 1, 3}
videos, err := youtube.Search(searchParams)
if err != nil {
fmt.Println(err)
return
}
for _, video := range videos {
if err = video.ReadFormats(); err != nil {
fmt.Println(err)
// Handle error here
}
fmt.Printf("Title: %s\n", video.Title)
fmt.Printf("Id: %s\n", video.Id)
fmt.Printf("Duration: %d\n", video.Duration)
fmt.Printf("Description: %s\n", video.Description)
fmt.Printf("View count: %d\n", video.ViewCount)
fmt.Printf("Rating: %f\n", video.Rating)
fmt.Println("Formats:")
for _, f := range video.Formats {
fmt.Printf(" * %d - %s %s ===\n", f.Itag, f.Type, f.Quality)
fmt.Printf(" URL: %s\n", f.URL)
}
fmt.Println()
}
}
Copyright (c) 2015 Adrian-George Bostan.
This project is licensed under the MIT license. See LICENSE for more details.