YoutubeDataAPI【GoogleAppsScript】
GoogleAppsScriptでYoutubeDataAPIを使用して、チャンネル情報・再生リスト情報・動画情報の取得方法を全て説明していく。取得画面も画像で残しておりますので、良ければ試してみて下さい。
※スプレッドシートに残すケースが多いと思うので、コンテナバインド型でシートからGASは開いています。
![](https://vba.company/wp-content/uploads/2024/06/スライド1-1-1024x576.jpg)
GoogleAppsScriptでYoutubeDataAPI機能を使用する方法
![](https://vba.company/wp-content/uploads/2024/06/スライド2-1024x576.jpg)
最初にGoogleAppsScriptにYoutubeDataAPI機能を追加する。
![](https://vba.company/wp-content/uploads/2024/06/スライド3-1024x576.jpg)
スプレッドシートにデータを取得するケースが多いと思いますので
スプレッドシートを開いて、拡張機能からAppsScriptを選択。
![](https://vba.company/wp-content/uploads/2024/06/スライド4-1024x576.jpg)
AppsScriptの画面が開いたら、サービスの欄からサービスを追加。
![](https://vba.company/wp-content/uploads/2024/06/スライド5-1024x576.jpg)
YoutubeDataAPIを選択し追加する。
![](https://vba.company/wp-content/uploads/2024/06/スライド6-1024x576.jpg)
サービス欄に追加されていればYoutubeDataAPIを使用する準備が完了。
Channels機能でYoutubeチャンネル情報を取得する方法
![](https://vba.company/wp-content/uploads/2024/06/スライド7-1024x576.jpg)
ざっくり説明するとChannels機能はYoutubeのチャンネル情報を取得できる機能。
![](https://vba.company/wp-content/uploads/2024/06/スライド8-1024x576.jpg)
その中のChannels.listメソッドを使用し、リクエスト条件に一致するチャンネル情報を取得する。
![](https://vba.company/wp-content/uploads/2024/06/スライド9-1024x576.jpg)
どのような情報を取得できるかは、下記からpartに設定する。
![](https://vba.company/wp-content/uploads/2024/06/スライド10-1-1024x576.jpg)
そして、どのチャンネルからデータを取得するかは、2種類の方法で紹介する。
idでチャンネルを指定する方法と、forHandleでYoutubeハンドルを指定し、チャンネルを指定する方法。
![](https://vba.company/wp-content/uploads/2024/06/スライド11-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド12-1024x576.jpg)
データを取得したいチャンネルのURL部分を確認し、Channel/〇〇〇の形式の場合、〇〇〇の部分がIDになる。
![](https://vba.company/wp-content/uploads/2024/06/スライド13-1024x576.jpg)
パラメーターのpartには一旦idを指定し(この後変更します)、フィルタ部分にYoutubeチャンネルのIdを指定。
![](https://vba.company/wp-content/uploads/2024/06/スライド14-1024x576.jpg)
チャンネルのIdは1つではなく、カンマ区切りのリストを指定することで、複数のチャンネル情報を取得することも可能。
![](https://vba.company/wp-content/uploads/2024/06/スライド15-1024x576.jpg)
URLが@〇〇の形式(ハンドル形式)の場合は〇〇のHandle名を取得し、使用。
![](https://vba.company/wp-content/uploads/2024/06/スライド16-1024x576.jpg)
先程はidでしたが、ハンドル名を使用してチャンネル情報を取得する場合はforHandleの部分に指定する。
ここまでで、2パターンのチャンネルの指定方法ができるようになったと思います。
![](https://vba.company/wp-content/uploads/2024/06/スライド17-1024x576.jpg)
ここからはチャンネルの各データをpartで指定し、欲しい情報を指定していく。
![](https://vba.company/wp-content/uploads/2024/06/スライド18-1024x576.jpg)
最初にpartにbrandingSettingsを設定し、ブランディングに関する設定や情報を取得する。
![](https://vba.company/wp-content/uploads/2024/06/スライド19-1024x576.jpg)
取得した情報の1つ目のitemsにある為、[0]で中身を確認するとbrandingSettingsのObjectが確認できる。
![](https://vba.company/wp-content/uploads/2024/06/スライド20-1024x576.jpg)
中身を確認すると、keywords(埋め込まれているタグの情報)やチャンネルのタイトルや説明文等、チャンネルに関する
ブランディング情報が取得できている。
![](https://vba.company/wp-content/uploads/2024/06/スライド21-1024x576.jpg)
各項目の意味は上記で古いものもあるが、概ね現在も同様の意味。
![](https://vba.company/wp-content/uploads/2024/06/スライド22-1024x576.jpg)
各項目でYoutube画面側からも確認は可能だが、keywordsは埋め込まれている為、画面上からは確認できない。
![](https://vba.company/wp-content/uploads/2024/06/スライド23-1024x576.jpg)
brandingSettingsの後にchannelと段階を踏んで記載していけば各項目を取得できる。
単体の情報が欲しい場合は、その記述方式で良いでしょう。
![](https://vba.company/wp-content/uploads/2024/06/スライド24-1024x576.jpg)
タイトルだけ、キーワード(タグ)だけ、国だけと個別データを取得する例。
![](https://vba.company/wp-content/uploads/2024/06/スライド25-1024x576.jpg)
次にcontentDetailsでコンテンツ情報を取得する。
![](https://vba.company/wp-content/uploads/2024/06/スライド26-1024x576.jpg)
relatedPlaylists.likes→これはチャンネルがお気に入りとして指定した動画を収めたリスト
relatedPlaylists.uploads→チャンネルがアップロードした動画を収めたプレイリスト
![](https://vba.company/wp-content/uploads/2024/06/スライド27-1024x576.jpg)
このSimple~プログラミング~チャンネルでは、お気に入りとして収めたリストはないが、uploadsは取得できている。
![](https://vba.company/wp-content/uploads/2024/06/スライド28-1024x576.jpg)
次にsnippetでチャンネルの基本情報を取得する。
![](https://vba.company/wp-content/uploads/2024/06/スライド29-1024x576.jpg)
descriptionで説明文。publishedAtでチャンネルの登録日。thumbnailsでサムネイル関連の情報。
default→デフォルトサムネイル。ulr→サムネイルの画像のURL。medium→中サイズサムネイル。
height→サムネイル画像の高さ。high→高解像度サムネイル。width→サムネイル画像の横幅。
![](https://vba.company/wp-content/uploads/2024/06/スライド30-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド31-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド32-1-1024x576.jpg)
次にStatisticeで統計情報を取得していく。数値的な情報の事。
![](https://vba.company/wp-content/uploads/2024/06/スライド33-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド34-1024x576.jpg)
stasticsの内容はこちら。
videoCountで動画の数が取得できるが、公開されている動画の数のみになる。
例えば100本アップロードしていても全て非公開にしていれば0が返される。
viewCountは再生数でこちらも同様に公開されている動画の再生数。
subscriberCountはチャンネル登録者数。hiddenSubscriberCountは登録者数の非表示設定。
今は非表示設定はできないのですが、昔はできたんですね~。懐かしい。
![](https://vba.company/wp-content/uploads/2024/06/スライド35-1024x576.jpg)
partにstatisticsを設定すると各種統計情報が取得できていますね。
![](https://vba.company/wp-content/uploads/2024/06/スライド36-1024x576.jpg)
次にpartにstatusを設定してチャンネルのプライバシーステータス情報を取得しましょう。
取得できるのは下記の項目になります。
チャンネルの各種項目情報が取得できます。
![](https://vba.company/wp-content/uploads/2024/06/スライド37-1024x576.jpg)
longUploadsStatusで15分を超える動画をアップロードする資格の有無があるかどうか。allowedで可能、disallowedで不可能。
madeForKidsで子供向けコンテンツかどうか。privacyStatusでビデオの公開設定。
isLinkedyoutubeでユーザーにリンクされているアカウントかどうか。
![](https://vba.company/wp-content/uploads/2024/06/スライド38-1024x576.jpg)
各種チャンネルのステータス情報が取得できています。
![](https://vba.company/wp-content/uploads/2024/06/スライド39-1024x576.jpg)
partにtopicDetailsを設定し、トピックに関する情報を取得してみましょう。
![](https://vba.company/wp-content/uploads/2024/06/スライド40-1024x576.jpg)
現在非推奨のtopicIdsやtopicCategoriesでチャンネルのコンテンツを説明するWikipediaのURLのリストが取得できます。
これはチャンネルがどういうカテゴリーのチャンネル化wikipediaで該当するカテゴリを表してくれます。
![](https://vba.company/wp-content/uploads/2024/06/スライド41-1024x576.jpg)
例えばこちらのチャンネルだと、テクノロジーのwikipediaのページに繋がります。
色々なチャンネルで試してみて下さい。
Playlists機能で再生リスト情報を取得する方法
![](https://vba.company/wp-content/uploads/2024/06/スライド42-1024x576.jpg)
先程はYoutubeのチャンネルのidかhandle名を指定し、各種情報を取得しましたが
今度はチャンネルの再生リスト情報を取得していきます。
![](https://vba.company/wp-content/uploads/2024/06/スライド43-1024x576.jpg)
再生リスト情報を取得していくには主にPlaylists機能を使用します。
![](https://vba.company/wp-content/uploads/2024/06/スライド44-1024x576.jpg)
Playlists.listメソッドでリクエスト条件に一致する再生リストを取得します。
![](https://vba.company/wp-content/uploads/2024/06/スライド45-1024x576.jpg)
こちらもチャンネルと同様にpartに欲しい情報を指定します。
![](https://vba.company/wp-content/uploads/2024/06/スライド46-1024x576.jpg)
このまま取得すると、resultsとして結果が5個しか入っていません。
デフォルトの取得数が5個になっている為、不便です。
![](https://vba.company/wp-content/uploads/2024/06/スライド47-1024x576.jpg)
オプションパラメータでmaxResults:50とし、結果で取得するアイテムの最大個数を
50個にしましょう。そうすると、50個までのアイテムが取得可能です。
![](https://vba.company/wp-content/uploads/2024/06/スライド48-1024x576.jpg)
再生リストのidはチャンネルの動画の=〇〇〇の部分であり、取得したアイテムの1個目のidとすると
1つ目のプレイリストのidを取得することが可能です。
![](https://vba.company/wp-content/uploads/2024/06/スライド49-1024x576.jpg)
itemCountsは再生リストの動画の数になります。
これは取得したチャンネルの再生リストの1つ目の動画の数が2個であることを示します。
![](https://vba.company/wp-content/uploads/2024/06/スライド50-1024x576.jpg)
次にpartにplayerを設定してみましょう。playerは埋め込みプレイヤーの情報です。
![](https://vba.company/wp-content/uploads/2024/06/スライド51-1024x576.jpg)
この動画のプレイリストを埋め込むためのHTMLコードが返されます。
![](https://vba.company/wp-content/uploads/2024/06/スライド52-1024x576.jpg)
次にsnippetで再生リストの基本情報を取得します。
![](https://vba.company/wp-content/uploads/2024/06/スライド53-1024x576.jpg)
基本情報は主に、descriptionで再生リストの説明文、titleで再生リストのタイトル。
thumbnailsでプレイリストのサムネイル画像情報。channelTitleでリストを作成したチャンネルのタイトル。
![](https://vba.company/wp-content/uploads/2024/06/スライド54-1024x576.jpg)
items[0]として1つ目の基本情報を取得するとこちらのように返されます。
![](https://vba.company/wp-content/uploads/2024/06/スライド55-1-1024x576.jpg)
partにstatusを指定して再生リストのプレイバシーステータス情報を取得してみましょう。
![](https://vba.company/wp-content/uploads/2024/06/スライド56-1024x576.jpg)
privacyStatusで再生リストの公開設定が取得できます。
publicの場合、公開設定であり、unlistedであれば非公開、privateであれば特定のユーザーのみ公開となります。
![](https://vba.company/wp-content/uploads/2024/06/スライド57-1-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド58-1-1024x576.jpg)
流れとしてはまずは再生リスト情報を取得し、順番に再生リストのidを元に
再生リスト内の動画情報を取得していきます。
![](https://vba.company/wp-content/uploads/2024/06/スライド59-1024x576.jpg)
このvideoidは動画のURLのhttps://www.youtube.com/watch?v=〇〇の〇〇の部分になります。
![](https://vba.company/wp-content/uploads/2024/06/スライド60-1024x576.jpg)
この場合だと、プレイリストで指定した再生リスト内の動画のidを取得することができています。
つまり、再生リストを指定し、動画のidを取得して、この後出てくるvideos機能を使用して
動画の情報を取得するという流れがよくあるパターンになります。
![](https://vba.company/wp-content/uploads/2024/06/スライド61-1024x576.jpg)
こちらは指定したチャンネルの再生リストのidを取得し、リスト内の動画を順番に配列に入れて
結果をスプレッドシートに転記するサンプルコードになります。
このコードの場合はチャンネルの1つ目の再生リストの動画Idを全てシートの1行目1列目から
順番に入れることができます。
![](https://vba.company/wp-content/uploads/2024/06/スライド62-1024x576.jpg)
そのままコピーして使用する場合は指定したシートに再生リスト内の動画のidが入る為
シート名も合わせて下さい。
Videos機能で動画所法を取得する方法
![](https://vba.company/wp-content/uploads/2024/06/スライド63-1024x576.jpg)
最後に、動画自体の情報をVideos機能で取得していきます。
チャンネル情報を取得し、チャンネル内の再生リストから動画のidを取得するところまできました。
後は動画の各詳細を取得していきます。
![](https://vba.company/wp-content/uploads/2024/06/スライド64-1024x576.jpg)
動画のidから動画の情報を取得していく。
![](https://vba.company/wp-content/uploads/2024/06/スライド65-1024x576.jpg)
全部同じですね、partに取得したい欲しい情報を設定します。
![](https://vba.company/wp-content/uploads/2024/06/スライド66-1024x576.jpg)
contentDetailsで指定した動画idの動画のコンテンツ情報を取得することができます。
![](https://vba.company/wp-content/uploads/2024/06/スライド67-1024x576.jpg)
詳細はこちら、動画のライセンスコンテンツや長さ、次元、字幕、投影方法、定義、コンテンツレーティング等の情報です。
![](https://vba.company/wp-content/uploads/2024/06/スライド68-1024x576.jpg)
次はplayerですが、埋め込みプレイヤー情報でプレイリストと同様です。
Youtubeビデオを外部のぺージやアプリに組み込むことができる埋め込みコードが取得できます。
snippetを設定するとビデオに関する基本情報が返ります。
![](https://vba.company/wp-content/uploads/2024/06/スライド71-1-1024x521.jpg)
動画のタグや、タイトル、説明文が取得できています。
![](https://vba.company/wp-content/uploads/2024/06/スライド72-1-1024x522.jpg)
色々な情報が取得できています。
取得できている情報を1つずつ見ていきましょう。
![](https://vba.company/wp-content/uploads/2024/06/スライド73-1-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド74-1-1024x515.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド75-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド76-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド77-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド78-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド79-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド80-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド81-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド82-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド83-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド84-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド85-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド86-1024x576.jpg)
次にstasticsで動画も統計情報を取得していきます。
![](https://vba.company/wp-content/uploads/2024/06/スライド87-1024x576.jpg)
likeCountで高評価の数、favoriteCountでお気に入りに追加した数。
viewCountで再生回数。commentCountでコメントの総数となります。
![](https://vba.company/wp-content/uploads/2024/06/スライド88-1024x576.jpg)
![](https://vba.company/wp-content/uploads/2024/06/スライド89-1024x576.jpg)
最後はstatusで動画の管理や視聴に関する詳細データを取得します。
![](https://vba.company/wp-content/uploads/2024/06/スライド90-1024x576.jpg)
チャンネルやリストと同様です。
![](https://vba.company/wp-content/uploads/2024/06/スライド91-1024x576.jpg)
このようにGoogleAppsScriptを使用すれば「チャンネル情報」「再生リスト情報」「動画情報」は簡単に取得可能です。
GASの場合、定期実行もできる為、スプレッドシートに蓄積して分析する場合に便利です。
是非試してみて下さい~。
不明点あれば、Twitterにでもご連絡頂ければたまにTwitterもみてます。
良きプログラミングライフを。