コンテンツにスキップ
Zidooka
スポンサーリンク

YouTubeチャンネル分析のためのGoogle Apps Script活用ガイド【チャンネル名・登録者・総再生回数・総動画数を取得!】

※ この記事の内容について、業務・開発上お困りの場合は個別に対応できます(5,000円〜)。

はじめに

YouTubeは世界最大の動画プラットフォームとして、日々膨大なデータを生成しています。これらのデータを分析することは、動画クリエイター、マーケティング担当者、あるいはデータ分析に興味のある人々にとって非常に価値があります。YouTubeチャンネルの分析を通じて、視聴者の嗜好、チャンネルの成長傾向、競合他社との比較など、重要な洞察を得ることができます。

このブログでは、Google Apps Scriptを使用してYouTubeチャンネルのデータを効率的に取得し、分析する方法を学びます。Google Apps Scriptを使うことで、複雑なプログラミング知識がなくても、YouTube APIとの連携が容易になり、重要なチャンネルデータを自動的に収集できるようになります。

Google Apps Scriptとは

Google Apps Scriptは、Googleの提供するクラウドベースのスクリプト言語です。このスクリプトを使用することで、Googleドライブ、スプレッドシート、ドキュメント、カレンダーなどのGoogleのサービスと連携したアプリケーションを簡単に作成できます。特に重要なのは、Google外部のAPI、この場合はYouTube Data APIとの連携機能です。

YouTube APIとの連携により、チャンネルの登録者数、総再生回数、動画数など、さまざまな統計情報を簡単に取得できます。これは、チャンネルのパフォーマンスを迅速に評価し、戦略を調整する上で非常に有用です。Google Apps Scriptを利用することで、これらの情報を自動的に収集し、分析するプロセスを簡素化し、時間を節約することができます。

コードの全体像

function getChannelData(url) {
  var channelId = extractChannelId(url);
  if (!channelId) {
    console.log('チャンネルIDが見つかりません');
    return null;
  }
  return getYouTubeChannelDataById(channelId);
}

function getChannelName(url) {
  var channelData = getChannelData(url);
  return channelData ? channelData.channelName : 'データが見つかりません';
}

function getChannelSubscribers(url) {
  var channelData = getChannelData(url);
  return channelData ? channelData.subscribers : 'データが見つかりません';
}

function getChannelTotalViews(url) {
  var channelData = getChannelData(url);
  return channelData ? channelData.totalViews : 'データが見つかりません';
}

function getChannelTotalVideos(url) {
  var channelData = getChannelData(url);
  return channelData ? channelData.totalVideos : 'データが見つかりません';
}


function getYouTubeChannelDataById(channelId) {
  var apiKey = 'AIzaSyB3IuTEePL9DIy7ZXlkvxhh4Sk04piNyLE'; // APIキーを入力
  var url = 'https://www.googleapis.com/youtube/v3/channels?part=statistics,snippet&id=' + channelId + '&key=' + apiKey;
  try {
    var response = UrlFetchApp.fetch(url);
    var json = JSON.parse(response.getContentText());
    if (!json.items || json.items.length === 0) {
      console.log('チャンネルが見つかりませんでした');
      return null;
    }

    var data = json.items[0].statistics;
    var channelData = {
      channelName: json.items[0].snippet.title,
      subscribers: data.subscriberCount,
      totalViews: data.viewCount,
      totalVideos: data.videoCount
    };
    return channelData;
  } catch (error) {
    console.log('エラー:', error);
    return null;
  }
}


function extractChannelId(url) {
  var channelIdMatch = url.match(/youtube\.com\/channel\/([a-zA-Z0-9_-]+)/);
  if (channelIdMatch) {
    return channelIdMatch[1]; // 標準URLからチャンネルIDを返す
  }

  var customUrlMatch = url.match(/youtube\.com\/@([a-zA-Z0-9_-]+)/);
  if (customUrlMatch) {
    // カスタムURLからチャンネルIDを検索する
    var customUrl = 'https://www.youtube.com/' + customUrlMatch[0];
    var channelId = findChannelIdFromCustomUrl(customUrl);
    if (channelId) {
      return channelId; // 検索したチャンネルIDを返す
    } else {
      console.log('カスタムURLからチャンネルIDの検索に失敗しました');
      return null;
    }
  }

  console.log('URLからチャンネルIDを抽出できませんでした');
  return null; // マッチするものがない場合はnullを返す
}

