Golang で YouTube Data API を使用して動画のコメントを取得します。
Requirement
- Golang 1.11
- Youtube API Key
- 取得方法はここでは説明しません
準備
- ライブラリのインストール
$ go get google.golang.org/api/googleapi/transport
$ go get google.golang.org/api/youtube/v3
手順
1. コードダウンロード
$ git clone https://github.com/Doarakko/api-challenge
$ cd api-challenge/youtube-data-api
2. YouTube API Key を入力
const developerKey = "your key"
3. コメントを取得する動画の ID を入力
func main() {
videoID := "input video id"
getComments(videoID)
}
4. 実行
$ go run youtube-comment.go
"「今すぐにでも走って逃げたいのですが動けないんです」<br />私:音を立てちゃダメなのかな...?<br />「ゾウにくぎ付けです」<br />私:お前の勝手やんけ" by みちゃ
いいね数: 1281 返信数: 15
"確かにゾウの群れ見て感動してウシガエル食べたくなる時ありますよね" by れあるまどりーど
いいね数: 1494 返信数: 87
"「油断は禁物です」で草" by 42度.
いいね数: 743 返信数: 5
"象を見た感動とウシガエルを食べることが全く関係なくて草" by ステラ
いいね数: 653 返信数: 14
"感動してこけてカエル食べてフランスを皮肉る 色々詰め込みすぎてもうメチャクチャw" by A77V
いいね数: 298 返信数: 0
解説
call := service.CommentThreads.List("id,snippet").
VideoId(VideoID).
Order("relevance").
MaxResults(maxResults)
-
Order
Order
にrelevance
を指定することで、グッド数とコメント数が多い順に取ってこれます。
デフォルトはtime
で直近のコメントをとってきます。 -
MaxResults
取ってくるコメントの最大値を設定します。
デフォルトは 20 個です。 -
SearchTerms
SearchTerms("any word")
を使用することで、指定した文字が含まれるコメントのみ取ってこれます。
call := service.CommentThreads.List("id,snippet").
VideoId(VideoID).
SearchTerms("草").
Order("relevance").
MaxResults(maxResults)
$ go run youtube-comment.go
"<a href="https://www.youtube.com/watch?v=Qs3sShlgKGk&t=3m19s">3:19</a>草" by 涼宮ハルヒ
いいね数: 1 返信数: 0
"叩いて滑るのは草" by ダレノガレ明美「公式」
いいね数: 0 返信数: 0
"いっつも嫌な顔してて草" by Car Mix
いいね数: 11 返信数: 0
"カエル捕まえるの上手すぎて草" by トニーバーネット
いいね数: 0 返信数: 0
"<a href="https://www.youtube.com/watch?v=Qs3sShlgKGk&t=4m00s">4:00</a> ここ草" by ビーストシニア
いいね数: 0 返信数: 0
- 値の指定方法
authorName := item.Snippet.TopLevelComment.Snippet.AuthorDisplayName
text := item.Snippet.TopLevelComment.Snippet.TextDisplay
likeCnt := item.Snippet.TopLevelComment.Snippet.LikeCount
replyCnt := item.Snippet.TotalReplyCount
公式ドキュメントにレスポンスのフォーマットが載っているので、それにあわせて指定すると簡単です。
エディタの補完機能も👍