はじめに
Go で YouTube Data API を使ってみます。
YouTube Data API
YouTube Data API を使うと、YouTube に関する様々な操作が可能です。
可能な操作は下記になります。動画の検索やチャンネルの取得、動画のコメントやプレイリストの取得など様々なことが可能です。

API Reference | YouTube Data API | Google for Developers
準備
まずは、YouTube Data API を使うための事前準備をします。GCP のプロジェクトがあることを前提としています。
API ライブラリから"YouTube Data API v3"を検索します。
"有効にする"をクリックして、API を有効化します。
API を呼び出すための API キーを作成します。
作成した API キーを YouTube Data API のみ制限しておきます。
Go で YouTube Data API
次に、Go で YouTube Data API を使っていきます。
Go では下記のパッケージが用意されています。
youtube package - google.golang.org/api/youtube/v3 - Go Packages
PackageyoutubeprovidesaccesstotheYouTubeDataAPIv3.
まずは作成した API キーを.env
に追加しておきます。
API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
下記が YouTube Data API を使って、動画を検索し、そのヒット数を出力するサンプルです。
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/joho/godotenv"
"google.golang.org/api/option"
"google.golang.org/api/youtube/v3"
)
// .envからAPIキーの取得
func getApiKey() string {
err := godotenv.Load()
if err != nil {
log.Fatalf("Unable to read env file: %v", err)
}
apiKey := os.Getenv("API_KEY")
return apiKey
}
func handleError(err error, message string) {
if message == "" {
message = "Error making API call"
}
if err != nil {
log.Fatalf(message + ": %v", err.Error())
}
}
// queryを使って動画の検索
// 検索結果のヒット数を出力
func searchByKeyword(service *youtube.Service, part string, query string) {
call := service.Search.List([]string{part}). // 検索
Q(query). // 検索クエリ
Type("video"). // 検索対象の種類
Order("viewCount"). // 検索結果を閲覧数でソート
MaxResults(5) // 取得する検索結果の動画数の最大
response, err := call.Do()
handleError(err, "")
fmt.Printf("%s: %d\n", query, response.PageInfo.TotalResults)
}
func main() {
ctx := context.Background()
apiKey := getApiKey()
// APIキーを使ってクライアントの作成
service, err := youtube.NewService(ctx, option.WithAPIKey(apiKey))
handleError(err, "Error creating YouTube client")
queries := [...] string{
`"HHKB Professional HYBRID Type-S"`,
`"NuPhy Air75"`,
`"MX Keys Mini"`,
}
for _, query := range queries {
searchByKeyword(service, "snippet", query)
}
}
設定できるパラメータは下記で確認できます。

Search: list | YouTube Data API | Google for Developers
検索 API のレスポンスは下記で確認できます。

Search: list | YouTube Data API | Google for Developers