earthpg:GAS専門のプログラミングスクール

GASで動画一覧を取得!YouTube APIの活用方法

YouTube APIを使って、動画の一覧って取得できるのかな?
猫男
猫男
catman
catman
いい質問だ。catmanがGASでYouTube APIを活用して、動画の一覧を取得する方法を伝授しよう。

GASでYouTube APIを使う準備

まず、GASからYouTube APIにアクセスするための準備を進めよう。

APIキーの取得

  • Google Cloud Platformにアクセスしてプロジェクトを作成する。
  • 「APIとサービス」の「ライブラリ」からYouTube Data API v3を有効にする。
  • 「認証情報」タブでAPIキーを生成する。これはお願いだから大事にしてくれ。

GASプロジェクトの作成

  • Google スプレッドシートを開き、拡張機能からApps Scriptを選択して新しいプロジェクトを作成する。
設定はわかったけれど、実際のスクリプトでどうやるのかなぁ…
猫男
猫男

GASでYouTube動画一覧を取得する方法

ここからが本番。GASを使って動画一覧を取得するコードを組んでみよう。

YouTube動画一覧取得のスクリプト

まず、基本的なスクリプトだ。


function getYoutubeVideos() {
  var apiKey = 'YOUR_API_KEY';
  var channelId = 'CHANNEL_ID';
  var url = 'https://www.googleapis.com/youtube/v3/search?key=' + apiKey + '&channelId=' + channelId + '&part=snippet,id&order=date&maxResults=5';

  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());

  var videos = json.items;

  videos.forEach(function(video) {
    Logger.log(video.snippet.title);
  });
}

このスクリプトでは、UrlFetchApp.fetch()を使ってYouTube Data APIからデータを取得し、JSON形式で解析、動画のタイトルを取得している。

‘YOUR_API_KEY’は自分のAPIキー、’CHANNEL_ID’はデータを取得したいチャンネルものに変更してくれよな。

catman
catman
ポイントは、fetch()メソッドを使ってAPIからデータを取得していること。それをJSONとして解析して中身を扱うのだ。簡単だろう?

YouTube Analytics APIも使ってみよう

YouTube APIにはAnalytics機能もある。GASで使えるデータの幅が広がる。


function getYoutubeAnalytics() {
  var apiKey = 'YOUR_API_KEY';
  var metrics = 'views,likes,subscribersGained';
  var url = 'https://youtubeanalytics.googleapis.com/v2/reports?ids=channel==CHANNEL_ID&metrics=' + metrics + '&dimensions=video&maxResults=5&access_token=' + apiKey;

  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());

  Logger.log(json);
}

このスクリプトでは、YouTube Analytics APIにリクエストを送り、動画の視聴回数やいいねの数を取得している。

 

練習問題

YouTube Data APIで、特定のキーワードでフィルターした動画一覧を取得するスクリプトを書いてみてください。

 

 

解答・解説

以下が解答のスクリプトです。解説を見て、動作を確認してみましょう。


function searchYoutubeVideos() {
  var apiKey = 'YOUR_API_KEY';
  var query = 'cat videos';
  var url = 'https://www.googleapis.com/youtube/v3/search?q=' + encodeURIComponent(query) + '&key=' + apiKey + '&part=snippet,id&type=video&maxResults=5';

  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());

  var videos = json.items;

  videos.forEach(function(video) {
    Logger.log(video.snippet.title);
  });
}

このスクリプトでは、q=パラメータを用いて特定のキーワード(例は「cat videos」)で検索し、取得された動画情報を順次ログに出力している。

文字列をURLに安全に組み込むために、encodeURIComponent()を用いてクエリパラメータをエンコードしている点もポイントだ。

やった!GASでもYouTube APIでデータを取得できるようになったぞ!
猫男
猫男
catman
catman
その調子だ、どんどんデータを活用して、素敵なアプリケーションを作ってみると良いさ。