// YouTube Data APIを使用してカスタムURLからチャンネルIDを検索する関数
function findChannelIdFromCustomUrl(customUrl) {
  var apiKey = '<ここにAPIキーを入力してください>'; // YouTube APIキーを入力
  var url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&type=channel&q=' + encodeURIComponent(customUrl) + '&key=' + apiKey;

  try {
    var response = UrlFetchApp.fetch(url);
    var json = JSON.parse(response.getContentText());
    if (json.items && json.items.length > 0) {
      var channelId = json.items[0].id.channelId;
      return channelId;
    } else {
      console.log('チャンネルが見つかりませんでした');
      return null;
    }
  } catch (error) {
    console.log('エラー:', error);
    return null;
  }
}

スクリプトの構成要素

このスクリプトは、YouTubeチャンネルの様々なデータを取得するために設計されています。各関数は特定のデータを取得するために役立ち、全体としては効率的なチャンネル分析ツールとなるように構成されています。

スクリプト全体の概要説明

スクリプトは、YouTube APIを通じてチャンネルデータを取得するためのいくつかの関数から構成されています。これには、チャンネル名、登録者数、総再生回数、総動画数などの情報が含まれます。Google Apps Scriptの環境で実行され、チャンネルIDを基に情報を取得します。

各関数の役割と機能

getChannelData: 特定のYouTubeチャンネルに関する全ての基本データを取得します。
getChannelName: チャンネルの名前を取得します。
getChannelSubscribers: チャンネルの登録者数を取得します。
getChannelTotalViews: チャンネルの総再生回数を取得します。
getChannelTotalVideos: チャンネルが投稿した総動画数を取得します。

チャンネルデータの取得方法

getChannelData関数の解説
getChannelData関数は、指定されたURLからチャンネルIDを抽出し、そのIDを使用してYouTube APIからチャンネルのデータを取得します。この関数は、他の関数が依存する基本データを提供する核となる部分です。

チャンネルIDの抽出方法
チャンネルIDは、与えられたURLから正規表現を用いて抽出されます。このIDは、APIリクエストに必要であり、チャンネルに固有の識別子です。

チャンネル情報の詳細

getChannelName:チャンネル名の取得
この関数は、APIから取得したデータからチャンネルの名前を抽出します。これは、チャンネルを識別するための基本的な情報です。

getChannelSubscribers:登録者数の取得
登録者数は、チャンネルの人気や影響力を測る重要な指標です。この関数は、その数を取得します。

getChannelTotalViews:総再生回数の取得
総再生回数は、チャンネルのコンテンツがどれだけ視聴されているかを示します。この関数は、その合計数を取得します。

getChannelTotalVideos:総動画数の取得
チャンネルが投稿した総動画数もまた、チャンネルの活動度を示す重要な指標です。この関数は、その数を取得します。

APIキーの取得と設定

YouTubeのデータを取得するためには、YouTube Data APIキーが必要です。このセクションでは、APIキーの取得方法と、それをスクリプトに組み込む方法について説明します。

YouTube Data APIキーの取得方法

Google Cloud Consoleにアクセス: Google Cloud Consoleにログインします。

プロジェクトの作成: 「プロジェクトを作成」ボタンをクリックし、新しいプロジェクトを作成します。

YouTube Data APIを有効にする: 「APIとサービス」ダッシュボードから「APIとサービスを有効化」を選択し、「YouTube Data API v3」を検索して有効にします。

APIキーの生成: 「認証情報」ページに移動し、「認証情報を作成」ボタンをクリックし、「APIキー」を選択します。

APIキーの制限の設定(任意): 生成されたAPIキーのセキュリティを強化するために、特定のAPI、ウェブサイト、IPアドレスにキーの使用を制限することができます。

このAPIキーは、スクリプトでYouTube APIにアクセスする際に使用されます。

以上です。カスタマイズは有料ですが、承りますので、よろしければご連絡ください。

スポンサーリンク

ZIDOOKA!

この記事の内容について、対応できます

ZIDOOKA!では、この記事で扱っている内容に関連する技術トラブルや開発上の問題について、フリーランスとして個別対応を行っています。
「調べても解決しない」「業務で詰まっている」「社内で対応が難しい」といった場合にご相談ください。

個別対応:5,000円〜 (内容・工数により事前にお見積りします)


Warning: foreach() argument must be of type array|object, false given in /home/users/1/ciao.jp-yamakazu/web/zidooka/wp-content/themes/zidooka-tw/functions.php on line 1220

AI活用に関するポリシー

当サイトでは、記事の執筆支援にAIを活用する場合があります。ただし、AIに記事作成を全面的に委任することはなく、あくまでライティングの補助として利用しています。「AIを活用することで生産性が向上し、より伝わりやすいコンテンツになるならば積極的に利用すべき」という方針のもと運営しています。

コメントを残す

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