Youtube Data APIがうまく使えない
動画一覧を取得するGASを作ってみたけれどうまく動かない(´・ω・`)
どうも動画の抜けがあると思って調べてみたら,1年分の動画を取得した時と半年分ずつ2回に分けた時の合計が違う.そんな馬鹿な(;゚Д゚)
2018/08/01~2019/08/01:337件
2018/08/01~2019/02/01:191件
2019/02/01~2019/08/01:166件
/**********************************************************************/
async function myFunction()
{
let ops = {
channelId: "UCMJiPpN_09F0aWpQrgbc_qg",
maxResults: 50,
regionCode: "JP",
type: "video"
};
ops.pageToken = undefined;
ops.publishedAfter = "2018-08-01T00:00:00Z";
ops.publishedBefore = "2019-08-01T00:00:00Z";
await countVideos(ops);
ops.pageToken = undefined;
ops.publishedAfter = "2018-08-01T00:00:00Z";
ops.publishedBefore = "2019-02-01T00:00:00Z";
await countVideos(ops);
ops.pageToken = undefined;
ops.publishedAfter = "2019-02-01T00:00:00Z";
ops.publishedBefore = "2019-08-01T00:00:00Z";
await countVideos(ops);
/**********************************************************************/
}
async function countVideos(ops)
{
let sum = 0;
do
{
let res = await YouTube.Search.list("id", ops);
sum += res.items.length;
ops.pageToken = res.nextPageToken;
}
while(ops.pageToken != undefined);
Logger.log(ops.publishedAfter + " -> " + ops.publishedBefore + ":" + sum);
/**********************************************************************/
}
※2020/02/07追記
期間が長すぎるとうまくいかないバグがあるらしい.
1年毎→1月毎に変更して解決