YoutubeDataAPI【GoogleAppsScript】

GoogleAppsScriptでYoutubeDataAPIを使用して、チャンネル情報・再生リスト情報・動画情報の取得方法を全て説明していく。取得画面も画像で残しておりますので、良ければ試してみて下さい。

※スプレッドシートに残すケースが多いと思うので、コンテナバインド型でシートからGASは開いています。

GoogleAppsScriptでYoutubeDataAPI機能を使用する方法

最初にGoogleAppsScriptにYoutubeDataAPI機能を追加する。

スプレッドシートにデータを取得するケースが多いと思いますので

スプレッドシートを開いて、拡張機能からAppsScriptを選択。

AppsScriptの画面が開いたら、サービスの欄からサービスを追加。

YoutubeDataAPIを選択し追加する。

サービス欄に追加されていればYoutubeDataAPIを使用する準備が完了。

Channels機能でYoutubeチャンネル情報を取得する方法

ざっくり説明するとChannels機能はYoutubeのチャンネル情報を取得できる機能。

その中のChannels.listメソッドを使用し、リクエスト条件に一致するチャンネル情報を取得する。

どのような情報を取得できるかは、下記からpartに設定する。

そして、どのチャンネルからデータを取得するかは、2種類の方法で紹介する。

idでチャンネルを指定する方法と、forHandleでYoutubeハンドルを指定し、チャンネルを指定する方法。

データを取得したいチャンネルのURL部分を確認し、Channel/〇〇〇の形式の場合、〇〇〇の部分がIDになる。

パラメーターのpartには一旦idを指定し(この後変更します)、フィルタ部分にYoutubeチャンネルのIdを指定。

チャンネルのIdは1つではなく、カンマ区切りのリストを指定することで、複数のチャンネル情報を取得することも可能。

URLが@〇〇の形式(ハンドル形式)の場合は〇〇のHandle名を取得し、使用。

先程はidでしたが、ハンドル名を使用してチャンネル情報を取得する場合はforHandleの部分に指定する。

ここまでで、2パターンのチャンネルの指定方法ができるようになったと思います。

ここからはチャンネルの各データをpartで指定し、欲しい情報を指定していく。

最初にpartにbrandingSettingsを設定し、ブランディングに関する設定や情報を取得する。

取得した情報の1つ目のitemsにある為、[0]で中身を確認するとbrandingSettingsのObjectが確認できる。

中身を確認すると、keywords(埋め込まれているタグの情報)やチャンネルのタイトルや説明文等、チャンネルに関する

ブランディング情報が取得できている。

各項目の意味は上記で古いものもあるが、概ね現在も同様の意味。

各項目でYoutube画面側からも確認は可能だが、keywordsは埋め込まれている為、画面上からは確認できない。

brandingSettingsの後にchannelと段階を踏んで記載していけば各項目を取得できる。

単体の情報が欲しい場合は、その記述方式で良いでしょう。

タイトルだけ、キーワード(タグ)だけ、国だけと個別データを取得する例。

次にcontentDetailsでコンテンツ情報を取得する。

relatedPlaylists.likes→これはチャンネルがお気に入りとして指定した動画を収めたリスト

relatedPlaylists.uploads→チャンネルがアップロードした動画を収めたプレイリスト

このSimple~プログラミング~チャンネルでは、お気に入りとして収めたリストはないが、uploadsは取得できている。

次にsnippetでチャンネルの基本情報を取得する。

descriptionで説明文。publishedAtでチャンネルの登録日。thumbnailsでサムネイル関連の情報。

default→デフォルトサムネイル。ulr→サムネイルの画像のURL。medium→中サイズサムネイル。

height→サムネイル画像の高さ。high→高解像度サムネイル。width→サムネイル画像の横幅。

次にStatisticeで統計情報を取得していく。数値的な情報の事。

stasticsの内容はこちら。

videoCountで動画の数が取得できるが、公開されている動画の数のみになる。

例えば100本アップロードしていても全て非公開にしていれば0が返される。

viewCountは再生数でこちらも同様に公開されている動画の再生数。

subscriberCountはチャンネル登録者数。hiddenSubscriberCountは登録者数の非表示設定。

今は非表示設定はできないのですが、昔はできたんですね~。懐かしい。

partにstatisticsを設定すると各種統計情報が取得できていますね。

次にpartにstatusを設定してチャンネルのプライバシーステータス情報を取得しましょう。

取得できるのは下記の項目になります。

チャンネルの各種項目情報が取得できます。

longUploadsStatusで15分を超える動画をアップロードする資格の有無があるかどうか。allowedで可能、disallowedで不可能。

madeForKidsで子供向けコンテンツかどうか。privacyStatusでビデオの公開設定。

isLinkedyoutubeでユーザーにリンクされているアカウントかどうか。

各種チャンネルのステータス情報が取得できています。

