LoginSignup
2
2

More than 5 years have passed since last update.

Youtube のコメントを取得する in Golang

Last updated at Posted at 2019-04-07

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 を入力

動画 URL の以下の箇所が videoId です。

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
    Orderrelevance を指定することで、グッド数とコメント数が多い順に取ってこれます。
    デフォルトは 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&amp;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&amp;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

公式ドキュメントにレスポンスのフォーマットが載っているので、それにあわせて指定すると簡単です。

エディタの補完機能も👍

Reference

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2