あるチャンネルのアップロード動画一覧をGoogle Apps Scriptで取得しようとしたところ,抜けがあることに気づきました.
問題点
例のようなコードで確かめてみたところ以下の結果となり,
1年分の本数(261)≠ 半年分ずつの合計(134+133=267)となってしまいました.
同じものを重複して数えているのではなく,1年分の方に抜け落ちた動画があるようです.
//-------------------------------------------------------------------------------------------------//
2020-01-01T00:00:00Z -> 2020-12-31T23:59:59Z:261
2020-01-01T00:00:00Z -> 2020-06-30T23:59:59Z:134
2020-07-01T00:00:00Z -> 2020-12-31T23:59:59Z:133
//-------------------------------------------------------------------------------------------------//
解決したいこと
原因または解決策が知りたいです.
よろしくお願いいたします.
GoogleAppsScript
1/**********************************************************************/ 2async function myFunction() 3{ 4 let ops = { 5 channelId: "@@@@@@", 6 maxResults: 50, 7 regionCode: "JP", 8 type: "video" 9 }; 10 11 ops.pageToken = undefined; 12 ops.publishedAfter = "2020-01-01T00:00:00Z"; 13 ops.publishedBefore = "2020-12-31T23:59:59Z"; 14 await countVideos(ops); 15 16 ops.pageToken = undefined; 17 ops.publishedAfter = "2020-01-01T00:00:00Z"; 18 ops.publishedBefore = "2020-06-30T23:59:59Z"; 19 await countVideos(ops); 20 21 ops.pageToken = undefined; 22 ops.publishedAfter = "2020-07-01T00:00:00Z"; 23 ops.publishedBefore = "2020-12-31T23:59:59Z"; 24 await countVideos(ops); 25/**********************************************************************/ 26} 27/**********************************************************************/ 28async function countVideos(ops) 29{ 30 let sum = 0; 31 32 do 33 { 34 let res = await YouTube.Search.list("id", ops); 35 36 sum += res.items.length; 37 38 ops.pageToken = res.nextPageToken; 39 } 40 while(ops.pageToken != undefined); 41 42 Logger.log(ops.publishedAfter + " -> " + ops.publishedBefore + ":" + sum); 43/**********************************************************************/ 44}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/06 10:29