如何使用 google 张脚本从 YouTube 播放列表中删除所有歌曲
How to remove ALL songs from a YouTube playlist with google sheets script
我有这个脚本可以从 YouTube 播放列表中删除视频。
function updateYTPlaylist() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const yt_video_ids = sh.getRange('A2:A'+sh.getLastRow()).getValues().flat([1]);
const playlistId = "PL7Ias5xZGXQ-cRocGUGtJnS-x5Lbbgv-c";
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
}
此脚本的问题是每个 运行 只删除 5 个项目。我需要它来删除播放列表中的所有视频。
我该怎么做?
因为maxResults
的默认值是5
。我认为你的问题的原因是由于这个。所以当你要检索超过5
的项目时,请加上maxResults
.
当项目数小于50时:
作为简单的修改,当播放列表项数小于50时,可以使用如下修改。
来自
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
收件人:
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId, maxResults: 50});
当项目数超过 50 时:
当播放列表的项目数超过50个时,需要使用nextPageToken
。当你的脚本修改后,变成如下。
修改后的脚本:
const playlistId = "PL7Ias5xZGXQ-cRocGUGtJnS-x5Lbbgv-c";
let playlistItems = [];
let pageToken = "";
do {
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId, maxResults: 50, pageToken: pageToken});
playlistItems = playlistItems.concat(playlistResponse.items);
pageToken = playlistResponse.nextPageToken || "";
} while (pageToken);
playlistItems.forEach(dvid => {
YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);
});
参考:
我有这个脚本可以从 YouTube 播放列表中删除视频。
function updateYTPlaylist() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const yt_video_ids = sh.getRange('A2:A'+sh.getLastRow()).getValues().flat([1]);
const playlistId = "PL7Ias5xZGXQ-cRocGUGtJnS-x5Lbbgv-c";
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
}
此脚本的问题是每个 运行 只删除 5 个项目。我需要它来删除播放列表中的所有视频。
我该怎么做?
因为maxResults
的默认值是5
。我认为你的问题的原因是由于这个。所以当你要检索超过5
的项目时,请加上maxResults
.
当项目数小于50时:
作为简单的修改,当播放列表项数小于50时,可以使用如下修改。
来自
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
收件人:
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId, maxResults: 50});
当项目数超过 50 时:
当播放列表的项目数超过50个时,需要使用nextPageToken
。当你的脚本修改后,变成如下。
修改后的脚本:
const playlistId = "PL7Ias5xZGXQ-cRocGUGtJnS-x5Lbbgv-c";
let playlistItems = [];
let pageToken = "";
do {
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId, maxResults: 50, pageToken: pageToken});
playlistItems = playlistItems.concat(playlistResponse.items);
pageToken = playlistResponse.nextPageToken || "";
} while (pageToken);
playlistItems.forEach(dvid => {
YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);
});