LoginSignup
3
6

More than 3 years have passed since last update.

YouTube のチャンネル・動画の詳細情報を取得 in Golang

Last updated at Posted at 2019-04-14

Golang で YouTube Data API を使用してチャンネル・動画の詳細情報を取得します。

Requirement

  • Youtube API Key
  • Golang 1.11

準備

  • ライブラリのインストール
$ 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: チャンネル ID

  • 動画 URL: 動画 ID

4. 実行

  • チャンネル詳細情報取得
$ go run print-channel-info.go
【チャンネル情報】
channel id: UC4YaOt1yT-ZeyB0OmxHgolA

チャンネル名: 
A.I.Channel

説明: はじめまして! キズナアイです(o・v・o)♪
チャンネル登録よろしくお願いしますლ(´ڡ`ლ)
---
2019/05/15リリース決定!
 "Kizuna AI 1st アルバム「hello, world」" 予約開始!
https://2018hello.world/album/

---
A.I.Channelでは字幕作成にご協力してくれる方を募集しています!
どの言語でも大歓迎です!ご協力よろしくお願いします!

♡ゲーム専門サブチャンネルもよろしくお願いします♡
【A.I.Games】
https://goo.gl/Xn7u84

【Twitter】
https://twitter.com/aichan_nel

【インスタグラム】
https://www.instagram.com/a.i.channel_official/

【Facebook】
https://www.facebook.com/Kizuna-AIofficial-773286456183351/

【公式WEBサイト】
http://kizunaai.com/



♡A.I.Channelヒストリー♡
2016.12.01 チャンネル開設
2017.01.16 チャンネル停止…
2017.02.02 登録者10,000人達成
2017.02.04 チャンネル完全復活!
2017.02.21 登録者50,000人達成
2017.02.24 登録者100,000人達成
2017.12.01 チャンネル開設一周年♡
2017.12.17 登録者1,000,000人達成
2018.07.15 登録者2,000,000人達成
2018.12.01 チャンネル開設二周年♡

サムネイルURL: https://yt3.ggpht.com/a-/AAuE7mBCUSZyR2ynwssHlevU-6qwlokU8M-7YqU2cg=s800-mo-c-c0xffffffff-rj-k-no

playlist id: UU4YaOt1yT-ZeyB0OmxHgolA

総再生回数: 204274665

チャンネル登録者数: 2526132

動画数: 592
  • 動画詳細情報取得
$ go run print-video-info.go
【動画情報】
video id: wT_GFTDpUno

タイトル: AIが一言物申す!

説明: 
とにかく言いたいことがある!
今日は思いっきり言わせてもらいます!
みんなよーーく聞いてください!
これが私の! 今の気持ちですからーーーー!!!
-------------------------------------------------------------------------------
チャンネル登録よろしくお願いします(o・v・o)♪ 
https://goo.gl/uMP1DM

ゲームチャンネル「A.I.Games」もよろしくお願いします!
♡A.I.Games♡
https://goo.gl/Xn7u84

キズナアイの、キズナアイによる、みんなのためのゲームブログ!
♡A.I.Gamers Info♡
https://www.aigamers.info/

動画で描いたイラストはこちらにUPしていきます!
♡pixiv♡
https://pixiv.me/kizunaai0630

♡Twitter♡
https://twitter.com/aichan_nel

♡Instagram♡
https://www.instagram.com/a.i.channel_official/

♡Facebook♡
https://www.facebook.com/Kizuna-AIofficial-773286456183351/

♡weibo♡
https://www.weibo.com/aichannelchina?refer_flag=1005055014_

♡WEBサイト♡
http://kizunaai.com/
サムネイルURL: https://i.ytimg.com/vi/wT_GFTDpUno/hqdefault.jpg

再生回数: 3418115

コメント数: 8709

高評価数: 85746

低評価数: 2955

channel id: UC4YaOt1yT-ZeyB0OmxHgolA

アップロード日時: 2018-01-05 10:00:07 +0000 UTC

解説


call := service.Videos.List("id,snippet,Statistics").

List 内の引数はこちらのパラメータ part のことです。

こちらにある JSON に対応しています。

指定したもののみレスポンスに含まれます。

試しに、指定していない brandingSettings にあるチャンネルのキーワードを出力するようにプログラムを修正。


keyword := item.BrandingSettings.Channel.Keywords

fmt.Printf("channel id: %v\n\nチャンネル名: \n%v\n\n説明: %v\n\nサムネイルURL: %v\n\nplaylist id: %v\n\n総再生回数: %v\n\nチャンネル登録者数: %v\n\n動画数: %v\nチャンネルキーワード%v\n",
    id,
    name,
    description,
    thumbnailURL,
    playlistID,
    viewCount,
    subscriberCount,
    videoCount,
    keyword,
)
$ go run print-channel-info.go 
【チャンネル情報】
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1459a66]

goroutine 1 [running]:
main.printChannelInfo(0x15aa9f0, 0x18)
        // 省略
        print-channel-info.go:46 +0x3f6
main.main()
        // 省略
        print-channel-info.go:64 +0x93
exit status 2

おわりに

今回取ってきた情報以外にもいろいろとあるので、ドキュメント見ながら試して見てください。

brandingSettings あたりは面白そうです。

Reference

3
6
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
3
6