チャンネル登録者数自動監視ツール

Youtubeチャンネル登録者数を自動監視するスプレッドシートの作り方

シェアメイトとのやり取りで、こういうのがあったら便利だ、それをもっとこうして欲しい、なんてことがあったのでとりあえず作ってみました。

ソースコードをコピペしたら誰でも使えるようになっているので、使いたい方はどうぞ。

実際に作られるものはこんな感じです

スクリプトが実行されたタイミングで2行目に指定されているURLのチャンネル登録者数を取得するというものです。

手動で実行しても良いですが、簡単に日次で自動で実行されるようにもできます。

作り方

1. スプレッドシートを作成
2. 『ツール』 > 『スクリプトエディタ 』を押す
3. 下記のコードをスクリプトエディタ内にコピペ
4. APIキーを取得
5. 取得したAPIキーをコード内の"ご自分のAPIキーを入力してください"の中にコピペして上書き
6. 監視したいチャンネルのURLを取得
7. スクリプトの実行
8. 自動化のための設定
さいごに

3. 下記のコードをスクリプトエディタ内にコピペ

このように下記のコードをコピペします

function getSubscriberCount() {
 
 //APIキー
 var key = "ご自分のAPIキーを入力してください";
 //反映させるシート 月ごとにシートを変えたい場合などに変更してください
 var sheetName = "シート1" 
 
 var ss = SpreadsheetApp.getActiveSpreadsheet()
 var srcSheet = ss.getSheetByName(sheetName);
 
 var rowTitle = 1;
 var rowURL = 2;
 var rowEnd = srcSheet.getDataRange().getLastRow();
 var rowToday = rowEnd + 1;
 var colDate = 1;
 var colStart = 2;
 var colEnd = srcSheet.getDataRange().getLastColumn();
 
 var formatDate = Utilities.formatDate(new Date(),"JST","yy/MM/dd");
 srcSheet.getRange(rowToday,1).setValue(formatDate);
 
 for (i=colStart; i<=colEnd; i++) {
   
   
   var channelURL = srcSheet.getRange(rowURL,i).getValue();
   var channelID = channelURL.slice(32);
   
   //登録者数を取得
   var dataURL = "https://www.googleapis.com/youtube/v3/channels?part=statistics&id=" + channelID +"&key=" + key;
   var response = UrlFetchApp.fetch(dataURL)
   var subscribe = JSON.parse(response.getContentText()).items[0].statistics.subscriberCount;
   
   //チャンネルタイトルを取得
   var dataURL = "https://www.googleapis.com/youtube/v3/channels?part=snippet&id=" + channelID +"&key=" + key ;
   var response = UrlFetchApp.fetch(dataURL)
   var channnelTitle = JSON.parse(response.getContentText()).items[0].snippet.title;
   
   
   //登録者数をシートに挿入
   srcSheet.getRange(rowToday,i).setValue(subscribe);
   
   //チャンネルタイトルをシートに挿入
   srcSheet.getRange(rowTitle,i).setValue(channnelTitle); 
 }
 
};

function onOpen() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var entries = [
   {
     name : "Youtubeチャンネル登録者数取得",
     functionName : "getSubscriberCount"
   }
 ];
 sheet.addMenu("スクリプト実行", entries);
};

4. APIキーを取得

以下のリンクにアクセスし、適当な名前で新しいプロジェクトを作成します
Youtube Data API v3を検索し、有効にします。

その後、認証情報からAPIキーをコピーします。
下の画像の赤い範囲にあるはずです。

5. 取得したAPIキーをコード内の"ご自分のAPIキーを入力してください"の中にコピペして上書き

コードの3行目の"ご自分のAPIキーを入力してください"の中身をコピーしたAPIキーで上書きします

 //APIキー
 var key = "ご自分のAPIキーを入力してください";

以下のように「""」は残しておいてください

//APIキー
var key = "adsfkjahsdfpijad";


6. 監視したいチャンネルのURLを取得

2行目 2列目以降に監視したいURLを貼り付けます

この時の注意点としてURLがチャンネルIDで設定されている必要があります。

例えばHikakinTVさんの場合はAではダメでBである必要があります。
A:https://www.youtube.com/user/HikakinTV 
B:https://www.youtube.com/channel/UCZf__ehlCEBPop-_sldpBUQ 

BのURLの取得の方法は動画ページの「チャンネル名」を「右クリック」 >『リンクのアドレスをコピー』で取得できます。

7. スクリプトの実行

6まで正しく設定されていれば実行できるようになっているはずです。
『getSubscriberCount』を選択して『▶︎』をクリックします。

初回の実行の際には確認が求められますが、悪いコードじゃないので許可してあげましょう。

正しく実行されると以下のようになります。
うまくいかなかった場合はスクリプトのエラーをよく読んでください。
おそらく4行目のAPIキーが間違っているか、6行目のシート名がスプレッドシート内に存在しないか、貼り付けたURLかURLの位置が正しくないと思います。

8. 自動化のための設定

うまく実行できたら毎日自動で取得してくれるように設定しましょう。
時計っぽいボタンをクリックします

「トリガーを追加」を選択して、動いて欲しい時間などの設定をしたら完了です。

さいごに

なにか聞きたいこととかあれば、ご連絡ください。
他にもこんなこと自動化できないかな?とかも相談に乗ります。

よろしければ「スキ」と「サポート」もお願いします。

この記事が気に入ったらサポートをしてみませんか?