ADVERTISEMENT

【Googleスプレッドシート】YouTubeチャンネルの動画情報を取得!YouTube Data APIの基本

【Googleスプレッドシート】YouTubeチャンネルの動画情報を取得!YouTube Data APIの基本
🛡️ 超解決

YouTubeチャンネルの動画一覧や統計情報をスプレッドシートで管理したいと考えたことはありませんか。手動でコピー&ペーストするのは非常に手間がかかります。しかし、YouTube Data APIを利用すれば、動画のタイトルや再生回数などを自動で取得できます。本記事では、GoogleスプレッドシートとApps Scriptを使って、YouTubeチャンネルの動画情報を取得する基本的な手順を解説します。

【要点】YouTube Data APIでチャンネル動画情報を取得する3ステップ

  • Google Cloud ConsoleでAPIキーを発行: 無料で利用できるAPIキーを取得し、YouTube Data API v3を有効化します。
  • Apps Scriptでカスタム関数を作成: =youtubeVideoList(チャンネルID) のような関数をスクリプトエディタで定義します。
  • スプレッドシートで関数を呼び出してデータ表示: 作成した関数をシートのセルに入力すると、動画情報が一覧で表示されます。

ADVERTISEMENT

YouTube Data APIで取得できる情報と準備

YouTube Data API v3は、YouTubeの動画やチャンネル、プレイリストなどの情報にアクセスできるGoogleの公式APIです。スプレッドシートからこのAPIを呼び出すことで、チャンネル内の全動画のタイトル、公開日、再生回数、高評価数、コメント数などを取得できます。APIを使うには、事前にGoogle Cloud Consoleでプロジェクトを作成し、APIキーを発行する必要があります。また、Apps ScriptのUrlFetchAppを利用してHTTPリクエストを送信します。

スプレッドシートでAPIを利用する手順

ここからは具体的な手順を解説します。まずAPIキーを取得し、次にApps Scriptで関数を作成し、最後にスプレッドシートでその関数を使います。

APIキーを取得する手順

  1. Google Cloud Consoleにアクセス
    ブラウザでGoogle Cloud Console(console.cloud.google.com)を開きます。Googleアカウントでログインしてください。
  2. プロジェクトを作成
    画面上部のプロジェクト選択プルダウンから「新しいプロジェクト」を選び、任意の名前(例:YouTubeDataAPI)を入力して作成します。
  3. YouTube Data API v3を有効化
    左側のメニューから「APIとサービス」→「ライブラリ」を開き、「YouTube Data API v3」を検索して有効にします。
  4. APIキーを発行
    「APIとサービス」→「認証情報」に移動し、「認証情報を作成」→「APIキー」を選択します。表示されたキーをコピーして安全な場所に保管してください。必要に応じてキーの制限(使用するAPIやIPアドレスなど)を設定できます。

Apps Scriptでカスタム関数を作成する手順

  1. スクリプトエディタを開く
    Googleスプレッドシートを開き、メニューから「拡張機能」→「Apps Script」を選択します。
  2. 関数を記述
    デフォルトのコード.gsに以下のスクリプトを貼り付けます。API_KEYの部分は先ほど取得したキーに置き換えてください。
    function youtubeVideoList(channelId) {
      var apiKey = 'YOUR_API_KEY';
      var url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=' + channelId + '&maxResults=50&order=date&type=video&key=' + apiKey;
      var response = UrlFetchApp.fetch(url);
      var json = JSON.parse(response.getContentText());
      var items = json.items;
      var result = [['タイトル', '動画ID', '公開日', '説明']];
      for (var i = 0; i < items.length; i++) {
        var item = items[i];
        result.push([item.snippet.title, item.id.videoId, item.snippet.publishedAt, item.snippet.description]);
      }
      return result;
    }

  3. 保存と権限承認
    スクリプトを保存し(Ctrl+S)、実行ボタンをクリックして初回の権限承認を行います。承認後、スプレッドシートに戻ります。

スプレッドシートで関数を使う手順

  1. チャンネルIDを確認
    対象のYouTubeチャンネルページのURLからチャンネルIDを取得します。例:https://www.youtube.com/channel/UC○○○ の「UC○○○」部分です。
  2. カスタム関数を入力
    スプレッドシートの任意のセルに「=youtubeVideoList(チャンネルID)」と入力します。チャンネルIDはダブルクォーテーションで囲んでください。例:=youtubeVideoList("UC○○○")
  3. 結果を確認
    数秒後、動画のタイトル、動画ID、公開日、説明が一覧表示されます。50件まで取得可能です。必要に応じてmaxResultsパラメータを変更できます。

注意点と制限事項

APIの1日あたりの割り当て制限

YouTube Data API v3には無料枠のクォータ(割り当て)があります。デフォルトでは1日あたり10,000ユニットまで使用できます。上記のsearchリクエストは1回あたり100ユニット消費するため、1日に100回のリクエストが可能です。大量のチャンネルを処理する場合はクォータの増加申請が必要な場合があります。

maxResultsパラメータの上限

searchリストのmaxResultsは最大50です。チャンネルに50件以上の動画がある場合、ページネーション処理が必要です。応用例として、nextPageTokenを使って次のページを取得する方法もありますが、本記事では基本の50件取得に絞っています。

関数の再計算タイミング

カスタム関数は引数が変わらない限り自動的に再計算されません。新しい動画を取得したい場合は、チャンネルIDのセルを編集するか、スプレッドシートのメニューから「関数の再計算」をトリガーしてください。

ADVERTISEMENT

取得可能なデータ項目の比較表

パラメータ 取得できる情報 取得例
snippet 動画の基本情報(タイトル、説明、公開日時、サムネイルURLなど) title: "夏の思い出", publishedAt: "2023-07-15T10:00:00Z"
statistics 再生回数、高評価数、低評価数、コメント数 viewCount: "12345", likeCount: "678"
contentDetails 動画の長さ(duration)、解像度、字幕の有無 duration: "PT5M30S"
status 動画の公開状態(public/unlisted/private)、ライセンス privacyStatus: "public"

まとめ

本記事では、YouTube Data APIをGoogleスプレッドシートから利用してチャンネルの動画情報を取得する方法を解説しました。APIキーの取得、Apps Scriptでのカスタム関数作成、シートへの適用という3ステップで、動画タイトルや公開日などを自動で一覧化できます。さらに応用として、statisticsパートを追加して再生回数や評価数を取得したり、videos.listエンドポイントを使って特定の動画の詳細情報を取得したりすることも可能です。ぜひ実際のチャンネル管理業務に活用してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。