何かやってみるブログ

興味をもったこと、趣味のこと、技術について色々書きます。

[メモ] GASでYouTubeで登録(Subscribe)しているチャンネルを全てチャンネル登録解除する。

英語は10000時間でモノになるという本の序盤を読んで、英語に触れる量を増やすために一旦既存のYouTubeで登録したチャンネル(ほとんど日本語で発信されているチャンネル)を全て解除したいと思ったのが動機になった。

雑にチャンネルのidを全てとってきて、ループを回して削除するだけ。単純。

function resetSubscriptions() {
  // チャンネルidのリスト取得
  let continueable = true
  let ids = []
  let token = ''
  while (continueable) {
    let requstOptions = { mine: true, maxResults: 50}
    if(token.length !== 0){
      requstOptions = { ...requstOptions, pageToken: token }
    }
    const response = YouTube.Subscriptions.list("id", requstOptions)
    ids = [...ids, ...(response.items.map(item => item.id))]
    if(response.nextPageToken){
      token = response.nextPageToken
    }else{
      continueable = false
    }
  }
  // チャンネル登録解除
  ids.forEach(id => {
    YouTube.Subscriptions.remove(id)
  })
}

登録しているチャンネル数が多いと制限に引っかかってエラーになる。何か対処法があるんだろうけど、面倒なので2日に分けて実行する予定。

GCPで新しいプロジェクト作ってGASのProject Settingsで新しいプロジェクトを参照するようにしたらうまく行った。 新しく作ったプロジェクトのquotaは以下のような感じになった。