partにtopicDetailsを設定し、トピックに関する情報を取得してみましょう。

現在非推奨のtopicIdsやtopicCategoriesでチャンネルのコンテンツを説明するWikipediaのURLのリストが取得できます。

これはチャンネルがどういうカテゴリーのチャンネル化wikipediaで該当するカテゴリを表してくれます。

例えばこちらのチャンネルだと、テクノロジーのwikipediaのページに繋がります。

色々なチャンネルで試してみて下さい。

Playlists機能で再生リスト情報を取得する方法

先程はYoutubeのチャンネルのidかhandle名を指定し、各種情報を取得しましたが

今度はチャンネルの再生リスト情報を取得していきます。

再生リスト情報を取得していくには主にPlaylists機能を使用します。

Playlists.listメソッドでリクエスト条件に一致する再生リストを取得します。

こちらもチャンネルと同様にpartに欲しい情報を指定します。

このまま取得すると、resultsとして結果が5個しか入っていません。

デフォルトの取得数が5個になっている為、不便です。

オプションパラメータでmaxResults:50とし、結果で取得するアイテムの最大個数を

50個にしましょう。そうすると、50個までのアイテムが取得可能です。

再生リストのidはチャンネルの動画の=〇〇〇の部分であり、取得したアイテムの1個目のidとすると

1つ目のプレイリストのidを取得することが可能です。

itemCountsは再生リストの動画の数になります。

これは取得したチャンネルの再生リストの1つ目の動画の数が2個であることを示します。

次にpartにplayerを設定してみましょう。playerは埋め込みプレイヤーの情報です。

この動画のプレイリストを埋め込むためのHTMLコードが返されます。

次にsnippetで再生リストの基本情報を取得します。

基本情報は主に、descriptionで再生リストの説明文、titleで再生リストのタイトル。

thumbnailsでプレイリストのサムネイル画像情報。channelTitleでリストを作成したチャンネルのタイトル。

items[0]として1つ目の基本情報を取得するとこちらのように返されます。

partにstatusを指定して再生リストのプレイバシーステータス情報を取得してみましょう。

privacyStatusで再生リストの公開設定が取得できます。

publicの場合、公開設定であり、unlistedであれば非公開、privateであれば特定のユーザーのみ公開となります。

流れとしてはまずは再生リスト情報を取得し、順番に再生リストのidを元に

再生リスト内の動画情報を取得していきます。

このvideoidは動画のURLのhttps://www.youtube.com/watch?v=〇〇の〇〇の部分になります。

この場合だと、プレイリストで指定した再生リスト内の動画のidを取得することができています。

つまり、再生リストを指定し、動画のidを取得して、この後出てくるvideos機能を使用して

動画の情報を取得するという流れがよくあるパターンになります。

こちらは指定したチャンネルの再生リストのidを取得し、リスト内の動画を順番に配列に入れて

結果をスプレッドシートに転記するサンプルコードになります。

このコードの場合はチャンネルの1つ目の再生リストの動画Idを全てシートの1行目1列目から

順番に入れることができます。

そのままコピーして使用する場合は指定したシートに再生リスト内の動画のidが入る為

シート名も合わせて下さい。

Videos機能で動画所法を取得する方法

最後に、動画自体の情報をVideos機能で取得していきます。

チャンネル情報を取得し、チャンネル内の再生リストから動画のidを取得するところまできました。

後は動画の各詳細を取得していきます。

動画のidから動画の情報を取得していく。

全部同じですね、partに取得したい欲しい情報を設定します。

contentDetailsで指定した動画idの動画のコンテンツ情報を取得することができます。

詳細はこちら、動画のライセンスコンテンツや長さ、次元、字幕、投影方法、定義、コンテンツレーティング等の情報です。

次はplayerですが、埋め込みプレイヤー情報でプレイリストと同様です。

Youtubeビデオを外部のぺージやアプリに組み込むことができる埋め込みコードが取得できます。

snippetを設定するとビデオに関する基本情報が返ります。

動画のタグや、タイトル、説明文が取得できています。

色々な情報が取得できています。

取得できている情報を1つずつ見ていきましょう。

次にstasticsで動画も統計情報を取得していきます。

likeCountで高評価の数、favoriteCountでお気に入りに追加した数。

viewCountで再生回数。commentCountでコメントの総数となります。

最後はstatusで動画の管理や視聴に関する詳細データを取得します。

チャンネルやリストと同様です。

このようにGoogleAppsScriptを使用すれば「チャンネル情報」「再生リスト情報」「動画情報」は簡単に取得可能です。

GASの場合、定期実行もできる為、スプレッドシートに蓄積して分析する場合に便利です。

是非試してみて下さい~。

不明点あれば、Twitterにでもご連絡頂ければたまにTwitterもみてます。

良きプログラミングライフを。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です