はじめに
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にアクセスする際に使用されます。
以上です。カスタマイズは有料ですが、承りますので、よろしければご連絡ください。