YoutubuAPIでチャンネルの情報を取得する

YoutubeAPIでチャンネルの情報を取得してみる

とりあえずブログネタにとYoutubeAPIの使い方がわかっている部分だけでも記事にしてみようかと

 

まずはチャンネルの情報を取得するということで、取得するためにはチャンネルのIDか、ユーザ名が必要になります

 

チャンネルとユーザIDに関しては、YoutubeのチャンネルのURLから取得できます

www.meinashi.info

上の記事に場所を書いてるのでそこから取ってきてもらえれば

ユーザ名の場合も同じ箇所にあります

UCから始まってたらチャンネル

それ以外ならユーザ名と考えて多分大丈夫です

 

リクエストの送信先URL

YoutubeAPIは言ってしまえば指定されたURLに指定されたパラメータを送ると、Json形式で値が返ってくるというものです

REST APIになるんですかね?

 

まあともかく、チャンネルの情報を取得するためのURLはこちら 

https://www.googleapis.com/youtube/v3/channels

 

で、このURLを叩けばそれだけでチャンネル情報が送られるわけではなく、要はどのチャンネルの情報が欲しいかを指定しないといけないわけです

なので欲しいチャンネルまたはユーザ名をGETパラメータに指定する必要があります

パラメータ名はチャンネルの場合はid

ユーザ名の場合はforUsernameになります

 

それに加えて、チャンネルのどの情報が欲しいか、というのも指定します

パラメータ名はpart

指定できる値は複数あるのですが、とりあえず使用したものだけ書き出すとsnippetcontentDetails,statisticsの3つです

これに関しては後で補足しますが、どれがなんの情報かわからない場合は、一つずつ指定して一度中身を見てみて、どの値を使用したときにどんな値が返ってきているかを確認してみるといいです

値自体は複数指定できるので、試してはいませんが、使用できる値すべてを指定してリクエストを送信すれば、取得できるパラメータすべてが返ってくるかと思います

じゃあとりあえず全部指定すればいいんじゃないか?と思うかもしれませんが、YoutubeAPIでは一日に取得できる情報量に限りがあるため、常にすべての情報を取得し続けると制限にかかる可能性がでてくるかもしれません

※ちなみにバイト数ではなくクエリーという単位での制限なので、例えば説明文がものすごく長いチャンネルの情報を取得してくるのと、ほとんど何も登録されていないチャンネルの情報を取得するのは等価なはずです

 

最期に一つ、YoutubeAPIにアクセスするためのキーをパラメータにセットする必要があります

パラメータ名はkey

セットするキーはGoogle Developers Consoleから取得する必要があります

 

以上のパラメータを設定したURLにリクエストを送信すると、Json形式でチャンネルの情報が返ってきます

一応、例としてURLを書いておきます

 

チャンネル用

https://www.googleapis.com/youtube/v3/channels?part=snippet&id=チャンネルID&key=APIキー

 

ユーザ用

https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=ユーザ名&key=APIキー

 

partを複数指定する場合はカンマ区切り

https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails,statistics&id=チャンネルID&key=APIキー

 

リクエスト結果

返ってきた情報を載せようと思ったら量が多かったので抜粋します

f:id:vein1112:20180801214906p:plain

 例えば上記の結果にはチャンネルのサムネイル画像のURLが記載されています

サイトのチャンネルの画像はここから取得しているわけです

チャンネル情報 – VTuber情報収集器

 

f:id:vein1112:20180801215254p:plain

上記2つの結果は、それぞれpartで指定したcontentDetailsstatisticsの情報ですね

statisticsの方で取得できるのは動画の再生数や動画数などです

contentDetailsのほうは使用したのはuploadsの部分だけです

これがチャンネルの動画を取得するために必要になってくるので、保持しておく必要性があります

 

まとめ

とりあえずチャンネルの情報を取得する方法を書いてみました

APIって聞くとなんだか難しいように思えるかもしれませんが、URL叩いてるだけだと書くと簡単に思えるんじゃないでしょうか

取得したJsonデータの使用法は言語によって変わるので、お使いの言語に合わせた使用方法で中の値を取得しましょう

phpを使用するのであれば、返ってきたjson文字列をjson_decode関数に突っ込めば、オブジェクトで返ってくるのでアクセスも簡単です

 

次やるときはプレイリストから動画情報を取得する流れをやります

基本チャンネル情報取得するのと処理は変わらないです。要はURLを叩くだけですね、はい