英語は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は以下のような感じになった。